Моя шпаргалка по Python Binance

Списки

Список - это упорядоченная изменяемая коллекция элементов. Элементы списка могут быть разных типов данных.

Кортежи (Tuples)

Кортеж - это упорядоченная неизменяемая коллекция элементов. Однажды созданный кортеж не может быть изменен.

Словарь (dictionary)

Словарь (dictionary) - это структура данных в Python, которая позволяет хранить коллекцию пар ключ-значение. В отличие от списков и кортежей, элементы словаря не упорядочены, а доступ к ним осуществляется по ключам вместо индексов. Словари очень полезны, когда нужно хранить и быстро находить значения по определенному ключу. Словари особенно полезны, когда нужно хранить данные, у которых есть какая-то связь между ключами и значениями. Например, это может быть база данных пользователей, где ключи - это идентификаторы пользователей, а значения - их личная информация. Важно помнить, что ключи в словаре должны быть уникальными, а значения могут быть разных типов данных, включая списки, кортежи и даже другие словари.

Считаем комиссию, FUNDING_FEE и прибыль (убыток) по монете

Считаем прибыль по дням

Модуль запроса последней сделки на биржу Binanc

Получение последней цены сделки на Binance без ключей API, используя публичные данные, доступные через их API. Для этого можно использовать библиотеку requests, чтобы отправлять запросы на публичные конечные точки API Binance. Полученная цена будет последней ценой сделки на Binance только в том случае, если была сделка за последнее время. Если же за последнее время не было сделок, то это будет цена последнего ордера на покупку или продажу на Binance.

Модуль записи основных параметров ордера в Excel

Корректировка формул в ячейках

Код для копирования формул из предыдущей строки, а затем корректировка формул, чтобы настроить с помощью метода relative() ссылки на ячейки в формулах.

Преобразование строки в дату и время

Преобразовать строку "21.04.2023 16:15:27" в объект даты и времени в Python, используя модуль datetime и метод strptime. Вот пример кода:. Результат: 16:15:27

Операции в DataFrame с датой и временем

Если дата хранится в Экселе и иногда требуется ее преобразовать в дату, понятную программе.

Поиск пустых ячеек в таблице

Вот пример кода, который использует библиотеку openpyxl для подсчета количества пустых ячеек в столбце 7: В этом коде мы загружаем файл Excel и выбираем активный лист. Затем мы инициализируем счетчик empty_cell_count и используем метод iter_rows() для итерации по всем строкам в столбце 7 (начиная со строки 2, чтобы пропустить заголовок таблицы). Если значение ячейки равно None, мы увеличиваем счетчик пустых ячеек. Наконец, мы выводим результат на экран.

Вписываем формулу в ячейку

В 9 ячейку помещаем формулу с использованием метода openpyxl.cell.Cell() для создания объекта ячейки и передать в качестве значения строку с формулой. Например, таким образом:

Проверка на наличие файла

Пример кода на Python, который проверяет наличие файла file.xlsx, и если его нет, создает его с листом Orders и заданными столбцами:

Загрузка исторических данных с Binanc

Получаем данные по курсу пары за последние 15 минут

Запрос на получение информации по всем торговым парам на бирже Binance

Изменение стоп-лосса открытого ордера на Binance

Для изменения стоп-лосса открытого ордера на Binance с использованием order_id можно использовать следующую функцию: Примечание:
Эта функция использует Binance API для доступа к открытому ордеру и изменению стоп-лосса.
Для использования Binance API вам нужно получить API-ключ и секретный ключ в своей учетной записи Binance.
Эти ключи можно сохранить в переменных среды в вашей операционной системе и затем использовать функцию os.environ.get() для получения этих ключей в коде.

Получение баланса средств на аккаунте Binance

Для получения баланса средств на аккаунте Binance в USDT, вы можете использовать Binance API. Ниже приведен пример кода, который определяет, сколько USDT доступно для торговли:

Цикл по Dataframe с добавлением столбцов

Операции над строками Dataframe Pandas

Создание нового столбца Dataframe и записываем в него значения, удовлетвряющим вариативным условиям

Применение lambda в DataFrame

Операции со временем

Максимальные срезы

Пример обработки массива данных

Получение стакана предложений с Binance

Компиляция exe-файла

Упаковка кода Python в исполняемый файл

Расшифровка функции futures_exchange_info

Функция futures_exchange_info возвращает информацию о торговых парам и требованиях на фьючерсном рынке. Расшифруем каждую позицию ответа для торговой пары 'BTCUSDT':

Расшифровка функции futures_position_information()

Функция futures_exchange_info возвращает информацию о торговых парам и требованиях на фьючерсном рынке. Расшифруем каждую позицию ответа для торговой пары 'BTCUSDT':
retutn:
position = {'symbol': 'STRKUSDT', 'positionAmt': '20.5', 'entryPrice': '1.936088292683', 'breakEvenPrice': '1.936475510341', 'markPrice': '1.86415390', 'unRealizedProfit': '-1.47465499', 'liquidationPrice': '0', 'leverage': '1', 'maxNotionalValue': '2000000.0', 'marginType': 'cross', 'isolatedMargin': '0.00000000', 'isAutoAddMargin': 'false', 'positionSide': 'BOTH', 'notional': '38.21515495', 'isolatedWallet': '0', 'updateTime': 1709178348166, 'isolated': False, 'adlQuantile': 1}

Обратите внимание, что значение '0' для некоторых параметров, таких как entryPrice, markPrice, unRealizedProfit и liquidationPrice, может означать отсутствие доступной информации или нулевое значение в текущем контексте.
symbol: Торговая пара, например, 'BTCUSDT'.
positionAmt: Размер позиции в базовой валюте (например, количество BTC).
entryPrice: Цена входа в позицию.
markPrice: Рыночная цена актива.
unRealizedProfit: Нереализованная прибыль или убыток от позиции.
liquidationPrice: Цена ликвидации позиции.
leverage: Уровень плеча, используемый для этой позиции.
maxNotionalValue: Максимальная номинальная стоимость позиции.
marginType: Тип маржи (например, кросс-маржа или изолированная маржа).
isolatedMargin: Изолированный маржинальный баланс позиции.
isAutoAddMargin: Флаг, указывающий, включено ли автоматическое добавление маржи.
positionSide: Сторона позиции (LONG - покупка, SHORT - продажа или BOTH - комбинированная позиция).
notional: Номинальная стоимость позиции.
isolatedWallet: Баланс изолированного кошелька позиции.
updateTime: Время обновления информации о позиции.

Пример ордера futures_create_order

После выполнения ордера, функция futures_create_order возвращает словарь с информацией об исполнении ордера. Вот расшифровка каждой позиции ответа:
orderId: Уникальный идентификатор ордера.
symbol: Торговая пара (например, 'BTCUSDT').
status: Статус ордера. Значение 'FILLED' означает, что ордер был полностью исполнен.
clientOrderId: Уникальный идентификатор ордера, предоставленный клиентом.
price: Цена, по которой был исполнен ордер.
origQty: Исходное количество активов в ордере.
executedQty: Количество активов, исполненное в ордере.
cumQuote: Сумма, потраченная или полученная при исполнении ордера.
time: Время исполнения ордера в формате метки времени.
updateTime: Время последнего обновления ордера в формате метки времени.
isWorking: Флаг, указывающий, является ли ордер активным и исполняется ли в данный момент.

Максимально возможное плечо по валютной паре

Расшифровка ответа Источник: https://developers.binance.com/docs/derivatives/usds-margined-futures/account/Notional-and-Leverage-Brackets

Расшифровка функции futures_change_leverage

Расшифровка параметров ответа метода futures_change_leverage:
symbol: Символ, для которого было изменено маржинальное плечо (в данном случае 'BTCUSDT').
leverage: Измененное значение маржинального плеча (в данном случае 20).
maxNotionalValue: Максимальное допустимое значение номинала позиции после изменения маржинального плеча.
timestamp: Временная метка операции изменения маржинального плеча.
Расшифровка параметров ответа метода futures_get_all_orders:

Считаем темп роста портфеля

Про кнопки в JS https://youtube.com/shorts/rRLJ3rJEWmQ?feature=share