Почему написать авто-трейдера — это, чисто технически, сложная задача? Очевидно, научить программу хоть с какой-то долей вероятности предсказывать движения курса наперед — уже трудоемко; однако, есть вторая часть вопроса, из-за которой большинство экспертов в машинном обучении опускают руки — сама купля и продажа.
Криптовалютные биржи похожи на классических своих предков: никто особо не выставляет цену на валюту, она регулируется спросом и предложением. Нельзя просто взять и купить биткоинов на $1 000 000 по текущей цене продажи, в обратную сторону работает то же самое правило.
Система работает просто: с одной стороны люди выставляют запросы (ордеры) на покупку определенного количества криптовалюты по определенной цене, с другой стороны, уже другие люди, выставляют ордеры на продажу определенного количества по определенной цене. Когда подобные запросы могут взаимоисключить или хотя бы забрать часть друг друга, биржа их взаимовыполняет. Взгляните на
bitfinex.com — список ордеров на покупку и продажу, на сленге, называется "стаканом".
Если вы просто выставите ордер по самой привлекательной цене на крупную сумму, велика вероятность стагнации подобного запроса: за пару секунд кто-то может выставить ордер по более приятной рынку цене, а вы останетесь в дураках с висящим в воздухе, уже никому ненужным ордером.
Так в чем же дело? Почему так сложно перебрать стакан сверху вниз (или снизу вверх) и просто выставить контр-ордера? Проблема в скорости передачи информации: пока ваш запрос на создание ордера летит на биржу, желаемый контр-ордер уже может исчезнуть. А следовательно, вам придется покупать ордеры по менее привлекательной цене.
На этом этапе сливаются профессионалы и их классические алгоритмы. А вот я взял и собрал информацию по стаканам с начала июня 2017 года, написал вторую нейронную сеть и обучил ее следить за основными параметрами рынка на подобие: размера стакана, магнитуды движения рынка вверх или вниз, наличия "стенок" (больших ордеров, которые не выкупают иногда по несколько минут). С каждой куплей и продажей нейронная сеть все лучше и лучше будет предугадывать, какой из ордеров нужно пытаться закрыть, а какой, с большей долей вероятности, исполнят раньше, чем запрос дойдет до биржи.
Можно с полной уверенностью говорить, что Toreador стал профессиональным "taker'ом" — забирателем ордеров из стакана. Уверен, что лучше подобной системы придумать будет сложно. Проверил сегодня на своем депозите — покупка и продажа происходят с минимальной ошибкой меньше одной сотой процента выставленных ордеров.
Торгуем дальше!