Beach Bunny
Beach Bunny личный блог
10 октября 2024, 18:45

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

В продолжение (НЕ моего) топика: Как проторговать нейросеть. Много пользы.
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р.

41 Комментарий
    • wistopus
      10 октября 2024, 18:54
      Beach Bunny, 
      Вывод; Прогностические индикаторы пока работают лучше чем простые нейросетки!
      ну так чтобы тока разговорчик завязать...
      должны работать одинаково или приблизительно одинаково…
    • А. Г.
      10 октября 2024, 18:55
      Beach Bunny, современные нейросети не могут работать со входами, которые представляют из себя нестационарные случайные процессы. А прошлые цены таковыми и являются, поэтому нейросети, на вход которых подаются прошлые цены — бесполезны в торговле.
      • BeyG
        10 октября 2024, 19:35
        А. Г.,  «современные» нейросети прекрасно могут работать с чем угодно, в том числе и с non-stationary. И насчёт бесполезности вы тоже не правы.
        • А. Г.
          11 октября 2024, 00:21
          BeyG, никакая  функция от нестационарных случайных величин не может сделать статистический прогноз пока ненаблюдаемого. Эта теорема в теории вероятностей доказана еще в 70-х годах 20 века.

          Поэтому, если используешь нейросеть для статистического прогноза пока ненаблюдаемого, то убирай нестационарность на ее входе, так как любая нейросеть — это функция от входа. А цены на акции — нестационарны. Только для таких входов  я и делал утверждение для нейросетей в торговле акциями. Конечно это не значит, что если на вход нейросети подать функцию от цен, убравшую их нестационарность, то ее нельзя использовать. Но прежде чем использовать нейросеть, надо построить такую функцию.
          • А. Г.
            11 октября 2024, 00:39
            Дополню. Чтобы проверить качество нейросети надо отбирать только такие, у которых СКО ошибки на обучающей выборке статистически не отличается от СКО ошибки тестирующей выборки. И это СКО статистически меньше СКО ошибки линейной регрессии. Что-то я не встречал ПО обучения для современных нейросетей с решением этой задачи, кроме SPSS. Да и в SPSS было только статравенство СКО ошибок обучающей и тестирующей выборок, а сравнивать с линейной регрессией надо было путем ее отдельного расчета там же в SPSS.
            • BeyG
              15 октября 2024, 16:19
              А. Г., Ну понятно. Обучать нейросети в SPSS это примерно как в лаптях марафон бежать. Без обид, но все сильно попахивает нафталином и похоже на рассуждения человека который может и силен в математике и имеет большой опыт, но совершенно не в теме современного состояния индустрии ИИ и neural networks.
              • А. Г.
                15 октября 2024, 17:10
                BeyG, условие обучения, чтобы СКО ошибки на обучающей выборке и тестирующей были статистически идентичны я не видел нигде, кроме SPSS. Не подскажите в каком еще ПО это уже реализовано?
                • BeyG
                  15 октября 2024, 19:27
                  А. Г., зачем вам это? Это абсолютно примитивно, также как и набор доступных в SPSS моделей нейросеток. Для оценки сейчас используются гораздо более робастные метрики — F1 score, cross-entropy loss, ROC, AUC и т.д. и т.п. В прошлом посте про сравнение с линейной регрессией это вообще каменный век… Вы чего?
          • BeyG
            15 октября 2024, 16:15
            А. Г., вы считаете нейросети слишком примитивным явлением, за последние 5-10 лет, там произошел качественный рывок не только за счёт вычислительных мощностей, но и в архитектуре. Attention механизмы, LSTM, TCN, различные комбинированные подходы запросто позволяют «убирать» эту самую нестационарность силами самой нейросети, а точнее выделять те свойства процессов которые являются условно полезной составляющей.
            • А. Г.
              15 октября 2024, 17:15
              BeyG, убирать нестационарность путем подгонки параметров функции от нестационарной последовательности — это априорная ошибка. А нейросеть всегда считал подгонкой параметров функции на обучающей выборке. Или в этом я уже не прав?
              • BeyG
                15 октября 2024, 19:29
                А. Г., Господи, да перестаньте вы смотреть на нейросети как на тупую математическую функцию. Они уже давно умнее вас и видят в каких угодно данных гораздо больше чем вы. И не подгонка, а генерализация.
                • А. Г.
                  15 октября 2024, 19:53
                  BeyG, а нейросеть и есть только функция отображения входов на выход. И вопрос о ее свойствах — ключевой. А Вы так и не ответили на мой вопрос об СКО ошибок. Он то как раз ключевой в использовании нейросетей с нестационарными случайными входами, как и любой функции.
                  • BeyG
                    15 октября 2024, 20:25
                    А. Г., Ещё раз вам хочу сказать что StDev ошибок это крайне примитивная метрика для оценки нейросетей. Но если вы хотите в век AGI продолжать махать каменным топором — ваш выбор. В любом современной библиотеке типа tensorflow все это разумеется есть.
                    • А. Г.
                      15 октября 2024, 20:42
                      BeyG, эта метрика не примитивная, а самая простая из ключевых для нестационарных случайных величин. Если с ней ничего не получается, то надо выбросить сделанное на помойку, а если получилось, то стоит и еще кое-что разобрать.
                      • BeyG
                        15 октября 2024, 21:08
                        А. Г., Можно теперь я спрошу? С какой самой интересной нейросетью, связанной с финансовыми рынками вы сталкивались? Какая архитектура? Сколько параметров? На каком объеме данных тренировали? Какие признаки использовали? Какое железо использовали для тренировки?
                        • А. Г.
                          15 октября 2024, 22:13
                          BeyG, С точки зрения математики, обучение нейронных сетей — это многопараметрическая задача нелинейной оптимизации;

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

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

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

                              «Расстояние» в кавычках потому что в нем можно отказаться от одного из стандартных условия определения.
  • Дмитрий Овчинников
    10 октября 2024, 19:05
    Прогностические индикаторы пока работают лучше чем простые нейросетки!
    Если в слове ХЛЕБ заменить всего четыре буквы, то получится ПИВО!
  • BeyG
    10 октября 2024, 19:09
    Это не ИИ нейросетка, а какая-то параша. Когда автор узнает хотя бы такие слова как например tensorflow, cudnn, lstm, hyperparameter, feature scaling и т.п. — тогда можно будет говорить о чем то
      • BeyG
        10 октября 2024, 19:21
        Beach Bunny, гораздо хуже, дейта сайентизд, болезнь уже не излечима
          • Александр Сережкин
            10 октября 2024, 19:55
            Beach Bunny, в конкурсе Частный Ы-Ынвестор со своей ТС будешь участвовать?
              • Александр Сережкин
                10 октября 2024, 20:06
                Beach Bunny, не за деньги, за известность. Станешь на конфе матьтвою-лаба сидеть за столом и плевать в зал. Девушки новые. Телевидение, радио, напишешь книгу, командировки в капстраны. Но выбор за тобой. 
                  • Александр Сережкин
                    10 октября 2024, 20:11
                    Beach Bunny, цветовую дифференциацию современного общества никто не может отменить. 
          • jaśnie wielmożny pan Szczur
            10 октября 2024, 21:26

            Beach Bunny, 

            читайте Отче

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

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

             

    • __rtx
      15 октября 2024, 13:36
        
  • Иван-дурак
    10 октября 2024, 21:26
    Что значит — «смотрим на код сетки»?  
  • jaśnie wielmożny pan Szczur
    10 октября 2024, 21:30

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

    осталось тока на реальных баппках испытать))
  • Якут Якутяшка
    11 октября 2024, 13:20
    Завязывай на марсианском писать.простым людям непонятно.че написал.кому написал.давай переводи.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн