Gekko-batcher — тестирование и оптимизация торговых стратегий

В данной статье, описана установка, назначение и способы использования программы Gekko-batcher для торгового бота Gekko.

Gekko-batcher, — автоматический тестировщик торговых стратегий для бота Gekko. Он позволяет провести тестирование множества стратегий на различных торговых парах, и, подбирать им оптимальные настройки. Кроме этого, Gekko-batcher позволяет запускать импорт данных с бирж из командной строки.

Это самая быстрая и функциональная программа подобного назначения, из всех, что мне довелось использовать. Результат своей работы gekko-batcher выводит в csv формате. Для удобной работы с этим форматом могу посоветовать CSVFileView.

Установка Gekko-batcher

Предполагается, что у вас уже установлен бот Gekko, — значит все нужные компоненты для работы gekko-batcher у вас уже есть. Сразу знакомитесь с инструкцией от разработчика, либо выполните следующий набор команд в папке желаемой установки, лучше ставьте «рядом» с Gekko:

git clone https://github.com/nicolay-zlobin/gekko-batcher -b master
cd gekko-batcher
npm install
cp sample-config.js config.js

Следующим шагом, откройте файл «config.js» и в переменной «config.gekkoPath» укажите путь к папке с Gekko. Абсолютного пути gekko-batcher не понимает, поэтому указывайте относительно его же папки. Остальные настройки индивидуальны и делаются в этом же файле. Потратив несколько минут на комментарии разработчика и совмещая с этим волшебный метод «тыка», вы быстро разберетесь что к чему.

Gekko-batcher — Как использовать

В состав Gekko-batcher входят 3 компонента дополняющих функциональность Gekko. Каждый из компонентов отвечает за свою часть и запускается отдельно. Но конфигурационный файл для всех один. Это прежде всего batch, — тестировщик стратегий на различных торговых парах. bruteforce, — позволяет подобрать наиболее эффективные настройки для стратегии. import, — позволят начать импорт данных из командной строки.

Перед использованием Gekko-batcher нужно запустить сам Gekko.

Компонент batch — тестировщик стратегий

Вы наверняка замечали, что каждая криптовалютная пара имеет свои специфические особенности поведения на графике. В разной степени, они требуют различных подходов для успешной торговли, — стратегия эффективная для одной пары, может быть убыточной на другой. Кроме этого и рынок, и эти самые пары могут вести себя совершенно по разному в различные периоды времени, в зависимости от сложившейся конъюнктуры и фундаментальных событий. Этот факт может свести на нет эффективность любой, даже самой продуманной стратегии. Бывает что изменения, как говорится «надолго», и то что до этого работало годами, теперь все чаще будет приносить убыток. Рынок изменчив, вы должны уметь быстро подстраиваться.

Batch позволяет легко и быстро определить самые прибыльные стратегии для интересующих вас торговых пар на любом временном отрезке. Избавляя вас от необходимости рутинного и длительного ручного тестирования и перебора. Это так же самый быстрый способ проверить, что тот десяток стратегий скаченных на затворках интернета стоит вашего времени… после гадания на кофейной гуще кончено. Для запуска, в папке с gekko-batcher, пишем:

node batch -c config.js
Результат тестирования gekko-batcher
Результат тестирования стратегий от gekko-batcher

Компонент bruteforce — оптимизатор параметров стратегий

В обществе трейдеров часто принято оставлять значения периодов индикаторов такими какими их задумали создатели. Но, вы никогда не задумывались, что возможно другой период для вашего RSI, был бы более эффективен чем рекомендованное в момент его создания значение 14, давности 1978 года. Рынок то, как мы помним, изменчив. Возможно, значения рекомендованные для рынков где торговля ведётся 5 дней неделю или пару часов в день, могут быть не столь эффективны для крипторынка с торговлей 24/7. Может, особенности вашей любимой торговой пары таковы, что другое значение скользящих средних более точно подскажет момент разворота тренда. А может, ваш любимый аллигатор, на самом деле, совершенно не годный и не эффективный индикатор.

Компонент bruteforce в составе gekko-batcher, позволяет не только найти и определить оптимальные настройки для ваших торговых стратегий, что уже крайне полезно. Открывается возможность, написав или «нарыв», не сложную стратегию из двух скользящих средних, найти их наиболее эффективные значения периодов, для любой пары, на любом временном отрезке и таймфрейме. Этим же путем, можно проверить эффективность любых индикаторов. Запускаем кодом:

node bruteforce -c config.js
Результат поиска оптимальных параметров стратегий от gekko-batcher

Компонент import — импортёр данных

Вы можете легко запустить процес импорта используя только командную строку. Предварительно указав нужный диапазон и пару в конфигурационном файле, одной командой. Для запуска используем:

node import -c config.js

Кстати, для очистки базы Gekko от лишних данных удобно использовать DB Browser for SQLite.