Как написать торгового робота на python под бинанс
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Telegram-канал со сделками
A-Bot does not work on US accounts and IP!
Никаких других официальных сайтов с репозиториями и контактами, кроме GitHub и Telegram, у проекта нет!
Спотовый бот для алгоритмической мультивалютной торговли на бирже Binance, поддерживающий ручную и полностью автоматическую торговлю.
Бот работает бесплатно на аккаунтах Binance, зарегистрированных по реферальной ссылке разработчиков.
Для остальных пользователей предусмотрена подписка полезного использования, о которой читайте далее. При первом запуске бота новым пользователям, не являющимся рефералами разработчика, начисляется бонус в размере 10$.
Binance: Регистрация по реферальной ссылке
Referal ID: NYGPPWD2
В боте существует реферальная система : человек, которого Вы привели, может указать BEP20 кошелёк от Вашего аккаунта. Текущий процент, выплачиваемый пользователям от биржевой комиссии, полученных разработчиками, составляет: 14%
В связи с обновлением политики торговли по API на Binance от 23.08.2021, торговля по API будет возможна ТОЛЬКО на аккаунтах, прошедших промежуточную верификацию. Для работы бота на аккаунтах, зарегистрированных НЕ по реферальной ссылке разработчиков, действует система полезной оплаты за совершённые ботом сделки, которая составляет 0.015% от их размера. При первом запуске бота новым пользователям автоматически начисляется бонус в размере 10$, который виден в личном Telegram-боте. В дальнейшем, в случае отсутствия денежных средств на аккаунте A-Bot, работа бота будет автоматически приостановлена, поэтому не забывайте следить за балансом. Для пополнения баланса A-Bot Вам необходимо будет настроить Telegram-бота по инструкции и пополнить баланс на желаемую Вами сумму в BUSD, но не меньше 10$, следуя указаниям к переводу. При пополнении баланса начисляется бонус до 20% при пополнении до 400$, свыше этой суммы бонус остаётся фиксированным и составляет 20%.
Пользователи, которые зарегистрированы по нашей реферальной ссылке, продолжат пользоваться инструментом бесплатно.
Официальный чат Telegram — для обсуждений, связи с разработчиками и развития проекта
Полное руководство по запуску бота — подробный гайд по настройке API, Telegram, созданию сервера, а также настройке и запуску бота
Расширенная информация на Linux — инструмент для получения детальной информации по открытым позициям для пользователей бота на Linux by @xoen88
A-Bot калькулятор — расчёт будущих усреднений, исходя из параметров buy_down, step_aver и quantity_aver
Калькулятор усреднений — расчёт средней цены покупки по истории торговли
Сложный процент — расчёт доходности от вложенных средств за выбранный период
Стратегия 92% — стратегия сохранения депозита вплоть до 70% падения рынка от @freebar4ik & @volksacriph
Месячная статистика — график месячного дохода от Wex3
Сводная эксель-таблица доходности — таблица для расчёта доходности бота исходя из текущих значений прибыльности от @aeridiph
Складчина — таблица расчёта долей каждого участника в складчине от Wex3 и @Deltores
Расчёт усреднений — таблица расчёта цены и объёма ордеров для усреднений от @Deltores
ASS © AntiSignalS — канал с сигналами и полезной аналитикой от активного участника комьюнити Bi↯llar’a
Бот работает по стратегии усреднения. Суть стратегии заключается в снижении средней цены входа в актив путём увеличения веса позиции в случае, если рыночная стоимость актива снижается по отношению к текущей стоимости ордера. Иными словами, при входе в сделку бот, исходя из пользовательских торговых настроек, размещает ордер на продажу с заданным процентом профита, но если стоимость актива падает по отношению к первой покупке, не достигнув ордера на продажу, и опускается ниже заданного значения в %, бот отменяет ордер на продажу, докупает определённое количество монет, исходя из торговых настроек, и размещает новую заявку на продажу по цене ( новая средняя цена покупки + % желаемой прибыли ). Таким образом, при падении рыночной стоимости актива бот постоянно анализирует текущие ордера и рыночные данные, сопоставляя условия настроек торговой стратегии и биржевую активность, и докупает монеты, увеличивая их общий объём и снижая новую цену продажи.
Обозначения статуса ордеров:
— Ордер на покупку исполнен
— Размещён ордер на продажу
— Ордер на продажу исполнен, позиция закрыта
— Ордер на продажу отменён для усреднения
— Ордер на продажу отменён и активирован трейлинг-стоп
— Частичная продажа позиции трейлингом по маркету
— Полная продажа позиции по трейлингу, позиция закрыта
Обозначения информационной консоли:
Работа с screen на Linux:
Параметры API настройки:
Инструкция для включения уведомлений в Telegram:
Теперь каждый раз, когда бот полностью закрывает позицию на продажу, Вы будете получать уведомление в Ваш канал!
Управлять A-Bot’ом также можно из Telegram-бота, которого вы создали у BotFather’а и добавили в свой канал для уведомлений.
Как написать пассивный доход: Пишем качественного трейд бота на JS (часть 1)
Начнем писать трейдинг бота, который будет работать на криптобирже Binance. Бот должен уметь:
торговать самостоятельно, принося какой-то доход
должен быть удобен для создания и обкатывания различных стратегий торговли
тестировать стратегию на исторических данных
Пожалуй, начнем с архитектуры
У нас есть биржа Binance, у которой есть шикарное api. Поэтому архитектура могла бы выглядеть так:
Вызвать пару методов “купи дешевле” и “продай дороже”. Но задача для нас написать такого бота, при котором условный программист-трейдер сможет создавать и тестировать на прибыльность новые стратегии. Поэтому, необходимо отделить логику торговли от всего прочего. А также модулю логики должно быть все равно к какой бирже его подключили: к реальному API или к псевдо-API (для тестирования). С учетом всего этого получилась примерно вот такая архитектура:
Базу выбрал PostgreSQL. Тут нет никакого тайного умысла. Вы можете использовать любую.
Сервис для логов
Теперь подключим биржу
Дальше добавляем метод создания ордера, с учетом правильного количества знаков после запятой для цены и обьема:
Теперь бот умеет создавать ордера. Научим его слушать события из биржы для того, чтоб он мог отлавливать изменения статуса ордеров. Для этого создадим класс TradeService.
Перейдем к базе данных
Для чего она нужна? В базе будем хранить все ордера, а также всю историю торговли бота. Пользователей с их ключами к бирже и балансами. В последствии сможем считать сколько бот принес прибыли/убытка. Тут останавливаться долго не буду. Подключаю sequlize.
Добавим docker-compose.yml файл для локальной базы:
В следующей статье будем писать ядро, которое соединит все эти части и заставит бота торговать.
Как создать бота для торговли на бирже Binance
В данной статье мы расскажем вам о том, как создать и настроить вашего первого бота. Данная инструкция поможет вам лучше разобраться в интерфейсе и параметрах настройки. Итак, приступим:
Регистрируемся и логинимся в https://revenuebot.io/, переходим во вкладку «Bots» (https://app.revenuebot.io/office/#/bots/)
Раскрываем меню «CREATE NEW BOT»…
Идентификация, API и кошелек бота
Bot name: Название бота (чаще всего в названии используются характеристики: биржа, торговая пара криптомонет, алгоритм работы и тп.)
Exchange: Выбираем биржу в выпадающем списке (рассмотрим на примере Binance)
Как только вы выберете биржу вам станут доступны следующие поля для заполнения:
Pair: Выбрать торгуемую пару криптомонет. О том, как выбрать эффективную торговую пару подробно написано тут — «Как подобрать эффективную торговую пару криптомонет»
API key: Выбрать API ключ из ранее созданных, либо создать новый.
Depo: Выбрать виртуальный кошелек из ранее созданных, либо создать новый, где ввести:
Commission: Выбрать вариант комиссии, которая будет применятся биржей. Данная настройка актуальна только для биржи Binance, так как на ней возможна оплата комиссии в третьем токене, который не участвует непосредственно в текущей торговле (BNB токен).
Для использования такого вида комиссии, необходимо активировать ее в аккаунте биржи Binance. Рекомендуем всегда использовать этот вид оплаты комиссии торговли на бирже Binance, так как это дешевле.
Необходимо лишь следить, чтобы BNB был на аккаунте. Для этого наш бот проверяет баланс BNB токена перед каждым пуском. Если баланс токена меньше необходимого, то бот не запускается в работу и отправляет нотификацию пользователю с информацией о необходимости пополнить баланс BNB токена для начала торговли.
Алгоритмы работы бота и его настройки
Algo: Выбрать алгоритм работы бота.
Бот использует API интерфейс бирж для выставления ордеров по выбранному алгоритму и отслеживания их выполнения.
На данный момент существует два алгоритма работы бота RevenueBot:
После выбора алгоритма работы бота, пользователю предлагается воспользоваться шаблонами настройки данного алгоритма: Light trade mode, Normal trade mode, Extreme trade mode.
Все поля настроек заполнятся автоматически при выборе любого из предложенных шаблонов.
Rate cover: Процент перекрытия изменения цены для расчета сетки ордеров. Данная настройка определяет в процентах отступ последнего ордера в сетке ордеров.
First order indent: Отступ в процентах первого ордера в сетке ордеров.
Price rate to use: Выбор рейта на бирже, от которого вести расчет сетки ордеров. Это могут быть рейты buy, sell, average.
Orders matrix, martingale: Сетка ордеров и мартингейл.
Тут задается количество ордеров в сетке и мартингейл (на сколько процентов каждый следующий ордер в сетке будет весомее предыдущего). Кликнув на view orders matrix, Вы сможете увидеть рассчитанную сетку ордеров.
Profit: Тут задаем в процентах профит, который будет заложен ботом при расчете цены завершающего цикл ордера.
Profit coin: Данная настройка доступна только для алгоритма short. Задает в какой из торгуемых монет будет профит.
Cycle up: Бывает, что бот выставил сетку ордеров, а цена ушла в другую сторону. Получается, что нужно ждать пока цена не вернется, а ждать можно долго.
Этого ожидания можно избежать, настроив актуализацию сетки ордеров к текущей цене. Тут задается процент, при достижении которого, текущая сетка ордеров отменяется и выставляется новая.
Sleep before cancel orders for cycle up: Тут задается задержка в минутах, перед тем как начать отменять текущую сетку ордеров, когда срабатывает настройка Cycle up.
Данная настройка позволяет избежать частых отмен текущей сетки ордеров, когда цена за очень короткое время изменилась и вернулась к прежнему уровню.
Можно выждать некоторое время, чтобы зря не снимать текущую сетку ордеров.
Sleep before cycle up after cancel orders: Тут задается задержка в минутах перед выставлением новой сетки после отмены предыдущей сетки ордеров.
Данная настройка также позволяет избежать негативных последствий в ситуации, когда цена за очень короткое время изменилась и вернулась к прежнему уровню.
Sleep after end of cycle: Тут задается задержка в минутах перед тем как начать новый цикл после завершения текущего цикла.
Так же можно задать каждую из этих настроек самостоятельно и сохранить свой шаблон.
Дополнительные настройки
add revenue to depo: При получении прибыли можно добавлять ее к депозиту который использует бот, таким образом увеличивая депозит.
При включенной настройке весь профит от работы бота зачисляется на виртуальный кошелек, который использует данный бот.
logarithmic scale for orders: Обычно сетка ордеров рассчитывается так, что все ордеры в ней расположены линейно, на одинаковом расстоянии друг от друга по всему перекрытию цены.
При небольших колебаниях цены будут чаще всего выполняться первые, самые маленькие по объему, ордеры в сетке.
Чтобы вовлечь побольше депозита в торговлю при небольших колебаниях цены, можно использовать логарифмическое распределение, которое позволит повысить плотность ордеров вблизи текущей цены и понизить плотность ордеров при удалении от текущей цены.
Плотность ордеров можно настроить для разных ситуаций по разному с помощью коэффициента logarithmic factor увеличивая или уменьшая его.
Для большинства случаев подойдет значение logarithmic factor = 1.5.
Кликнув на «view orders matrix», Вы сможете увидеть рассчитанную сетку ордеров.
cost limit: Используйте эту настройку, чтобы не начать покупать слишком дорого и не начать продавать слишком дешево.
Задает максимальную цену, выше которой бот не начнет цикл для алгоритма Long и минимальную цену ниже которой бот не начнет цикл при алгоритме Short.
fix first partial order with profit: Бывает, что первый ордер в сетке частично выполнился, но цена пошла в другую сторону. Такое случается, когда бот оперирует большим депо и ордеры в сетке довольно объемные, даже самый первый.
В такой ситуации можно долго ждать возвращения цены и выполнения ордера полностью, чтобы работа алгоритма продолжилась. Включив данную настройку можно задать процент профита для расчета такой цены, при достижении которой мы получим профит, если отменим частично выполненный ордер и выставим на его сумму завершающий цикл ордер. Ведь цена ушла в ту сторону, где мы получим профит, просто ордер оказался слишком объемным.
Фильтры для старта бота
Мы рекомендуем всегда настраивать фильтры для старта бота. Они необходимы для того, чтобы бот начал торговлю в самое выгодное время, основываясь на выбранном алгоритме торговли и ваших предпочтениях. Подробнее читайте тут: «Фильтры для старта бота. Описание и настройка.»
Уведомления
Выставляем необходимые уведомления: WEB, E-mail, SMS, Telegram
И нажимаем «Create New Bot».
Поздравляем! Вы создали своего первого бота для биржи!
Welcome to python-binance v1.0.15¶
Updated 27th Sept 2021
This is an unofficial Python wrapper for the Binance exchange REST API v3. I am in no way affiliated with Binance, use at your own risk.
If you came here looking for the Binance exchange to purchase cryptocurrencies, then go here. If you want to automate interactions with Binance stick around.
If you’re interested in Binance’s new DEX Binance Chain see my python-binance-chain library
Make sure you update often and check the Changelog for new features and bug fixes.
Features¶
Upgrading to v1.0.0+¶
The breaking changes include the migration from wapi to sapi endpoints which related to the wallet endpoints detailed in the Binance Docs
The other breaking change is for websocket streams and the Depth Cache Manager which have been converted to use Asynchronous Context Managers. See examples in the Async section below or view the websockets and depth cache docs.
Quick Start¶
Generate an API Key and assign relevant permissions.
If you are using an exchange from the US, Japan or other TLD then make sure pass tld=’us’ when creating the client.
To use the Spot or Vanilla Options Testnet, pass testnet=True when creating the client.
Python для Финансов: Алгоритмический трейдинг / торговля. Binance
Это руководство по Python for Finance познакомит Вас с алгоритмическим трейдингом или алгоритмической торговлей на площадке Binance.
Технология стала активом в финансах: финансовые институты теперь превращаются в технологические компании, а не просто заняты только финансовым аспектом: помимо того, что технологии обеспечивают инновации быстротой и могут помочь получить конкурентное преимущество, скорость и частоту финансовых транзакций вместе с большими объемами данных делает то, что внимание финансовых учреждений к технологиям с годами возросло, и что технологии действительно стали основным фактором, способствующим финансам.
Среди самых популярных языков программирования для финансов вы найдете R и Python, а также такие языки, как C ++, C # и Java. Из этого руководства вы узнаете, как начать работу с Python для финансов. Учебник будет охватывать следующее:
Начало работы с Python для финансов
Акции и торговля
Когда компания хочет расти и предпринимать новые проекты или расширяться, она может выпускать акции для привлечения капитала. Акция представляет собой долю в собственности компании и выпускается в обмен на деньги. Акции покупаются и продаются: покупатели и продавцы обменивают существующие ранее выпущенные акции. Цена, по которой продаются акции, может изменяться независимо от успеха компании: цены вместо этого отражают спрос и предложение. Это означает, что всякий раз, когда акция считается «желательной» из-за успеха, популярности,… цена акции будет расти.
Обратите внимание, что акции — это не то же самое, что облигации, когда компании привлекают деньги за счет заимствований, либо в виде займа в банке, либо путем выпуска долговых обязательств.
Торговля акциями — это процесс, при котором наличные деньги, выплачиваемые за акции, конвертируются в долю в собственности компании, которая может быть конвертирована обратно в наличные путем продажи, и все это, мы надеемся, с прибылью. Теперь, чтобы получить прибыльный доход, вы либо открываете длинную, либо короткую позицию на рынках: вы либо по долям, полагая, что цена акций будет расти, чтобы продавать по более высокой цене в будущем, либо вы продаете свои акции, ожидая, что вы сможете купить это обратно по более низкой цене и получить прибыль. Когда вы следуете фиксированному плану открывать длинные или короткие позиции на рынках, у вас есть торговая стратегия.
Разработка торговой стратегии проходит через несколько этапов, например, когда вы, например, строите модели машинного обучения: вы формулируете стратегию и указываете ее в форме, которую вы можете проверить на своем компьютере, вы проводите предварительное тестирование. или тестирование на истории, вы оптимизируете свою стратегию и, наконец, вы оцениваете производительность и надежность вашей стратегии.
Торговые стратегии обычно проверяются с помощью тестирования на истории: вы реконструируете по историческим данным сделки, которые произошли бы в прошлом, используя правила, которые были определены в разработанной вами стратегии. Таким образом, вы можете получить представление об эффективности вашей стратегии и использовать ее в качестве отправной точки для оптимизации и улучшения вашей стратегии перед ее применением на реальных рынках. Конечно, все это в значительной степени зависит от лежащей в основе теории или убеждения, что любая стратегия, которая сработала хорошо в прошлом, вероятно, также сработает хорошо в будущем, и что любая стратегия, которая работала плохо в прошлом, вероятно, также подойдет плохо в будущем.
Данные временного ряда
Временной ряд представляет собой последовательность числовых точек данных, взятых в последовательных одинаково разнесенных точках во времени. При инвестировании временной ряд отслеживает движение выбранных точек данных, например цены акций, в течение определенного периода времени с точками данных, записанными через равные промежутки времени. Если вы все еще сомневаетесь в том, как это будет выглядеть, посмотрите на следующий пример:
Вы видите, что даты расположены на оси X, а цена указана на оси Y. «Последовательные равные интервалы времени» в этом случае означают, что дни, показанные на оси х, разделены на 14 дней: обратите внимание на разницу между 3/7/2005 и следующей точкой, 31.03.2005, и 05.05.2005 и 19.04.2005.
На данный момент у вас есть базовое представление об основных понятиях, которые вам необходимо знать, чтобы пройти этот урок. Эти понятия скоро вернутся, и вы узнаете о них позже в этом уроке.
Настройка рабочего пространства
Подготовка рабочего пространства к работе — это простая задача: просто убедитесь, что в вашей системе работает Python и интегрированная среда разработки (IDE). Тем не менее, есть несколько способов, с помощью которых вы можете начать, которые могут быть немного проще, когда вы только начинаете.
Это звучит как хорошая сделка, верно?
Последний предлагает вам несколько дополнительных преимуществ по сравнению, например, с использованием Jupyter или Spyder IDE, поскольку он предоставляет вам все, что вам нужно для финансовой аналитики в вашем браузере! С помощью Quant Platform вы получите доступ к графическому инжинирингу на основе графического интерфейса, финансовой аналитике на основе Python и своей собственной библиотеке аналитики на основе Python. Более того, у вас также будет доступ к форуму, где вы можете обсудить решения или вопросы со сверстниками!
Основы Python для финансов: Pandas
Когда вы используете Python для финансов, вы часто сталкиваетесь с использованием пакета манипулирования данными, Pandas. Но и другие пакеты, такие как NumPy, SciPy, Matplotlib,… будут проходить, как только вы начнете копать глубже.
А сейчас давайте сосредоточимся на Pandas и используем его для анализа данных временных рядов. В этом разделе объясняется, как вы можете импортировать данные, исследовать и манипулировать ими с помощью Pandas. Вдобавок ко всему этому вы узнаете, как выполнять общий финансовый анализ данных, которые вы импортировали.