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

fridayman

Client
Регистрация
25.03.2018
Сообщения
167
Благодарностей
259
Баллы
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
 

Вложения

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

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

Последнее редактирование:

fridayman

Client
Регистрация
25.03.2018
Сообщения
167
Благодарностей
259
Баллы
63
На вычитку сдаю. Еще картинки и может быть видео успею
 
  • Спасибо
Реакции: rol

gelu4

Client
Регистрация
11.01.2015
Сообщения
165
Благодарностей
41
Баллы
28
По моему это первое место! Очень достойный труд. Спасибо!
 

Wide

Client
Регистрация
04.02.2013
Сообщения
944
Благодарностей
252
Баллы
63
Самый последний материал и похоже самый годный. Только не учите пж ради mysql ставить опенсервер)
 
  • Спасибо
Реакции: gelu4 и fridayman

fridayman

Client
Регистрация
25.03.2018
Сообщения
167
Благодарностей
259
Баллы
63
Самый последний материал и похоже самый годный. Только не учите пж ради mysql ставить опенсервер)
Вот как раз видео записываю, где опенсервер предложен в качестве решения. Я знаю про альтернативы, про серверные варианты. Будем делать все для публики постепенно.:-)
 

Wide

Client
Регистрация
04.02.2013
Сообщения
944
Благодарностей
252
Баллы
63
Последнее редактирование:
Регистрация
26.05.2020
Сообщения
460
Благодарностей
164
Баллы
43
Самый последний материал и похоже самый годный. Только не учите пж ради mysql ставить опенсервер)
Так до завтра же еще прием вроде, может, еще годнота будет :-)
 
  • Спасибо
Реакции: fridayman

Bahus

Client
Регистрация
15.02.2017
Сообщения
40
Благодарностей
12
Баллы
8
Мускуль, имхо, для таких целей это стрельба из пушки по воробьям. Проголосую, так как ждал когда кто-нибудь что-то подобное реализует.
 

fridayman

Client
Регистрация
25.03.2018
Сообщения
167
Благодарностей
259
Баллы
63
Мускуль, имхо, для таких целей это стрельба из пушки по воробьям. Проголосую, так как ждал когда кто-нибудь что-то подобное реализует.
Принимается. PostgreSQL на будущее. Для однопользовательской версии, имхо, MySQL - лучший вариант.
 

Dresskod

Client
Регистрация
08.09.2016
Сообщения
390
Благодарностей
139
Баллы
43
Какая минимальная версия зеннопостера нужна для бота?
 

Kokos

Client
Регистрация
05.09.2019
Сообщения
117
Благодарностей
56
Баллы
28
Материал огонь, спасибо за работу !!
 
  • Спасибо
Реакции: fridayman

Alex.A

Client
Регистрация
14.11.2020
Сообщения
380
Благодарностей
174
Баллы
43
Спасибо за шаблон. Ваша работа точно будет в победителях!
 
  • Спасибо
Реакции: djaga и fridayman

garikn

Client
Регистрация
03.08.2021
Сообщения
87
Благодарностей
11
Баллы
8
Вы с каким плечом торгуете?
 

fridayman

Client
Регистрация
25.03.2018
Сообщения
167
Благодарностей
259
Баллы
63

fridayman

Client
Регистрация
25.03.2018
Сообщения
167
Благодарностей
259
Баллы
63

DenisK

Client
Регистрация
28.06.2016
Сообщения
591
Благодарностей
288
Баллы
63
Спасибо Автору, самая достойная работа пока на 1 место.
 
  • Спасибо
Реакции: fridayman

devffy

Client
Регистрация
16.03.2019
Сообщения
541
Благодарностей
188
Баллы
43
Спасибо! Мой голос за тебя
 
  • Спасибо
Реакции: fridayman

radv

Client
Регистрация
11.05.2015
Сообщения
3 674
Благодарностей
1 859
Баллы
113
Спасибо за проект :ay:
 
  • Спасибо
Реакции: fridayman

SERG454

Client
Регистрация
14.10.2021
Сообщения
144
Благодарностей
140
Баллы
43
Спасибо! Форекс жив :D
Осталась найти стратегию "грааль" и добавить в шаб :bu:
Можно также развивать тему в направлении прикрутки разных инструментов для анализа .Спасибо
 
  • Спасибо
Реакции: fridayman

fridayman

Client
Регистрация
25.03.2018
Сообщения
167
Благодарностей
259
Баллы
63
Осталась найти стратегию "грааль" и добавить в шаб :bu:
Хорошее наблюдение.

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

You are welcome :-)
 

Zedx

Client
Регистрация
12.06.2018
Сообщения
1 181
Благодарностей
819
Баллы
113
Шаблон написан с чистого листа по многочисленным тетрадным эскизам, накопившимся наработкам, подсказкам трейдеров и криптоэнтузиастов примерно за 3 недели - с момента объявления конкурса и по недавнее время.
У меня была скачана прошлая версия 2.5(так и не успел затестить). Т.е. это совершенно другой продукт или параллельная независимая разработка и прошлый бот тоже актуален?
 
  • Спасибо
Реакции: fridayman

fridayman

Client
Регистрация
25.03.2018
Сообщения
167
Благодарностей
259
Баллы
63
У меня была скачана прошлая версия 2.5(так и не успел затестить). Т.е. это совершенно другой продукт или параллельная независимая разработка и прошлый бот тоже актуален?
К прошлому боту возвращаться не планирую. Но он тоже рабочий в меру того, сколько удалось сделать по нему. Как однажды грамотно отметил один мой коллега, у каждого бота есть своя ДНК. У этого бота она совершенно другая, не похожая на другие версии. Совсем новье.
 
  • Спасибо
Реакции: Zedx

garikn

Client
Регистрация
03.08.2021
Сообщения
87
Благодарностей
11
Баллы
8
Очень круто, что тема зашла. Значит будем развивать дальше.
Тема вечная.
Если почитать теорию хаоса, и не привязываться к крипте, форексу, акциям и так далее..... То неубиваемая. Тем более инструментов все больше и больше.
Я прибыль выносил только с 1:1 без стопов и лосей зачастую заботая.
 
  • Спасибо
Реакции: fridayman

fridayman

Client
Регистрация
25.03.2018
Сообщения
167
Благодарностей
259
Баллы
63
Тема вечная.
Если почитать теорию хаоса, и не привязываться к крипте, форексу, акциям и так далее..... То неубиваемая. Тем более инструментов все больше и больше.
Я прибыль выносил только с 1:1 без стопов и лосей зачастую заботая.
Все правильно. В бота заложен обычный математический расчет и немного фартуны. Модернизировать можно бесконечно. И вот в этом весь прикол и несуразность того, что бот открытый. Пока я тащил за собой груз идей и мне еще сверху наваливало, я все никак не мог этот базовый алгоритм собрать. И вообще поначалу была мысль, что это нечто ВАУ! Да, это так и сейчас. Но можно круче, гораздо круче, знаю как.
 
  • Спасибо
Реакции: devffy и FB мастер

Home_KreKer

Client
Регистрация
05.12.2016
Сообщения
137
Благодарностей
35
Баллы
28
Можно опустить до версии 7.3.0.0 ?)
 

fridayman

Client
Регистрация
25.03.2018
Сообщения
167
Благодарностей
259
Баллы
63

sidor800

Client
Регистрация
16.04.2013
Сообщения
120
Благодарностей
37
Баллы
28
Протестировал бота поставил настройки. Пара BTC/USDT коридор цены 0.3% трейлинг дельта 10% айсберг 50% ордеров в айсберге 4 сума депозита 100 USDT, тейкпрофит 1%. Бот за пару часов работы достиг тейк профита на растущем рынке.
Стартанул заново установил тейк профит 2%. Рынок начал падать бот закупился на все депо и сидел в просадке ждал. Попытался увеличить сумму депозита бот не дал. Потом рынок начел расти бот заработал. Финальным аккордом бот усреднил 8 ордеров и продал достигнув тейк профита 2%. Итог бот за 20 часов работы заработал 3% к депо.
Я так понял бот начинает продавать актив достигнув границы коридора в моем случае 0.3%
В минус чтоб продавал я не увидел думал бот будет продавать в минуть а потом перезакупаться ниже.
Порадовала фишка что бот умеет усредняться и выходить со сделки.
Заметил неточность цены которые бот шлет в телеграм с фактической ценой покупки так как покупка продажа идет по маркету цена отличается от той которую бот выставляет в моем случае было около 3 пунктов где в плюс где в минус, но я так понял на прибыльность бота это не влияет.
Вопрос как перезапустить бота на той же паре когда он сидит в просадке?
 
  • Спасибо
Реакции: fridayman

Phoenix78

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

SERG454

Client
Регистрация
14.10.2021
Сообщения
144
Благодарностей
140
Баллы
43
а нахрена нужен бот для такой стратегии как купи и держи ?
купить на всю котлету и я могу в один клик раз в сутки и сразу поставить тейк на 2%
а уж в просадки попасть и сидеть как долгосрочный инвестор по 5 лет, это точно бот не нужен ;-)
у тебя нервы сдадут и ты зафиксируешь убыток...а бот запретит тебе это сделать и переждёт пока ты седеешь)))
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
у тебя нервы сдадут и ты зафиксируешь убыток...а бот запретит тебе это сделать и переждёт пока ты седеешь)))
если я запаникую и захочу продать, я разберу этого бота на винтики и все равно продам в убыток :bk:
 
  • Спасибо
Реакции: Admkos

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)