Блог им. BackLaN

ИИ Нейросетки и алго-торговля

В продолжение (НЕ моего) топика: Как проторговать нейросеть. Много пользы.
smart-lab.ru/blog/1064919.php#comment17339662

1)
Берем сетку из топика автора и запускаем тестирование по Si на H1 c 2019 по 2024 текущую дату
Торгуем по набору фьючерсов(НЕ склейка), перекладка в новый контракт в последний день,
Комиссия 10р — за 1 контракт, торгуем на 100% депо, БЕЗ плечей,
то есть Si стоит 33000 на депо 1000000, покупаем=1000000/33000=30 контрактов
Имеем:  Sharpe=1.18; Recovery=2.41;  MaxDD=-41%   (Да это все Out of Sample, на этом периоде сетку НЕ тренировали)
Period    	Return	        Return %	Max DD %
4/22/2019	$9,995.21          1.00	        -5.81	
1/3/2020	$642,055.35	63.57	-15.82	
1/4/2021	$157,789.05	9.55	        -9.02	
1/3/2022	$2,943,980.07	162.67	-41.03	
1/3/2023	$1,742,124.51	36.65	-20.09	
1/3/2024	$972,485.67	14.97	-21.30	

ИИ Нейросетки и алго-торговля

2)
Смотрим внимательно на код сетки, пробуем это переписать без сетки, просто на индикаторах, это можно если включить МОЗХ(он конечно должен быть в наличии).
МОЗХ ВКЛ!
Запускаем тестирование по Si на H1 c 2019 по 2024 текущую дату
Торгуем по набору фьючерсов(НЕ склейка), перекладка в новый контракт в последний день,
Комиссия 10р — за 1 контракт, торгуем на 100% депо, БЕЗ плечей,
то есть Si стоит 33000 на депо 1000000, покупаем=1000000/33000=30 контрактов
Имеем:  Sharpe=1.53; Recovery=4.48;  MaxDD=-31%   (Да это все Out of Sample)
Просто понял что можно выкинуть из индикаторов и какие параметры лучше использовать.
Period 	Return	        Return %	Max DD %	
4/22/2019	$30,613.73	3.06	        -4.16	
1/3/2020	$470,185.56	45.62	-13.37	
1/4/2021	$177,974.39	11.86	-6.26	
1/3/2022	$2,701,251.11	160.91	-31.17	
1/3/2023	$2,452,132.15	55.98	-10.53	
1/3/2024	$1,433,084.00	20.98	-13.44	
Как это не странно, стало немного получше
ИИ Нейросетки и алго-торговля

3)
Теперь берем оригинальную сетку и меняем таймфрейм на более мелкий. И вносим некоторые изменения в торговый код, чтобы меньше нарываться на возможно убыточные сделки, НЕ добавляем никаких новых индикаторов.
МОЗХ ВКЛ!
Запускаем тестирование по Si на M5 c 2019 по 2024 текущую дату
Торгуем по набору фьючерсов(НЕ склейка), перекладка в новый контракт в последний день,
Комиссия 10р — за 1 контракт, торгуем на 100% депо, БЕЗ плечей,
то есть Si стоит 33000 на депо 1000000, покупаем=1000000/33000=30 контрактов
Имеем:  Sharpe=2.29; Recovery=19.10;  MaxDD=-13%   (Да это все Out of Sample, на этом периоде сетку НЕ тренировали)
Period 	 Return	         Return %	Max DD %	
4/22/2019	 $53,185.21	 5.32	-2.54	
1/3/2020	 $379,432.98	 36.03	-2.69	
1/4/2021	 $144,512.90	 10.09	-4.82	
1/3/2022	 $3,506,015.99	 222.30	-13.34	
1/3/2023	 $5,713,302.78	 112.40	-7.60	
1/3/2024	 $6,383,940.86	 59.13	-5.07	
Уже получше, доходность поменьше стала, НО зато DD сильно уменьшился.
ИИ Нейросетки и алго-торговля


4)
Теперь берем оригинальную сетку и также меняем таймфрейм на более мелкий, добавляем еще 3 индикатора во входящий слой, и увеличиваем немного количество нейронов в скрытых слоях до 8 и 4 .  Сетку есстественно тренируем заново на данных с 2013 по 2020 год.
ТАКЖЕ используем наши изменения торгового кода, чтобы меньше нарываться на возможно убыточные сделки.
МОЗХ ВКЛ!
Запускаем тестирование по Si на M5 c 2019 по 2024 текущую дату
Торгуем по набору фьючерсов(НЕ склейка), перекладка в новый контракт в последний день,
Комиссия 10р — за 1 контракт, торгуем на 100% депо, БЕЗ плечей,
то есть Si стоит 33000 на депо 1000000, покупаем=1000000/33000=30 контрактов
Имеем:  Sharpe=2.28; Recovery=20;  MaxDD=-16%   (Да это все Out of Sample, на этом периоде сетку НЕ тренировали)
Period 	Return	        Return %	Max DD %	
4/22/2019	$41,207.30	4.12	        -3.42	
1/3/2020	$321,100.13	30.84	-5.29	
1/4/2021	$77,119.73	5.66	        -6.14	
1/3/2022	$3,567,142.92	247.82	-16.04	
1/3/2023	$6,377,536.76	127.38	-7.17	
1/3/2024	$6,911,143.24	60.71	-5.06	

Немного удалось поднять доходность.

ИИ Нейросетки и алго-торговля

5)
Теперь опять берем наш код БЕЗ сетки из примера (2).
ТАКЖЕ используем наши изменения торгового кода, чтобы меньше нарываться на возможно убыточные сделки.
НЕ добавляем никаких новых индикаторов.
Запускаем тестирование по Si на M5 c 2019 по 2024 текущую дату
Торгуем по набору фьючерсов(НЕ склейка), перекладка в новый контракт в последний день,
Комиссия 10р — за 1 контракт, торгуем на 100% депо, БЕЗ плечей,
то есть Si стоит 33000 на депо 1000000, покупаем=1000000/33000=30 контрактов
Имеем:  Sharpe=2.32; Recovery=20.70;  MaxDD=-10.86%   (Да это все Out of Sample)
Period 	  Return             Return %	Max DD %	
4/22/2019	  $59,879.28	5.99	        -2.77	
1/3/2020	  $231,924.00	21.88	-2.93	
1/4/2021	  $110,520.84	8.56	        -4.43	
1/3/2022	  $2,511,171.36	179.07	-10.86	
1/3/2023	  $3,978,089.00	101.65	-6.67	
1/3/2024	  $3,322,445.36	42.10	-3.05	
Без сетки получилась меньшая доходность, НО и меньше MaxDD
ИИ Нейросетки и алго-торговля

6)
Ну и наконец вспонимаем, что у нас же есть прогностические индикаторы которые могут предсказывать(не на 100% конечно) движение на 2-3бара вперед. Выбираем предсказывание на 3бара вперед и переписываем код использую этот прогностический индикатор.
ТАКЖЕ используем наши изменения торгового кода, чтобы меньше нарываться на возможно убыточные сделки.
У прогностического индикатора есть еще два параметра, НО значение для второго я знаю без тестирования, для третьего берем рекомендуемое значение.
Запускаем тестирование по Si на M5 c 2019 по 2024 текущую дату
Торгуем по набору фьючерсов(НЕ склейка), перекладка в новый контракт в последний день,
Комиссия 10р — за 1 контракт, торгуем на 100% депо, БЕЗ плечей,
то есть Si стоит 33000 на депо 1000000, покупаем=1000000/33000=30 контрактов
Имеем:  Sharpe=2.29; Recovery=20.03;  MaxDD=-10.56%   (Да это все Out of Sample)

Period 	Return	        Return %	 Max DD %	
4/22/2019	$73,245.46	7.32	         -2.98	
1/3/2020	$258,464.66	24.08	 -5.98	
1/4/2021	$52,599.49	3.95	         -7.92	
1/3/2022	$4,885,134.73	352.89	 -10.56	
1/3/2023	$6,207,734.31	99.02	 -7.08	
1/3/2024	$5,336,572.60	42.77	 -4.81	

Получили доходность лучше чем у нейросетки и меньший MaxDD.
ИИ Нейросетки и алго-торговля

Вывод; Прогностические индикаторы пока работают лучше чем простые нейросетки!
Да еще, коммисия 10р за 1контракт — это в одну сторону. То есть купили 1 контракт -10р, потом закрыли сделку, еще -10р.

★5
41 комментарий
Ждем ваших лучей поноса! Расчехляйте #овнометы!
avatar
Beach Bunny, 
Вывод; Прогностические индикаторы пока работают лучше чем простые нейросетки!
ну так чтобы тока разговорчик завязать...
должны работать одинаково или приблизительно одинаково…
avatar
wistopus, они никому ничего не должны, они слишком простые
avatar
Beach Bunny, современные нейросети не могут работать со входами, которые представляют из себя нестационарные случайные процессы. А прошлые цены таковыми и являются, поэтому нейросети, на вход которых подаются прошлые цены — бесполезны в торговле.
avatar
А. Г.,  «современные» нейросети прекрасно могут работать с чем угодно, в том числе и с non-stationary. И насчёт бесполезности вы тоже не правы.
avatar
BeyG, никакая  функция от нестационарных случайных величин не может сделать статистический прогноз пока ненаблюдаемого. Эта теорема в теории вероятностей доказана еще в 70-х годах 20 века.

Поэтому, если используешь нейросеть для статистического прогноза пока ненаблюдаемого, то убирай нестационарность на ее входе, так как любая нейросеть — это функция от входа. А цены на акции — нестационарны. Только для таких входов  я и делал утверждение для нейросетей в торговле акциями. Конечно это не значит, что если на вход нейросети подать функцию от цен, убравшую их нестационарность, то ее нельзя использовать. Но прежде чем использовать нейросеть, надо построить такую функцию.
avatar
Дополню. Чтобы проверить качество нейросети надо отбирать только такие, у которых СКО ошибки на обучающей выборке статистически не отличается от СКО ошибки тестирующей выборки. И это СКО статистически меньше СКО ошибки линейной регрессии. Что-то я не встречал ПО обучения для современных нейросетей с решением этой задачи, кроме SPSS. Да и в SPSS было только статравенство СКО ошибок обучающей и тестирующей выборок, а сравнивать с линейной регрессией надо было путем ее отдельного расчета там же в SPSS.
avatar
А. Г., Ну понятно. Обучать нейросети в SPSS это примерно как в лаптях марафон бежать. Без обид, но все сильно попахивает нафталином и похоже на рассуждения человека который может и силен в математике и имеет большой опыт, но совершенно не в теме современного состояния индустрии ИИ и neural networks.
avatar
BeyG, условие обучения, чтобы СКО ошибки на обучающей выборке и тестирующей были статистически идентичны я не видел нигде, кроме SPSS. Не подскажите в каком еще ПО это уже реализовано?
avatar
А. Г., зачем вам это? Это абсолютно примитивно, также как и набор доступных в SPSS моделей нейросеток. Для оценки сейчас используются гораздо более робастные метрики — F1 score, cross-entropy loss, ROC, AUC и т.д. и т.п. В прошлом посте про сравнение с линейной регрессией это вообще каменный век… Вы чего?
avatar
А. Г., вы считаете нейросети слишком примитивным явлением, за последние 5-10 лет, там произошел качественный рывок не только за счёт вычислительных мощностей, но и в архитектуре. Attention механизмы, LSTM, TCN, различные комбинированные подходы запросто позволяют «убирать» эту самую нестационарность силами самой нейросети, а точнее выделять те свойства процессов которые являются условно полезной составляющей.
avatar
BeyG, убирать нестационарность путем подгонки параметров функции от нестационарной последовательности — это априорная ошибка. А нейросеть всегда считал подгонкой параметров функции на обучающей выборке. Или в этом я уже не прав?
avatar
А. Г., Господи, да перестаньте вы смотреть на нейросети как на тупую математическую функцию. Они уже давно умнее вас и видят в каких угодно данных гораздо больше чем вы. И не подгонка, а генерализация.
avatar
BeyG, а нейросеть и есть только функция отображения входов на выход. И вопрос о ее свойствах — ключевой. А Вы так и не ответили на мой вопрос об СКО ошибок. Он то как раз ключевой в использовании нейросетей с нестационарными случайными входами, как и любой функции.
avatar
А. Г., Ещё раз вам хочу сказать что StDev ошибок это крайне примитивная метрика для оценки нейросетей. Но если вы хотите в век AGI продолжать махать каменным топором — ваш выбор. В любом современной библиотеке типа tensorflow все это разумеется есть.
avatar
BeyG, эта метрика не примитивная, а самая простая из ключевых для нестационарных случайных величин. Если с ней ничего не получается, то надо выбросить сделанное на помойку, а если получилось, то стоит и еще кое-что разобрать.
avatar
А. Г., Можно теперь я спрошу? С какой самой интересной нейросетью, связанной с финансовыми рынками вы сталкивались? Какая архитектура? Сколько параметров? На каком объеме данных тренировали? Какие признаки использовали? Какое железо использовали для тренировки?
avatar
BeyG, С точки зрения математики, обучение нейронных сетей — это многопараметрическая задача нелинейной оптимизации;

Многослойный перцептрон с сигмоидами, на вход которого подавались приращения логарифмов дневных цен индекса Доу-Джонса и всех акций, его составляющих,  за 20 прошлых дней, а выход — приращение логарифма  Доу-Джонса на следующий день.

Абсолютно нерабочая задача для такой нейросети с такими входами.
avatar
А. Г., ничего удивительного что ничего не вышло — слишком мало данных даже для такой простой архитектуры, да и сами данные слишком простые. Я вот всю прошлую неделю пытался запихнуть в 2x 24 Гб RTX 3090Ti комбинированную сетку CNN+ Bi-directional LSTM из 700 млн параметров, получающую на вход массив из двумерных матриц нормализованных параметров (и это конечно далеко не банальные приращения цен) общим объемом ~11 Гбайт, а на выходе… это мое ноу-хау, но давайте скажу что это некий описательный образ рынка.
avatar
BeyG, да любые N цифр являются значениями многочлена N+1 степени от одной переменной.Только смысл в этом для прогноза (N+1)-й цифры нуль. Поэтому для точности того, что нашлось, надо, как минимум сравнить точность прогноза на том, что ложилось в обучение с тем, что обучение не видело. А уж много на входе или мало, это для решения задачи получения одинаковой точности прямого влияния может и не иметь.

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

«Расстояние» в кавычках потому что в нем можно отказаться от одного из стандартных условия определения.
avatar
Прогностические индикаторы пока работают лучше чем простые нейросетки!
Если в слове ХЛЕБ заменить всего четыре буквы, то получится ПИВО!
Дмитрий Овчинников, не получится, прогностические индикаторы — это из теории автоматического регулирования — там нет никаких сеток и нейронов.
Хотя конечно некоторые и LC фильтр могут назвать нейронной сеткой
avatar
Это не ИИ нейросетка, а какая-то параша. Когда автор узнает хотя бы такие слова как например tensorflow, cudnn, lstm, hyperparameter, feature scaling и т.п. — тогда можно будет говорить о чем то
avatar
BeyG, вы видимо погромизд и не лечитесь.
avatar
Beach Bunny, гораздо хуже, дейта сайентизд, болезнь уже не излечима
avatar
BeyG, понятно, дата-сатанист, читайте Отче наш — 3раза вдень в течении 6 месяцев и бесы изыдят из Вас.
avatar
Beach Bunny, в конкурсе Частный Ы-Ынвестор со своей ТС будешь участвовать?
Александр Сережкин, зачем, у меня своих денег хватает.
avatar
Beach Bunny, не за деньги, за известность. Станешь на конфе матьтвою-лаба сидеть за столом и плевать в зал. Девушки новые. Телевидение, радио, напишешь книгу, командировки в капстраны. Но выбор за тобой. 
Александр Сережкин, хочешь, чтобы я надел малиновые штаны, а потом стал Аленем-обеспечуном? Не спасибо, как то не хочется.
avatar
Beach Bunny, цветовую дифференциацию современного общества никто не может отменить. 
Александр Сережкин, лучше я буду квадробером!
avatar

Beach Bunny, 

читайте Отче

ищо пост соблюдать надо.

ибо сказано в писании: «молитвою и постом». одновременно.

 

  
avatar
Что значит — «смотрим на код сетки»?  
avatar
Иван-дурак, вот топик   
smart-lab.ru/blog/1064919.php
где чел написал, как использовать Neiro-Lab который есть в Wealth-Lab. Там же в топике есть ссылки где все можно скачать в том числе и Wealth-Lab и пример нейросетки в XML формате.
=> cloud.mail.ru/public/26EC/iYfBBptXs
Сетка это Schema_5_2_1_Si.xml
При открытии этого в Neuro-Lab там будет структура сетки + InputScript + OutputScript.
InputScript — создание входных данных для сетки
OutputScript — создание выходных значений которые сеть должна предсказывать.
avatar
Иван-дурак, забыл сслыку на топик автора вставить => smart-lab.ru/blog/1064919.php
avatar

Получили доходность лучше чем у нейросетки и меньший MaxDD.

осталось тока на реальных баппках испытать))
jaśnie wielmożny pan Szczur, это не проблема, это же не первый робот
avatar
Завязывай на марсианском писать.простым людям непонятно.че написал.кому написал.давай переводи.
avatar
Якут Якутяшка, простым в смысле тупым.
Там и так все просто написано, если не понятно то вам не сюда.
avatar

теги блога Beach Bunny

....все тэги



UPDONW
Новый дизайн