- Регистрация
- 25.03.2018
- Сообщения
- 169
- Благодарностей
- 260
- Баллы
- 63
Достаточно сложно, не погружаясь глубоко в тему трейдинга, описать принцип работы данного бота. Однако на это, кроме шуток, может уйти несколько конспектов. Шаблон написан с чистого листа по многочисленным тетрадным эскизам, накопившимся наработкам, подсказкам трейдеров и криптоэнтузиастов примерно за 3 недели - с момента объявления конкурса и по недавнее время. В общем, нельзя сказать, что это уже проверенный функционал, статистику по боту будем собирать вместе.
Буду рассчитывать на то, что читатель подкован в вопросах торговли на криптовалютной бирже, потому что акцент в статье сделан именно на технические составляющие проекта.
Основные фишки
Разберем настройки стратегии по пунктам:
Уведомления в Telegram
Существует возможность настроить отправку отчетов в Telegram. На данный момент есть два типа уведомлений: сделки и отладочная информация. С первым все должно быть более-менее понятно, а насчет второго поясню. Отладочная информация - это те данные, которые необходимы для отлова ошибок проекта. Если Вы намерены участвовать в развитии бота, то обязательно включите эту опцию. Данная информация поможет нам всем сделать его еще лучше, чем сейчас.
В одном отладочном сообщении собраны:
Настройки окружения
Запуск бота осуществляется через шаблон binance bot v3.0 (beta), при этом все шаблоны должны находиться в одной папке.
Вся операционная деятельность бота фиксируется в базе данных MySQL. Для локального размещения БД я пользуюсь утилитой OpenServer. Конфигурация должна иметь поддержку MySQL версии 5.7, php версии 7.4. Логин и пароль от БД установлены в бота по умолчанию root:root.
Таблицы БД:
Недостатки
Увеличение количества отслеживаемых рынков приводит к снижению качества торговли. Это связано с блокировкой бота на время, пока каждый по одному не пройдет свою сессию. Получается, он однопоточный. Так безопаснее для алгоритма. Обрабатывать больше 5 пар с этим ботом уже не выгодно, по моим соображениям.
Если указать одну и ту же торговую пару для двух разных заданий, то это может ухудшить качество торговли. Они станут перебивать цели друг друга. Тогда как, если пользоваться ботом с нескольких аккаунтов, то надо обязательно прописывать в настройках каждого проекта свое имя для БД. А вот тут уже можно совместить две одинаковые пары, т.к. у каждой под операционную деятельность будет задействована своя база.
На данный момент не отмечено больше никаких технических проблем. Однако, я не сомневаюсь, что еще какие-нибудь затруднительные вопросы могут появиться в процессе отладки, это нормально.
Заключение
Хочу выразить благодарность всем, кто поддерживает меня на протяжении всего моего пути освоения автоматизации в сфере торговли криптовалютой, а это всего лишь один год как! Участникам комьюнити и саппорту @ZennoLab за технические рекомендации, Администрации сайта - за конкурсы, за мотивацию развиваться в кодинге и вообще за такой интересный софт. И отдельное спасибо за наставления, подсказки и критику - моей техподдержке @binancebot_online
Это важно. В одиночку я едва ли сделал бы нечто подобное за столь короткий срок.
Призываю к совместной отладке проекта и уверен, что каждый извлечет свою выгоду из данной работы. Это далеко не финальный релиз, и запас идей по данному боту еще ОЧЕНЬ огромный. Я буду рад пообщаться на эту тему в комментариях и, по возможности, отвечу на все интересующие вопросы. А по поводу сотрудничества, не мешкая, пишите мне в Telegram @kriptaPavel
Буду рассчитывать на то, что читатель подкован в вопросах торговли на криптовалютной бирже, потому что акцент в статье сделан именно на технические составляющие проекта.
Основные фишки
- Бот постоянно находится в позиции и, куда бы ни двигался рынок, следует по направлению тренда, выставляя ордера на покупку/продажу в предсказуемых интервалах. Остается лишь следовать простому правилу: если за 15 минут не произошло ни одной сделки по торговой паре - значит, надо что-то изменить в настройках стратегии.
- Реализован специальный механизм расчета средней цены имеющегося актива в рамках торговой пары. И, поскольку данный параметр отслеживается ботом в динамике, некоторые сделки могут быть закрыты ниже, чем они были открыты, разумеется с плюсовым результатом в общем зачете. Такой вот фокус с наперстками.
- Метод закупки актива на том же месте, где произошла продажа - это фишка, которая реализована во множестве ботов. Приведу пример. Купили в произвольном месте за 100 BUSD и продали, чуть погодя, за 102 BUSD. Но тут же купили снова на соточку (уже, правда, чуть меньше, ведь цена подросла), потом снова продали с прибылью в 2 BUSD. Это отличная памп-стратегия.
- Благодаря расстановке ордеров айсбергами, мы можем раздробить одну попытку входа в рынок на несколько мелких. При этом первая сделка одного айсберга будет выставлена на том расстоянии, которое указано в параметре "Коридор цены" с учетом корректировки. А следующие части айсберга будут расставлены на удалении от последнего ордера согласно тому, сколько заложено в параметр трейлинг-дельты. Иначе говоря, мы можем манипулировать коридором цены в широком спектре действий: задав сам коридор цены, определив количество мелких коридоров (количество частей айсберга) и сама трейлинг-дельта, которая определяет, во-первых, максимальную корректировку цены и, во-вторых, удаленность второстепенных целей в рамках одного айсберга. Это дает возможность прочесывать рынок до самых низов и, соответственно, ловить отскок на максимальной высоте.
- Расчеты включают в себя анализ прибыльности выставленной стратегии. Этот показатель носит логичное название "PnL". И на практике нужен для того, чтобы бот мог сориентироваться, в какой момент выйти из рынка: как при просадке депозита, так и при росте прибыли - задается вручную в настройках, работает одновременно в оба направления.
Разберем настройки стратегии по пунктам:
- Указываем торговую пару, придерживаясь синтаксиса, как на скриншоте (одна пара через дробь). Поддерживаются все спотовые рынки, имеющиеся на 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% (прибыльная стратегия, бот сможет торговать по ней)
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 (это будет работать именно так), т.к. при разбивке на три части сумма сделки окажется недостаточной, как в примере выше.
deposit = 100 BUSD
iceberg = 10%
parts = 2
В распоряжении бота 10 BUSD на айсберг, он мог бы быть разбит на две части, но даже одной части может оказаться недостаточно до минимальной стоимости ордера (такая стратегия работать не будет)
Пример №2 (корректно):
deposit = 100 BUSD
iceberg = 30%
parts = 3
В распоряжении бота 30 BUSD на айсберг, который будет разбит на два ордера по 15 BUSD (это будет работать именно так), т.к. при разбивке на три части сумма сделки окажется недостаточной, как в примере выше.
- Демо баланс равен 10000 BUSD, данная цифра не имеет ничего общего с реальным балансом, это обычный технический параметр, который может быть изменен через один из шаблонов проекта.
- Стоп-лосс мы указываем в виде процента от депозита, который готовы потерять в рамках всей торговой сессии. Соответственно, тейк-профит работает по тому же принципу - указываем процент роста депозита, при котором бот должен прекратить торговать.
- Обязательно соглашаемся с правилами, т.к. данная опция имеет прямую связь со страховочными действиями. Как только происходит ликвидация по стопу или тейку - галочка будет отжата автоматически, проект будет продолжать работать, но не торговать, т.к. это условие уже не будет соблюдено. Воспринимать данную настройку стоит, в том числе, буквально - пользователь сам несет ответственность за свои торговые результаты.
Уведомления в Telegram
Существует возможность настроить отправку отчетов в Telegram. На данный момент есть два типа уведомлений: сделки и отладочная информация. С первым все должно быть более-менее понятно, а насчет второго поясню. Отладочная информация - это те данные, которые необходимы для отлова ошибок проекта. Если Вы намерены участвовать в развитии бота, то обязательно включите эту опцию. Данная информация поможет нам всем сделать его еще лучше, чем сейчас.
В одном отладочном сообщении собраны:
- ID кубика, на котором шаблон внезапно прервал работу
- Текст ошибки, которую смог распознать Zennoposter
- Ключевые переменные проекта, с которыми бот работал на момент назапланированной остановки. Переменные входящих настроек (стратегия, ключи доступа) и строка подключения к БД - не требуются для отладки и не передаются никуда.
Настройки окружения
Запуск бота осуществляется через шаблон binance bot v3.0 (beta), при этом все шаблоны должны находиться в одной папке.
Вся операционная деятельность бота фиксируется в базе данных MySQL. Для локального размещения БД я пользуюсь утилитой OpenServer. Конфигурация должна иметь поддержку MySQL версии 5.7, php версии 7.4. Логин и пароль от БД установлены в бота по умолчанию root:root.
Таблицы БД:
- Report - это основная таблица, и в ней хранится информация о полученных и потраченных средствах, а также средняя цена по имеющимся активам.
- Market - отсюда бот извлекает информацию о том, какие сделки необходимо закрыть, пишет сюда достигнутые цели, от которых ведет наблюдение на каждом цикле проверки котировок.
- Orders - история сделок, а также процент изменения цены от предыдущего ордера (пройденная амплитуда с учетом корректировки по трейлинг-дельте).
- Wallet - данная таблица актуальна только для демо-режима, в ней хранится информация о текущем остатке демо-баланса.
- Exchanger - для технических целей, а именно, для корректного округления расчетов объема сделки перед отправкой запроса на биржу (это необходимо учитывать по правилам Binance, информация актуальна одни сутки и после 00:00 по Гринвичу перезаписывается целиком с подгрузкой свежих данных)
Недостатки
Увеличение количества отслеживаемых рынков приводит к снижению качества торговли. Это связано с блокировкой бота на время, пока каждый по одному не пройдет свою сессию. Получается, он однопоточный. Так безопаснее для алгоритма. Обрабатывать больше 5 пар с этим ботом уже не выгодно, по моим соображениям.
Если указать одну и ту же торговую пару для двух разных заданий, то это может ухудшить качество торговли. Они станут перебивать цели друг друга. Тогда как, если пользоваться ботом с нескольких аккаунтов, то надо обязательно прописывать в настройках каждого проекта свое имя для БД. А вот тут уже можно совместить две одинаковые пары, т.к. у каждой под операционную деятельность будет задействована своя база.
На данный момент не отмечено больше никаких технических проблем. Однако, я не сомневаюсь, что еще какие-нибудь затруднительные вопросы могут появиться в процессе отладки, это нормально.
Заключение
Хочу выразить благодарность всем, кто поддерживает меня на протяжении всего моего пути освоения автоматизации в сфере торговли криптовалютой, а это всего лишь один год как! Участникам комьюнити и саппорту @ZennoLab за технические рекомендации, Администрации сайта - за конкурсы, за мотивацию развиваться в кодинге и вообще за такой интересный софт. И отдельное спасибо за наставления, подсказки и критику - моей техподдержке @binancebot_online
Это важно. В одиночку я едва ли сделал бы нечто подобное за столь короткий срок.
Призываю к совместной отладке проекта и уверен, что каждый извлечет свою выгоду из данной работы. Это далеко не финальный релиз, и запас идей по данному боту еще ОЧЕНЬ огромный. Я буду рад пообщаться на эту тему в комментариях и, по возможности, отвечу на все интересующие вопросы. А по поводу сотрудничества, не мешкая, пишите мне в Telegram @kriptaPavel
Вложения
-
43,1 КБ Просмотры: 306
-
26,4 КБ Просмотры: 274
-
23,5 КБ Просмотры: 290
-
33,8 КБ Просмотры: 270
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование: