Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

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

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

Цели

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

Но сколько вы можете заработать? Давайте возьмём пример одной наиболее вкусных компаний (с точки зрения роста).

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 1. Месячный график котировок компании Apple (AAPL), nasdaq

Посмотрите на надкусанное яблоко (рис. 1), казалось бы, всё хорошо. Тот кто вложил в компанию десять лет назад, десятикратно умножил свой капитал.

Но здесь есть можно выделить два глобальных нюанса.

Первый. Такое бывает на всегда.

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 2. Недельный график котировок компании Helmerich & Payne (HP), NYSE

Может быть например такое, как у компании HP(рис. 2), когда вы ничего не заработаете.

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 3. Недельный график котировок компании MRC Global (MRC), NYSE

Или может быть вот так как на рис.3 с компанией MRC. Вложившись во что-то вы еще не скоро получите возврат своих инвестиций, если вообще их получите.

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

Возможности

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

В качестве примера возможности разберем опять же надкусанное Яблоко (AAPL).

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 4. Разметка волатильности компании Apple (AAPL), nasdaq по стохастику: зелёное – рост волны, красное – падение волны

Взгляните на рис. 4, торговля на волатильности рождает возможности, когда вы покупаете дешевле и продаёте дороже преумножая своё капитал.

Если рассматривать данный вид разметки, то теоретически, торгуя в LONG на данном финансовом инструменте вы максимально можете преумножить свой капитал в 1,386.47 раз. Почувствуйте разницу. 10 раз с точки зрения инвестиционной доходности и потенциальные 1,386.47??

Разметить данные и отрабатывать можно разную волатильность. Можно брать более большие волны и более мелкие. Взгляните еще раз на рис. 4, на нём большое количество пробелов, связанных с торговлей по тренду при открытии позиции в LONG (то есть, нет смысла покупать, если яблоко падает). Но тем не менее, это не значит что в данных точках отсутствует волатильность, которую мы можем отработать. Поэтому, мы рассматриваем в качестве возможности в наших рассуждением волатильность не по стохастику, а меньше. В идеале, желательно забрать каждую волну на которой можно заработать (рис. 5).

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 5. Разметка волатильности (все волны) компании Apple (AAPL), nasdaq: зелёное – рост волны, красное – падение волны

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 6. Итоговая разметка волатильности (все волны) компании Apple (AAPL), nasdaq: зелёное – рост волны, красное – падение волны

Из рис. 6. видно, что теперь мы можем забрать практически всё, что даёт рынок. При таком подходе на Apple, потенциально можно умножить свой портфель в 76,330.31 раз. Сравните цифры инвестиционной доходности 10 раз и потенциальной торговой в 76,330.31 раз. Чувствуете разницу? И это я даже не напоминаю про то, что эти 10 раз еще нужно получить, ведь как было показано выше, компании то есть разные. И часть из них падает.

ВАЖНО! Здесь есть важный нюанс. Вы должны понимать, что то, что представлено выше это недостижимый идеал. Хотя бы потому, что вы не можете ловить оптимальные точки входа/экстремумы. Даже при том условии, что вы способны детектировать все волны, в лучшем случае вы можете забрать доходность при смещении точки входа и выхода на 1 бар.

В последующих рассуждениях мы будет рассматривать два вида потенциальной доходности. Как максимальная (теоретически недостижимый идеал), так и доходность при смещении точки входа и выхода на 1 бар.

Торговые алгоритмы

Прежде чем мы перейдем к нейронным сетям, сначала определимся с торговыми алгоритмами.

За базу для сравнения были выбраны простые торговые алгоритмы на основании EMA, Стохастик, MACD. Торговые алгоритмы выполнены в пакете TSLab, и скачать их можно здесь.

Вид торговли: LONG(везде будем покупать и только покупать).

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 7. Пример торгового алгоритма в TSLab (картинка с просторов интернета)

Табл. 1

Перечень алгоритмов для сравнения

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Стоп лосс фиксированный, %: 10.

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

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 8. Скриншот результатов исследований алгоритма EMA9_EMA20 на инструменте AJG

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

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 9. Скриншот результатов доходности алгоритма EMA9_EMA20 на инструменте AJG

Также результаты исследований представлены на графике, рис. 9. Здесь отображается линия котировок (синий цвет), которая позволяет оценить инвестиционную доходность. Конкретно в данном случае она составляет 125%. А также показана доходность торгового алгоритма (выделено зеленым цветом). Конкретно в данном случае доходность алгоритма при торговле одной акцией 82,99%. Как видно сам торговый алгоритм не дотягивает до инвестиционной доходности в данном случае, но забирает неплохую долю.

База для сравнения

Теперь когда мы определились с торговыми алгоритмами, давайте определимся с какими компаниями мы будем проводить сравнение.

В качестве базы для сравнения будет выступать портфель из следующих компаний (рынок NASDAQ): AJG, ARCC, BKR, FTI, HP, INTC, OXY.

Всего 8 финансовых инструментов.

Данные компании выбраны таким образом, чтобы наше сравнение было более интересным.

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 10. Недельный график компании AJG

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 11. Недельный график компании FTI

Портфель был подобран так, чтобы в нём были разнородные компании, как растущие, так и падающие, для большей релевантности оценки.

Даты оценки: с 11 ноября 2012 года по 11 ноября 2021 года.

Компании будут оцениваться на девятилетнем промежутке.

Датасеты для TSLab можно скачать здесь.

Нейронные сети

За основу торгового алгоритма на нейронных сетях были взяты LSTM нейронные сети. Обучение проходило на более чем 10 000 финансовых инструментах, что в годах составило более 100 тысяч лет данных.

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

В основу факторов обучения были положены факторы технического анализа с общим числом факторов более 2000 шт.

Точность работы и отсутствие переобучения нейронных сетей контролировали по среднеквадратичному отклонению.

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 12. Пример данных среднеквадратичного отклонения по результатам одного из исследований

Сами результаты работы нейронных сетей представляли в следующем виде:

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 13. Результаты работы нейронных сетей для компании AJG (управляющие сигналы)

На рис. 13 приведены несколько графиков, по которым можно получить некоторое представление о сигналах, формируемых нейронной сетью:

- Начнём со второй сверху линии, показанной синим цветом. Это ожидаемое поведение нейронной сети, которое мы хотим получить.

- Самый верхний график (оранжевый) – это результат расчёта нейронной сети.

- Зелёный и красный графики снизу это математически преобразованные расчётные сигналы нейронной сети в управляющие сигналы для торгового робота. Они отличаются алгоритмами преобразования. За основу расчёта в дальнейшем мы будем брать самый нижний график (красный), работающий на основе распределения Гаусса.

Если рассматривать каждый сигнальный график в отдельности, то у управляющих сигналов есть 3 состояния: держать, покупать и продавать.

+1 = покупка.

- 1 = продажа.

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 14. Сигналы покупки и продажи

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 15. Результаты работы нейронных сетей для компании AJG (доходность)

По итогам бэк теста можно получить следующие графики доходности:

А) Два центральных графика – это ожидаемая доходность (максимальная и труднодостижимая). Оранжевый график – потенциальная доходность без смещения, зеленый график – со смещением на 1 день.

Б) Графики сверху и снизу – это показатели доходности нейронной сети.

Здесь же я сразу отмечу, что на графиках показана доходность, которая рассчитывается как соотношение «Цены Закрытия» и «Цены открытия». То есть, во сколько раз вы умножитесь за один раз торгов.

Всё что выше чёрной линии (рис. 15), то есть положительная доходность, всё что ниже – отрицательная.

По результатам исследований получали данные как накопленной доходности, так и доходности при торговле фиксированным объемом акций на всём промежутке торгов (мы обозначим как доходность при торговле 1 акцией).

Результаты исследований

Я еще раз обращаю внимание, исследования проводились ТОЛЬКО при торговле в Long!

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

Результаты экспериментов запротоколированы и их можно скачать ниже:

В данной статье я приведу обобщённые результаты исследований без привязки к отдельным финансовым инструментам.

Табл. 2

Обобщенные результаты экспериментальных исследований сравнительной эффективности

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Выводы

Как вы видите, с точки зрения инвестиций на 9-летнем промежутке при работе с данным портфелем вы можете получить лишь незначительную прибыль. Максимум 13%.

Но если рассматривать теоретически недостижимый идеал, то вы можете получить от 300 до 22500 раз (с округлением). Что такое 0,13 и тысячи процентов?? За это стоит побороться.

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

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

Нужно понимать, что можно как выиграть, так и проиграть.

Но если сравнивать торговые алгоритмы и инвестиционную доходность, то они не идут ни в какое сравнение с эффективность нейронных сетей.

Взгляните, вы можете на данном портфеле с применением нейронных сетей умножиться в 600 раз. Что такое 1,3 или даже 2 раза по сравнению с тем, что можно получить??

Здесь же я хочу отметить важный момент. Потенциальная доходность по разметке со смещением в 1 день составляет порядка 300. А мы получили 600. Это связано с тем, что нейронная сеть МОЖЕТ ловить экстремумы. То есть, входить и выходить наивыгоднейшим образом без смещенияотносительно локальных минимумов и максимумов.

Сравнение эффективности торговли робота на нейронных сетях с некоторыми торговыми алгоритмами

Рис. 16. Сигналы нейронной сети

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

Ресурсы

Для тех, кто не занимался нейронными сетями, но хотел бы посмотреть в эту сторону хочу сказать несколько вещей. Торговые алгоритмы проще и менее ресурсоёмкие чем нейронные сети. Разработка торговых роботов с одной стороны это сложный и наукоёмкий процесс, а с другой стороны он ресурсоёмкий. Если для того, чтобы торговый и инвестиционный советник мне прошелся по десяти тысячам акций на основании анализа технических индикаторов мне нужно пару-тройку дешманских серверов, то на нейронных сетях, к сожалению, простотой не отделаешься. Даже исключая затраты на подготовку данных, например, расчёт по одному финансовому инструменту по вышеуказанным в статье нейронным сетям на моём компьютере ведется 4 минуты. То есть, если у вас есть 10 000 акций, то лично я бы на своём компьютере месяц только 1 раз их всех смог обойти. Соответственно, для мониторинга рынка и адекватной работы нейронных сетей вам нужен небольшой ЦОД. И к этому нужно тоже быть готовым.

Технологический стэк

Два слова хотелось бы сказать о технологическом стеке.

Исследование алгоритмов разметки проводили с применением: TypeScript, Angular2+, HighCharts.

Торговые алгоритмы: TSLab 2.1.

Источник датасета для торговых алгоритмов: Финам.

Источник датасета для нейронных сетей: Yahoo.

Формирование датасета: микросервисы на Node.JS.

Нейронные сети: python/tensorflow 2/keras.

Два слова о себе. Я являюсь основателем стартапа по предиктивной аналитике международных финансовых рынков на базе нейронных сетей finprophet.com. Мне интересна тематика автоматизированного принятия решений по торговле и инвестированию, в том числе с применением нейронных сетей. Считаю, что за этой технологией будущее. Если у кого то будет желание пообщаться, можно писать мне здесь или по контактам, указанным ниже.

Контакты:

Всех благ, побед и

успехов на фондовых

рынках!

1919
121 комментарий

Доходность без учета издержек (комиссии брокера, биржи, проскальзывание, bid-ask spread)?

4

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

Например, в ряде исследований я даже исключал совсем малые волны. И при этом их амплитуда варьировалась от 5 до 7%. Проскальзывание в 0,1-0,3% по сравнению с волательностью на данном таймфрейме на мой взгляд тоже не существенно.

Приведу пример. Вот компания Американ аирлайнс с трёхчасовым графиком и приведенными к дневным индикаторами. Последняя волна 17+% доходности.

Также хочу отметить, что всё это не существенно в целом по сравнению с конечной эффективностью робота на нейронных сетях.

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

4

Верное замечание, но если посмотреть на тот же Финам, комиссия за трейд 0,0098%. То есть почти ноль, и становится более менее значимой при незначительных объемах торгов, когда есть минимальная комиссия.

То есть, допустим вы за трейд зарабатываете 10%, но отдаете комиссии 0,0098%. Это почти не существенная величина, на мой взгляд.

Но тем не менее, да, я согласен, что комиссию для увеличения точности расчетов необходимо учитывать.

3

"За базу для сравнения были выбраны простые торговые алгоритмы на основании EMA, Стохастик, MACD"
Это не торговые алгоритмы а фуфло для лудиков "научим торговать за неделю".

4

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

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

1

Но в целом да, эффективность достаточно низка, согласен.

1

Добрый день, я надеюсь, вы в обучении не использовали данные за последние 9 лет, в том числе и по другим инструментам? Иначе у вас просто тест утек в трейн, и результат бесполезен

2