Всем привет!.. Я тут систему пишу на на дневках применяя LSTM сеть из библиотеки Keras, обнаружил забавный эффект. Я пытаюсь предсказать движение на завтрашний день некоторого синтетического индекса, который более стационарен, чем входящие в него инструменты. Так вот, забавно, что основной подход в таких системах это почти всегда брать значения за предыдущие несколько дней, и на их основе делать предсказание на завтра (если речь о дневках)
Интересно то, что в процессе реализации метода генерации данных для обучения, я накосячил и таргет значение было не следующий день, а следующий день + 1, и вместо того что бы брать 5 предыдущих дней я беру 5 дней без учета вчерашнего дня. В результате я получаю вот такой результат. Все картинки ниже на тестировании
Out-of-sample
После чего я все продебажил и нашел проблему, оказалось, что если пытаться предсказать следующий день и для предсказания включить предыдущий, то система превращается в это
В очередной раз убеждаюсь, если на рынке пытаться делать так как все, то результат будет отрицательный, даже используя DeepLearning, вот мне бы в голову никогда не пришло пытаться предсказать не завтра, а послезавтра без учета вчерашнего дня )
Сохранил пост даже на флешку, явно грааль)
прогноз погоды на завтра вы узнаете послезавтра )
P.S. кстати, я серьезно, у вас там наверняка затесалось какое-то неявное подсматривание в будущее, потому что невозможно, чтобы прогнозная кривая настолько совпадала с реальной…
Иначе, через месяц-другой ждём обновления списка миллиардеров Forbes! Вы там, еси чо, смартлабику отдельный привет передавайте со страниц журнала )
Здесь весь секрет как раз и заключается в том, чтобы сделать псевдостационарный процесс из суммы рыночных инструментов (тот самый синтетик). А уж найти на нём оптимальный метод входов-выходов — фигня. Для этого не надо так мудрить со всякими диплёрнами.