Разговор с искусственным интеллектом (ИИ) о форексе. - страница 119

 

Не до конца понимаю, как эти модели можно реализовать в ТС. Один РСИ мало что может. Возможно нужны какие то еще условия, возможно просто и индикаторов или может с обученных моделей по другим индикаторам, или приращениям.

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

 
Возьмите что-то по типу кросс-корреляции, то есть нужно определить значения какой кривой запаздывают, а какой опережают. И сравните факт с прогнозом. Если прогноз отстает (будет отставать в среднем на 1 бар), то это не прогноз и сопоставим с наивным. Если опережает или совпадает с фактом, тогда хорошо. Так наверное понятнее, чем сравнение через среднеквадратичные ошибки с наивным прогнозом, для которого нужны чистые условия (стационарность среднего и дисперсии), например приращения с единичным лагом, разделенные на волатильность. Иначе ошибки теряют смысл, потому что ошибку на трендовом участке нельзя равнять с ошибкой на флэтовом. Они выглядят одинаково по значениям, но в первом случае потенциальный убыток выше, потому что трендовые ошибки коррелируют между собой, то есть имеют тенденцию к продолжению.

Например, на трендовом участке прогноз отстает на один бар, и это продолжается 10 баров. Вы будете постоянно продавать, потому что прогноз ниже фактического значения, а рынок будет постоянно расти. Причем в пунктах рынок может очень сильно расти. При обучении модель это не учитывает, для нее все ошибки одинаковые по значимости. Поэтому отставать на 1 бар на тренде для нее это норм, поскольку это все равно приводит к минимальной средней ошибке.
 
Valeriy Yastremskiy #:

Не до конца понимаю, как эти модели можно реализовать в ТС. Один РСИ мало что может. Возможно нужны какие то еще условия, возможно просто и индикаторов или может с обученных моделей по другим индикаторам, или приращениям.

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

Хороший вопрос, если бы был простой ответ, многие бы его уже нашли.

Предположим, что на данный момент у меня есть свои сигнальные индикаторы, которые находят паттерны и сигнализируют о возможном изменении направления цены. Вот изображение индикаторов RSI и CCI (изменено для моих нужд). Красные бары индикатора сигнализируют о продаже, синие – о покупке, желтые – о высокой вероятности наличия сигнала. Сигнал считается сформированным, если следующий бар не содержит сигнала. Я пометила сигналы индикатора CCI красными вертикальными линиями, а сигналы индикатора RSI — желтыми линиями. Как видите, эти индикаторы фактически не дублируют сигналы, они также имеют разную чувствительность. Итак, на данный момент, важность прогнозирования заключается в том, что, возможно, я смогу предсказать формирование сигнала на один бар ранше. 


Конечно, также есть возможность использовать изменения направления прогноза как подтверждение продолжения или изменения существующего движения цены. Если есть сигнал на продажу и прогноз указывает на снижение значения показания индикатора, то подтягиваем стоп и сдвигаем ТП.

 
Иными словами, при обучении регрессионной модели ей все равно прогнозирует она с опережением или с запаздыванием. Она просто уменьшает ошибку между фактом и прогнозом, не важно с каким знаком. Поскольку минимальную ошибку проще зафитить с запаздыванием, она это делает.
 
Maxim Dmitrievsky #:
Иными словами, при обучении регрессионной модели ей все равно прогнозирует она с опережением или с запаздыванием. Она просто уменьшает ошибку между фактом и прогнозом, не важно с каким знаком. Поскольку минимальную ошибку проще зафитить с запаздыванием, она это делает.

Честно говоря, я не понимаю, что вы имеете в виду, говоря о запаздывани прогноза. 

Сейчас 11:58 по серверному времени, поэтому около 11:59 двенадцать баров RSI, начинающихся с 0 (текущего), будут прочитаны и переданы модели для прогнозирования. Около 12:00 у меня будет прогноз на новый бар, относительно которого неизвестно движение цены и соответственно значение индикатора.

 
Можно конечно попробовать давать больший вес ошибкам, которые идут сериями, тогда модель будет меньше запаздывать на трендах. Для этого писать либо кастомный лосс, либо шаманить с данными.
 
Lilita Bogachkova #:

Честно говоря, я не понимаю, что вы имеете в виду, говоря о запаздывани прогноза. 

Сейчас 11:58 по серверному времени, поэтому около 11:59 двенадцать баров RSI, начинающихся с 0 (текущего), будут прочитаны и переданы модели для прогнозирования. Около 12:00 у меня будет прогноз на новый бар, относительно которого неизвестно движение цены и соответственно значение индикатора.

Взять факт и прогноз кривые и сравнить какая из них запаздывает по отношению к другой. Lead-lag relation. Прогноз не должен отставать в среднем.

Если он отстает, то прогнозирует не будущее, а прошлое (значение, которое уже было на прошлом баре)

Ну вообще не понимаю как без таких азов что-то делать, не пойми что, еще и через генератор кода. Вот она вам скопировала пример из интернетов, на котором обучалась, неправильный (это частая ошибка новичков, которые не понимают, что предсказывают МА вместо будущего и не могут сравнить) и вы с этим возитесь 🗿

Если бы все так просто было, все бы такими ботами торговали уже давно. Накидал слоев и вуаля.
 
Maxim Dmitrievsky #:
Взять факт и прогноз кривые и сравнить какая из них запаздывает по отношению к другой. Lead-lag relation. Прогноз не должен отставать в среднем.

Если он отстает, то прогнозирует не будущее, а прошлое (значение, которое уже было на прошлом баре)

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

 
Lilita Bogachkova #:

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

Да. Она прогнозирует неправильно, видно же, что с отставанием в среднем, как МА. И на пиках не доходит до них, разворачивается как МАшка. Это и есть проблема и ее нужно видеть 🗿 у вас и на графике не используются прошлые предсказания, Они просто линией соединены 🗿 разница между кривыми - те места, где потеряете деньги.
 
Maxim Dmitrievsky #:
Возьмите что-то по типу кросс-корреляции, то есть нужно определить значения какой кривой запаздывают, а какой опережают. И сравните факт с прогнозом. Если прогноз отстает (будет отставать в среднем на 1 бар), то это не прогноз и сопоставим с наивным. Если опережает или совпадает с фактом, тогда хорошо. Так наверное понятнее, чем сравнение через среднеквадратичные ошибки с наивным прогнозом, для которого нужны чистые условия (стационарность среднего и дисперсии), например приращения с единичным лагом, разделенные на волатильность. Иначе ошибки теряют смысл, потому что ошибку на трендовом участке нельзя равнять с ошибкой на флэтовом. Они выглядят одинаково по значениям, но в первом случае потенциальный убыток выше, потому что трендовые ошибки коррелируют между собой, то есть имеют тенденцию к продолжению.

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

Попробуем проанализировать предсказание модели

Последнее известное значение — 48, прогнозируемое значение — 41, фактическое — 42; 


известное значение — 42, прогнозируемое значение — 43, фактическое — 44; 




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

+

Одним словом, я ориентируюсь на направление изменений, +1;+2;+3;+1; все это растущий прогноз, при том, что реально может быть +2;+2;+2;+2.

Плохо, если в реальности +2;+2;+2;+2, а прогноз -2;+3;-2;+1. Тогда реальная ситуация кардинально отличается от прогноза. И вместо роста значений с прогнозом получается флет.