Криптовалютный бот для Binance, версия 3.0

fridayman

Client
Joined
Mar 25, 2018
Messages
169
Reaction score
260
Points
63
Достаточно сложно, не погружаясь глубоко в тему трейдинга, описать принцип работы данного бота. Однако на это, кроме шуток, может уйти несколько конспектов. Шаблон написан с чистого листа по многочисленным тетрадным эскизам, накопившимся наработкам, подсказкам трейдеров и криптоэнтузиастов примерно за 3 недели - с момента объявления конкурса и по недавнее время. В общем, нельзя сказать, что это уже проверенный функционал, статистику по боту будем собирать вместе.

Буду рассчитывать на то, что читатель подкован в вопросах торговли на криптовалютной бирже, потому что акцент в статье сделан именно на технические составляющие проекта.

97403

Основные фишки
  1. Бот постоянно находится в позиции и, куда бы ни двигался рынок, следует по направлению тренда, выставляя ордера на покупку/продажу в предсказуемых интервалах. Остается лишь следовать простому правилу: если за 15 минут не произошло ни одной сделки по торговой паре - значит, надо что-то изменить в настройках стратегии.
  2. Реализован специальный механизм расчета средней цены имеющегося актива в рамках торговой пары. И, поскольку данный параметр отслеживается ботом в динамике, некоторые сделки могут быть закрыты ниже, чем они были открыты, разумеется с плюсовым результатом в общем зачете. Такой вот фокус с наперстками.
  3. Метод закупки актива на том же месте, где произошла продажа - это фишка, которая реализована во множестве ботов. Приведу пример. Купили в произвольном месте за 100 BUSD и продали, чуть погодя, за 102 BUSD. Но тут же купили снова на соточку (уже, правда, чуть меньше, ведь цена подросла), потом снова продали с прибылью в 2 BUSD. Это отличная памп-стратегия.
  4. Благодаря расстановке ордеров айсбергами, мы можем раздробить одну попытку входа в рынок на несколько мелких. При этом первая сделка одного айсберга будет выставлена на том расстоянии, которое указано в параметре "Коридор цены" с учетом корректировки. А следующие части айсберга будут расставлены на удалении от последнего ордера согласно тому, сколько заложено в параметр трейлинг-дельты. Иначе говоря, мы можем манипулировать коридором цены в широком спектре действий: задав сам коридор цены, определив количество мелких коридоров (количество частей айсберга) и сама трейлинг-дельта, которая определяет, во-первых, максимальную корректировку цены и, во-вторых, удаленность второстепенных целей в рамках одного айсберга. Это дает возможность прочесывать рынок до самых низов и, соответственно, ловить отскок на максимальной высоте.
  5. Расчеты включают в себя анализ прибыльности выставленной стратегии. Этот показатель носит логичное название "PnL". И на практике нужен для того, чтобы бот мог сориентироваться, в какой момент выйти из рынка: как при просадке депозита, так и при росте прибыли - задается вручную в настройках, работает одновременно в оба направления.

Разберем настройки стратегии по пунктам:

97315

  • Указываем торговую пару, придерживаясь синтаксиса, как на скриншоте (одна пара через дробь). Поддерживаются все спотовые рынки, имеющиеся на Binance.
  • Обозначаем коридор цены. Для данного параметра установлено минимальное ограничение, и оно не имеет конкретного значения, а рассчитывается ботом в процессе валидации настроек по формуле ниже
dynamics * (1-trailingDelta/100) > 0.2 %
коридор цены за вычетом корректировки должен быть больше, чем 0.2% изменения цены, менее которого сделка считается убыточной (с учетом затрат на комиссии на оба ордера покупка/продажа)
Пример №1 (ошибка):
dynamics = 0.3%
trailingDelta = 50%

результат: 0.15% - это меньше, чем 0.2% (убыточные параметры, бот не запустит такую стратегию)

Пример №2 (корректно):
dynamics = 0.3%
trailingDelta = 10%

результат: 0.27% - это больше, чем 0.2% (прибыльная стратегия, бот сможет торговать по ней)

  • Указываем трейлинг-дельту (любое число больше 0 и меньше 100). Данный параметр имеет две функции, как уже было сказано выше: максимальная корректировка в обратном направлении от достигнутой цели и минимальное расстояние, на котором предусмотрена расстановка ордеров в рамках заполнения айсберга, к которому также применима первая функция трейлинг-дельты.
  • Сумма депозита в квотируемой валюте (символ актива, который указан в торговой паре после дроби). Тут ограничений нет, но если при расчете стоимости ордера окажется, что его недостаточно, в логе появится соответствующее уведомление.
  • Величина айсберга - это та доля от депозита, которую бот будет использовать при расчете объема сделки (если она не раздроблена на несколько частей в поле для ввода ниже).
  • Максимальное количество ордеров в рамках бюджета на один айсберг. Должно быть указано любое положительное целое число, отличное от нуля.
Пример №1 (ошибка):
deposit = 100 BUSD
iceberg = 10%
parts = 2

В распоряжении бота 10 BUSD на айсберг, он мог бы быть разбит на две части, но даже одной части может оказаться недостаточно до минимальной стоимости ордера (такая стратегия работать не будет)

Пример №2 (корректно):
deposit = 100 BUSD
iceberg = 30%
parts = 3

В распоряжении бота 30 BUSD на айсберг, который будет разбит на два ордера по 15 BUSD (это будет работать именно так), т.к. при разбивке на три части сумма сделки окажется недостаточной, как в примере выше.

  • Демо баланс равен 10000 BUSD, данная цифра не имеет ничего общего с реальным балансом, это обычный технический параметр, который может быть изменен через один из шаблонов проекта.
  • Стоп-лосс мы указываем в виде процента от депозита, который готовы потерять в рамках всей торговой сессии. Соответственно, тейк-профит работает по тому же принципу - указываем процент роста депозита, при котором бот должен прекратить торговать.
  • Обязательно соглашаемся с правилами, т.к. данная опция имеет прямую связь со страховочными действиями. Как только происходит ликвидация по стопу или тейку - галочка будет отжата автоматически, проект будет продолжать работать, но не торговать, т.к. это условие уже не будет соблюдено. Воспринимать данную настройку стоит, в том числе, буквально - пользователь сам несет ответственность за свои торговые результаты.
97365


Уведомления в Telegram

Существует возможность настроить отправку отчетов в Telegram. На данный момент есть два типа уведомлений: сделки и отладочная информация. С первым все должно быть более-менее понятно, а насчет второго поясню. Отладочная информация - это те данные, которые необходимы для отлова ошибок проекта. Если Вы намерены участвовать в развитии бота, то обязательно включите эту опцию. Данная информация поможет нам всем сделать его еще лучше, чем сейчас.

В одном отладочном сообщении собраны:
  1. ID кубика, на котором шаблон внезапно прервал работу
  2. Текст ошибки, которую смог распознать Zennoposter
  3. Ключевые переменные проекта, с которыми бот работал на момент назапланированной остановки. Переменные входящих настроек (стратегия, ключи доступа) и строка подключения к БД - не требуются для отладки и не передаются никуда.
Для более сложной связки мессенджера и бота потребуется время, и это уже материал для будущих статей.

Настройки окружения


Запуск бота осуществляется через шаблон binance bot v3.0 (beta), при этом все шаблоны должны находиться в одной папке.

Вся операционная деятельность бота фиксируется в базе данных MySQL. Для локального размещения БД я пользуюсь утилитой OpenServer. Конфигурация должна иметь поддержку MySQL версии 5.7, php версии 7.4. Логин и пароль от БД установлены в бота по умолчанию root:root.

Таблицы БД:
  1. Report - это основная таблица, и в ней хранится информация о полученных и потраченных средствах, а также средняя цена по имеющимся активам.
  2. Market - отсюда бот извлекает информацию о том, какие сделки необходимо закрыть, пишет сюда достигнутые цели, от которых ведет наблюдение на каждом цикле проверки котировок.
  3. Orders - история сделок, а также процент изменения цены от предыдущего ордера (пройденная амплитуда с учетом корректировки по трейлинг-дельте).
  4. Wallet - данная таблица актуальна только для демо-режима, в ней хранится информация о текущем остатке демо-баланса.
  5. Exchanger - для технических целей, а именно, для корректного округления расчетов объема сделки перед отправкой запроса на биржу (это необходимо учитывать по правилам Binance, информация актуальна одни сутки и после 00:00 по Гринвичу перезаписывается целиком с подгрузкой свежих данных)
Характеристики VDS, которых будет точно достаточно для работы бота: 2x2.2ГГц, 4Гб RAM, 50Гб SSD.

Недостатки

Увеличение количества отслеживаемых рынков приводит к снижению качества торговли. Это связано с блокировкой бота на время, пока каждый по одному не пройдет свою сессию. Получается, он однопоточный. Так безопаснее для алгоритма. Обрабатывать больше 5 пар с этим ботом уже не выгодно, по моим соображениям.

Если указать одну и ту же торговую пару для двух разных заданий, то это может ухудшить качество торговли. Они станут перебивать цели друг друга. Тогда как, если пользоваться ботом с нескольких аккаунтов, то надо обязательно прописывать в настройках каждого проекта свое имя для БД. А вот тут уже можно совместить две одинаковые пары, т.к. у каждой под операционную деятельность будет задействована своя база.

На данный момент не отмечено больше никаких технических проблем. Однако, я не сомневаюсь, что еще какие-нибудь затруднительные вопросы могут появиться в процессе отладки, это нормально.

Заключение

Хочу выразить благодарность всем, кто поддерживает меня на протяжении всего моего пути освоения автоматизации в сфере торговли криптовалютой, а это всего лишь один год как! Участникам комьюнити и саппорту @ZennoLab за технические рекомендации, Администрации сайта - за конкурсы, за мотивацию развиваться в кодинге и вообще за такой интересный софт. И отдельное спасибо за наставления, подсказки и критику - моей техподдержке @binancebot_online

Это важно. В одиночку я едва ли сделал бы нечто подобное за столь короткий срок.

Призываю к совместной отладке проекта и уверен, что каждый извлечет свою выгоду из данной работы. Это далеко не финальный релиз, и запас идей по данному боту еще ОЧЕНЬ огромный. Я буду рад пообщаться на эту тему в комментариях и, по возможности, отвечу на все интересующие вопросы. А по поводу сотрудничества, не мешкая, пишите мне в Telegram @kriptaPavel
 

Attachments

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Last edited:

fridayman

Client
Joined
Mar 25, 2018
Messages
169
Reaction score
260
Points
63
На вычитку сдаю. Еще картинки и может быть видео успею
 
  • Thank you
Reactions: rol

gelu4

Client
Joined
Jan 11, 2015
Messages
166
Reaction score
42
Points
28
По моему это первое место! Очень достойный труд. Спасибо!
 

Wide

Client
Joined
Feb 4, 2013
Messages
970
Reaction score
261
Points
63
Самый последний материал и похоже самый годный. Только не учите пж ради mysql ставить опенсервер)
 
  • Thank you
Reactions: gelu4 and fridayman

fridayman

Client
Joined
Mar 25, 2018
Messages
169
Reaction score
260
Points
63
Самый последний материал и похоже самый годный. Только не учите пж ради mysql ставить опенсервер)
Вот как раз видео записываю, где опенсервер предложен в качестве решения. Я знаю про альтернативы, про серверные варианты. Будем делать все для публики постепенно.:-)
 

Wide

Client
Joined
Feb 4, 2013
Messages
970
Reaction score
261
Points
63
Last edited:
Joined
May 26, 2020
Messages
531
Reaction score
177
Points
43
Самый последний материал и похоже самый годный. Только не учите пж ради mysql ставить опенсервер)
Так до завтра же еще прием вроде, может, еще годнота будет :-)
 
  • Thank you
Reactions: fridayman

Bahus

Client
Joined
Feb 15, 2017
Messages
44
Reaction score
12
Points
8
Мускуль, имхо, для таких целей это стрельба из пушки по воробьям. Проголосую, так как ждал когда кто-нибудь что-то подобное реализует.
 

fridayman

Client
Joined
Mar 25, 2018
Messages
169
Reaction score
260
Points
63
Мускуль, имхо, для таких целей это стрельба из пушки по воробьям. Проголосую, так как ждал когда кто-нибудь что-то подобное реализует.
Принимается. PostgreSQL на будущее. Для однопользовательской версии, имхо, MySQL - лучший вариант.
 

Dresskod

Client
Joined
Sep 8, 2016
Messages
391
Reaction score
139
Points
43
Какая минимальная версия зеннопостера нужна для бота?
 

Kokos

Client
Joined
Sep 5, 2019
Messages
117
Reaction score
56
Points
28
Материал огонь, спасибо за работу !!
 
  • Thank you
Reactions: fridayman

Alex.A

Client
Joined
Nov 14, 2020
Messages
484
Reaction score
246
Points
43
Спасибо за шаблон. Ваша работа точно будет в победителях!
 
  • Thank you
Reactions: djaga and fridayman

garikn

Client
Joined
Aug 3, 2021
Messages
164
Reaction score
41
Points
28
Вы с каким плечом торгуете?
 

fridayman

Client
Joined
Mar 25, 2018
Messages
169
Reaction score
260
Points
63
Вы с каким плечом торгуете?
Я торгую только на споте. А Вы с каким?
 

fridayman

Client
Joined
Mar 25, 2018
Messages
169
Reaction score
260
Points
63
Какая минимальная версия зеннопостера нужна для бота?
7.4.0.0 пора бы обновляться :di:
 

DenisK

Client
Joined
Jun 28, 2016
Messages
591
Reaction score
289
Points
63
Спасибо Автору, самая достойная работа пока на 1 место.
 
  • Thank you
Reactions: fridayman

devffy

Client
Joined
Mar 16, 2019
Messages
541
Reaction score
188
Points
43
Спасибо! Мой голос за тебя
 
  • Thank you
Reactions: fridayman

radv

Client
Joined
May 11, 2015
Messages
3,851
Reaction score
2,082
Points
113
Спасибо за проект :ay:
 
  • Thank you
Reactions: fridayman

SERG454

Client
Joined
Oct 14, 2021
Messages
145
Reaction score
144
Points
43
Спасибо! Форекс жив :D
Осталась найти стратегию "грааль" и добавить в шаб :bu:
Можно также развивать тему в направлении прикрутки разных инструментов для анализа .Спасибо
 
  • Thank you
Reactions: fridayman

fridayman

Client
Joined
Mar 25, 2018
Messages
169
Reaction score
260
Points
63
Осталась найти стратегию "грааль" и добавить в шаб :bu:
Хорошее наблюдение.

Можно также развивать тему в направлении прикрутки разных инструментов для анализа
Можно и нужно, как я люблю говорить. Очень круто, что тема зашла. Значит будем развивать дальше.

Спасибо
You are welcome :-)
 

Zedx

Client
Joined
Jun 12, 2018
Messages
1,399
Reaction score
955
Points
113
Шаблон написан с чистого листа по многочисленным тетрадным эскизам, накопившимся наработкам, подсказкам трейдеров и криптоэнтузиастов примерно за 3 недели - с момента объявления конкурса и по недавнее время.
У меня была скачана прошлая версия 2.5(так и не успел затестить). Т.е. это совершенно другой продукт или параллельная независимая разработка и прошлый бот тоже актуален?
 
  • Thank you
Reactions: fridayman

fridayman

Client
Joined
Mar 25, 2018
Messages
169
Reaction score
260
Points
63
У меня была скачана прошлая версия 2.5(так и не успел затестить). Т.е. это совершенно другой продукт или параллельная независимая разработка и прошлый бот тоже актуален?
К прошлому боту возвращаться не планирую. Но он тоже рабочий в меру того, сколько удалось сделать по нему. Как однажды грамотно отметил один мой коллега, у каждого бота есть своя ДНК. У этого бота она совершенно другая, не похожая на другие версии. Совсем новье.
 
  • Thank you
Reactions: Zedx

garikn

Client
Joined
Aug 3, 2021
Messages
164
Reaction score
41
Points
28
Очень круто, что тема зашла. Значит будем развивать дальше.
Тема вечная.
Если почитать теорию хаоса, и не привязываться к крипте, форексу, акциям и так далее..... То неубиваемая. Тем более инструментов все больше и больше.
Я прибыль выносил только с 1:1 без стопов и лосей зачастую заботая.
 
  • Thank you
Reactions: fridayman

fridayman

Client
Joined
Mar 25, 2018
Messages
169
Reaction score
260
Points
63
Тема вечная.
Если почитать теорию хаоса, и не привязываться к крипте, форексу, акциям и так далее..... То неубиваемая. Тем более инструментов все больше и больше.
Я прибыль выносил только с 1:1 без стопов и лосей зачастую заботая.
Все правильно. В бота заложен обычный математический расчет и немного фартуны. Модернизировать можно бесконечно. И вот в этом весь прикол и несуразность того, что бот открытый. Пока я тащил за собой груз идей и мне еще сверху наваливало, я все никак не мог этот базовый алгоритм собрать. И вообще поначалу была мысль, что это нечто ВАУ! Да, это так и сейчас. Но можно круче, гораздо круче, знаю как.
 

Home_KreKer

Client
Joined
Dec 5, 2016
Messages
168
Reaction score
38
Points
28
Можно опустить до версии 7.3.0.0 ?)
 

fridayman

Client
Joined
Mar 25, 2018
Messages
169
Reaction score
260
Points
63

sidor800

Client
Joined
Apr 16, 2013
Messages
123
Reaction score
43
Points
28
Протестировал бота поставил настройки. Пара BTC/USDT коридор цены 0.3% трейлинг дельта 10% айсберг 50% ордеров в айсберге 4 сума депозита 100 USDT, тейкпрофит 1%. Бот за пару часов работы достиг тейк профита на растущем рынке.
Стартанул заново установил тейк профит 2%. Рынок начал падать бот закупился на все депо и сидел в просадке ждал. Попытался увеличить сумму депозита бот не дал. Потом рынок начел расти бот заработал. Финальным аккордом бот усреднил 8 ордеров и продал достигнув тейк профита 2%. Итог бот за 20 часов работы заработал 3% к депо.
Я так понял бот начинает продавать актив достигнув границы коридора в моем случае 0.3%
В минус чтоб продавал я не увидел думал бот будет продавать в минуть а потом перезакупаться ниже.
Порадовала фишка что бот умеет усредняться и выходить со сделки.
Заметил неточность цены которые бот шлет в телеграм с фактической ценой покупки так как покупка продажа идет по маркету цена отличается от той которую бот выставляет в моем случае было около 3 пунктов где в плюс где в минус, но я так понял на прибыльность бота это не влияет.
Вопрос как перезапустить бота на той же паре когда он сидит в просадке?
 
  • Thank you
Reactions: fridayman

Phoenix78

Client
Read only
Joined
Nov 6, 2018
Messages
11,789
Reaction score
5,726
Points
113
Протестировал бота поставил настройки. Пара BTC/USDT коридор цены 0.3% трейлинг дельта 10% айсберг 50% ордеров в айсберге 4 сума депозита 100 USDT, тейкпрофит 1%. Бот за пару часов работы достиг тейк профита на растущем рынке.
Стартанул заново установил тейк профит 2%. Рынок начал падать бот закупился на все депо и сидел в просадке ждал. Попытался увеличить сумму депозита бот не дал. Потом рынок начел расти бот заработал. Финальным аккордом бот усреднил 8 ордеров и продал достигнув тейк профита 2%. Итог бот за 20 часов работы заработал 3% к депо.
Я так понял бот начинает продавать актив достигнув границы коридора в моем случае 0.3%
В минус чтоб продавал я не увидел думал бот будет продавать в минуть а потом перезакупаться ниже.
Порадовала фишка что бот умеет усредняться и выходить со сделки.
Заметил неточность цены которые бот шлет в телеграм с фактической ценой покупки так как покупка продажа идет по маркету цена отличается от той которую бот выставляет в моем случае было около 3 пунктов где в плюс где в минус, но я так понял на прибыльность бота это не влияет.
Вопрос как перезапустить бота на той же паре когда он сидит в просадке?
а нахрена нужен бот для такой стратегии как купи и держи ?
купить на всю котлету и я могу в один клик раз в сутки и сразу поставить тейк на 2%
а уж в просадки попасть и сидеть как долгосрочный инвестор по 5 лет, это точно бот не нужен ;-)
 

SERG454

Client
Joined
Oct 14, 2021
Messages
145
Reaction score
144
Points
43
а нахрена нужен бот для такой стратегии как купи и держи ?
купить на всю котлету и я могу в один клик раз в сутки и сразу поставить тейк на 2%
а уж в просадки попасть и сидеть как долгосрочный инвестор по 5 лет, это точно бот не нужен ;-)
у тебя нервы сдадут и ты зафиксируешь убыток...а бот запретит тебе это сделать и переждёт пока ты седеешь)))
 

Phoenix78

Client
Read only
Joined
Nov 6, 2018
Messages
11,789
Reaction score
5,726
Points
113
у тебя нервы сдадут и ты зафиксируешь убыток...а бот запретит тебе это сделать и переждёт пока ты седеешь)))
если я запаникую и захочу продать, я разберу этого бота на винтики и все равно продам в убыток :bk:
 
  • Thank you
Reactions: Admkos

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)