Как я повышал эффективность торговых биржевых ботов. Часть 1

Как я повышал эффективность торговых биржевых ботов. Часть 1

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

Это алгоритмическая торговля, она же — алготрейдинг, она же – торговля ботом.

Я влюбился в алготрейдинг, т. к. при таком способе торговли формируется очень много трейдов за небольшой промежуток времени. А с этими данными уже интересно работать: они статистически значимы, в них можно искать закономерности.

В этой статье я хочу поделиться своим опытом в данной области и рассказать, как из пользователя стороннего софта я превратился в разработчика аналитических решений для алготрейдинга.

Начало

В алготрейдинг мы с партнером попали в конце 2020. Это были золотые времена, в т.ч. и для новичков. Рынок крипты рос невероятным темпом, практически любая купленная монета вырастала, т.е. практически любой бот был прибыльным.

Мы использовали чужой софт, позволяющий торговать на Binance и Huobi. Зачастую бот успевал за 10-50 секунд купить и продать монету.

Особенность настройки ботов

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

фрагмент формы для настройки бота
фрагмент формы для настройки бота

В боте задаются принципы покупки монеты, в целом это: при снижении за Х секунд на У процентов покупаем, при росте на Х процентов – продаем. Подобным образом настраивается управление рисками: если цена снизилась на Х – выходим из сделки.

Говоря проще – покупаем на падении рынка, продаем на росте или отскоке. Если продолжает падать – все-равно продаем, чтобы не потерять все.

Создание отчетности

Первая проблема, с которой мы столкнулись – это отсутствие отчетности. Используемый софт позволял выгрузить список всех сделок в эксель, из которой нельзя сразу понять, какой из ботов отработал лучше.

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

пример отчета по работе ботов
пример отчета по работе ботов

Автоматизация сбора данных

Когда количество используемых серверов достигло 10, сбор данных стал уже достаточно протяженной во времени задачей. А если еще и принять во внимание периодичность сбора (2-3 раза в день) – получалось очень накладно.

К счастью, боты сохраняли данные в свою локальную базу данных. Я написал скрипт, читающий данные из локальной БД и отправляющий эти данные на наш основной сервер. Данные стали уходить каждые 5 минут. Забор свежих отчетов стала осуществляться через телеграмм. Принятие решений по ботам стало более быстрыми. Так решилась вторая проблема, мешающая оперативно принимать решения.

наш помощник по отчетам в телеграмм
наш помощник по отчетам в телеграмм

Селекция ботов

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

фрагмент отчета по сравнению стратегий
фрагмент отчета по сравнению стратегий

Управление лимитами

Со временем Бинанс начал уменьшать лимиты на количество операций в минуту и часто наши боты стали простаивать, т.к. иногда в первые 5-15 секунд боты использовали все лимиты. К счастью, данные по количеству операций можно было извлечь из логов. Засучив рукава пришлось писать парсер логов. И вот мы стали видеть еще больше. Были выявлены боты, которые мало приносили эффекта, но очень много размещали незакрываемых заявок на бинансе. Т.е. просто выжирали лимиты, не давая другим ботам вести торговлю.

Управление эффективностью депозита

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

Для ответов на эти вопросы был написан парсер, который запрашивал у бинанса каждые 5 минут остатки. Позже остатки выводились на график, где становилось уже понятнее общая картина.

график использования депозита по учеткам
график использования депозита по учеткам

Продолжение следует

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

Подписывайтесь

Подписывайтесь на мой канал в телеге:

Там я буду делиться идеями, информацией о настройке ботов, рассказывать о ходе разработки софта

11
Начать дискуссию