Debut: Экосистема автоматизации трейдинга на JavaScript 3 года спустя

10 октября 2019 года команда «Тинькофф Инвестиции» публикует JavaScript-клиент для пользования Open API. Именно это событие сыграло ключевую роль в последующем появлении большого OpenSource-проекта под названием Debut.

Изначально не было цели создать стартап или принести пользу сообществу, это был просто эксперимент, тестирование API если хотите, которым на тот момент был всего месяц. Имея большой бекграунд разработки торговых роботов под форекс, очень хотелось попробовать свои силы в другом рынке.
Так торговый робот, использующий этот алгоритм на языке MQL был перенесен на JavaScript, были добавлены API и робот ринулся в бой!

Буквально за пару месяцев (июнь-июль) заработав 41,384 ₽ — это 20% от 200,000 ₽ в управлении. Ниже, график доходности, который мы сами построили по сделкам, потому что Тинькофф этого не умел и до сих пор не умеет, видимо им не нужно, чтобы люди однозначно понимали они заработали или нет.

Debut: Экосистема автоматизации трейдинга на JavaScript 3 года спустя

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

Так появилась самая первая версия Debut, тогда рабочим названием было PinStock — что означает «булавка» и имело смысл: «быть полезным инструментом в косметичке или чемоданчике трейдера», а также имеет годное окончание слова, совпадающее со сферой применения.

Первая версия робота торговала только по открытиям свечей и вообще не учитывала цену в промежутке формирования свечи, ничего не знала про торговую сессию, пре/пост маркет, но все же работала. Также параметры стратегии были подобраны вручную, а индикаторы использовались те, что удалось найти на JavaScript. К несчастью, это не самый популярный язык для финтех разработок, поэтому выбора особо не было.На этом этапе уже сформировались довольно четкие задачи, которые предстояло сделать:

— Дать возможность быстро подключить любого желающего к сделкам

— Создать универсальную, расширяемую платформу. Которая бы позволила быстрее запускать роботов в рынок.

— Научить эмулятор истории вставлять все известные по истории брокера тики во внутрь свечей старшего порядка. Это позволит улучшить эмулятор.

— Создать генетический или монтэ-карло оптимизатор (выбрать один из них)

Самая первая задача (про подключение людей), была закрыта почти сразу. И после этого, уже на этом этапе развития, в управление роботов угодила сумма в 15 миллионов рублей. Появились первые инвесторы и первые положительные результаты. Я едва сдерживал себя от мысли использовать свою кредитную карту и залить дополнительным капиталом, чтобы хоть как-то увеличить свой собственный доход в денежном эквиваленте. Все инвесторы были предупреждены, что это еще «сырой» продукт и стабильности может не быть, таким образом мы обозначили риски прямо и открыто. Денег ни с кого не брали, все это было на добровольных началах, в качестве тестирования.
По мере течения времени, удалось закрыть и остальные задачи, в свободное от основной работы время, разумеется. За ширмой этого лаконичного предложения скрываются десятки, если не сотни бессонных ночей и рабочих сверхурочных (выставленных самому себе) часов, во время которых пришлось столкнуться с самыми разными частями математики, вспомнить давно забытый научный бекграунд, которым я занимался 3 года после окончания университета, пока не получил научный гранд в 3000 рублей.

Почти все что делалось на этом этапе развития, состояло из уже готовых частей, написанных другими разработчиками (opensource) и их приходилось лишь связывать и настраивать для решения своих задач. Но все изменилось, когда время занимаемое на всю мат. часть, так сказать, зашкалило до небес. Это стало поводом создавать свои, более быстрые решения, чего уж там в сотню раз более быстрые, как потом покажут метрики. Собственно так началось создание экосистемы под названием Debut. Смысл нового названия был в вызове, прокачать JavaScript как язык, годный для математики, годный для финтеха, показать всем, что с его помощью можно осуществлять быстрые вычисления. А также открыть путь сотням людей, ежедневно решающих задачи на этом языке программирования, к торговле, так сказать, дать возможность дебютировать в этой сфере и разработчикам и языку. Так появились: собственная реализация технических индикаторов, собственный генетический алгоритм. Также удалось сделать визуализацию исторических данных стратегии, на первых парах она выглядела вот так.

Debut: Экосистема автоматизации трейдинга на JavaScript 3 года спустя

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

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

Первые прблемы

На безоблачном небе появились первые грозовые тучи, график доходности по мере усовершенствования инструментария парадоксально разворачивался. И как позже стало известно, виной тому была смена рыночной ситуации. Стоит отметить, что первый запуск пришелся на период начала восстановления рынков акций, после коронавирусной паники. Специфика рынка того времени, как никогда располагала к автоматической торговле, поэтому любая поделка могла зарабатывать. Этот период подошел к концу в начале 2020 года, когда и начались проблемы. Доходность продолжала скакать, от 10% до -10% в месяц. Нужно срочно было искать инструменты, которые еще способны выдать хоть какую-то прибыль, для этого был сделан автоматический серийный оптимизатор, задачей которого было прогонять на всех возможных акциях стратегию, оценивать результаты и записывать лучшие. Так мы стали подбирать инструментарий под стратегию в полу-автоматическом режиме. Но это не помогло. Былого стабильного дохода не осталось и следа. Требовалась оптимизация стратегий, какое-то умное управление рисками и самое главное, понимание факта благоприятной среды для автоматизированной торговли.

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

Выгорание

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

Криптовалюта

Начало 2021, Курс BTC бил все мыслимые и нет рекорды, вокруг этого рынка был гигантский хайп. Мой новый коллега кроме того, что стал принимать участие в разработке, что вдохнуло в меня и в проект новую жизнь, убедил меня попробовать перенести все из акций в криптовалюту. Также указал на недочеты в стратегиях и подходах. Что заполнило мое свободное время десятками новых задач, по улучшению. Некоторое продолжительное время потребовалось, чтобы освоить API крипто-бирж, сделать реализацию которая бы легко переключалась между Тинькофф и Binance. Наконец все получилось.

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

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

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

Opensource

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

Вышла первая статья про проект на нескольких ресурсах. Это привлекло более 100 разработчиков, и почти 500 человек просто проходящих мимо и интересующихся разработками. Что сразу подтолкнуло проект к ряду усовершенствований и доработок во всех составляющих экосистемы.

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

У проекта, как полагается при публикации исходных кодов, появилась документация на 2х языках и развитие его активно продолжается и по сей день. Добавляются новые возможности и ведется разработка стратегий, в кулуарах или в открытом доступе.

Инвесторы, венчурные фонды и свой хедж фонд

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

Инвесторов было решено не торопиться возвращать, тк временами все ещё продолжаются капризы алгоритмов. Но я верю, что смогу победить в войне с биржами, главное не прекращать разработки. Очень хочется создать рано или поздно собственный хедж фонд, для тех, кто уже заработал миллиарды. А для простых людей и комьюнити, сделать автоследование за сигналами от торговых роботов, на бесплатной основе, с возможностью оставить чаевые.

Вот так, по "робингудски".

8
7 комментариев