Начать эту часть я бы хотел с крылатой фразы Брюса Бэббока: «Прогнозировать цены невозможно, но чтобы зарабатывать, это и не нужно». Как человек, еще со времен обучения хорошо знакомый с понятием «статистического прогноза», я с этим выражением был не согласен. Почему? Потому что любая позиция на рынке является осознанным или неосознанным прогнозом знака будущего приращения цены и частично размера, так как комиссии и проскальзывание никто не отменял. Поэтому более корректным является выражение: «Точно прогнозировать цены невозможно, но для того, чтобы зарабатывать, это и не нужно».
Действительно, для заработка достаточно иметь эффективный статистический прогноз знака будущего приращения цены, т. е. такой, что при удачных прогнозах этого знака мы бы зарабатывали больше, чем теряли при ошибочных.
С точки зрения упомянутой в первой части кусочно-постоянной модели верен и частный случай утверждения Бэббока: «Прогнозировать точки смены знака среднего невозможно, но для того, чтобы зарабатывать, это и не нужно». Действительно, если отрезки постоянства среднего больше, либо равны 3-м, то прекрасно зарабатывается на прогнозе: «начавшаяся ранее тенденция в ценах – продолжится». А этот прогноз почти всегда ошибается в точках перелома ломанной, зато относительно точен во всех остальных точках.
Но торговля по такому прогнозу зачастую вызывает отторжение, особенно у новичков. Ведь при таком прогнозе мы никогда не продаем по максимуму цен и не покупаем по минимуму, т. е. «упускаем кучу возможностей заработать».
А все мы когда-то были новичками, в том числе и я. А как не упускать эти возможности? Только построив прогноз знака будущего приращения лучше, чем упоминавшийся о продолжении тенденции. Т. е. добавив к нему прогноз: « «завтра» будет движение противоположное начавшейся тенденции». «Завтра» взято в кавычки, потому что это не обязательно день.
Вот о моих неудачных поисках такого прогноза для дневных данных SPY 1993-1997 (эти данные можно бесплатно скачать на яхефинанс) и пойдет речь. Почему SPY, а не S&P500? Ну об этом я писал много раз: в данных последнего нет реальных гэпов.
Начал я с простого: с прогноза знака будущего приращения логарифма цены закрытия дня по прошлым приращениям логарифма объемов методами кросс-корреляционного анализа. Как я уже писал в первой части, переход к логарифмам ничего не меняет в части кросс-корреляционного анализа.
Для всех значений рядов не получилось вообще ничего. Но я не сдался и убрал из рядов данные отрезков, на которых приращения цен меняли знак на каждом такте. А также разбил новые данные на два ряда: ряд с положительными m-граммами в приращениях логарифмов цен (m больше, либо равно двум) и отрицательными. На этом пути меня ждал неожиданный результат: по ценовыи данным можно попытаться построить линейный (кросс-корреляционный анализ ограничен классом линейных прогнозов) прогноз будущего приращения объемов, а обратный прогноз невозможен. Так как получилось не то, что мне нужно, я работу в этом направлении забросил.
Перед следующим этапом у меня встала задача построения ломанной, точки перелома которой я бы хотел прогнозировать. Я взял для этого модифицированный Zigzag для логарифмов цен. На первом шаге он строился, как стандартный Zigzag с Depth=2, Backstep=1, но с переменным на каждом шаге Deviation, равным СКО приращений логарифмов цен закрытия 10-ти предыдущих приращений. На втором шаге он «спрямлялся» по индуктивному алгоритму. Считалась СКО всего ряда приращений логарифма цен закрытия, если до i-й точки мы все «спрямили», то от этой точки строился коридор от -1,522*СКО до +1,525*СКО (ну люблю я вероятность 0,75, которая получается для такого коридора при нормальном распределении со средним нуль и таким СКО) и весь следующий отрезок Zigzaga, максимумы и минимумы которого лежали в этом коридоре заменялся на прямую линию. А конечная точка следующего за этой прямой отрезка ломанной становилась новой точкой для расчета «спрямления».
Собственно задачу прогноза точек перелома такого спрямленного Zigzagа я и решал в дальнейшем.
Начал опять с простого, с классических зон перекупленности-перепроданности Стохастика и RSI с разными наборами параметров (по 20 для каждого индикатора). И стал считать доли:
при нахождении индикатора в зоне перекупленности долю тех точек, где растущую ломанную сменяла падающая;
при нахождении индикатора в зоне перепроданности долю тех точек, где падающую ломанную сменяла растущая.
Увы, для всех 20 параметров и обоих индикаторов больше 60% указанных точек находилось там, где индикатор не находился в соответствующей зоне. От дальнейшей идеи пооптимизировать границы зон по сравнению с классическими я отказался по причине высокой вероятности подгонки.
Следующим моим шагом стало использование нейросетей, точнее персептронов. На вход персептрона я подал OHLCV за предыдущие 20 дней и 400 значений Стохастика и RSI за те же 20 дней (400=20*20 параметров). Отбирались только те персептроны, для которых доли правильно предсказанных точек перелома Zigzaga на обучающей и тестирующей выборках статистически не отличались. Увы, для таких «устойчивых» персептронов доля правильно угаданных точек оказалась статистически неотличима от ½. А СКО ошибки прогноза приращения логарифма цены закрытия, следующего за переломом, ничем не отличалось от СКО этих приращений
Ну и последнее, что я попробовал – это построить персептрон для спрямленного Zigzaga дневок РАО ЕЭС, подав на вход не только ее цены со стохастиком и RSI, но и цены дневок Лукойла, Газпрома, Сургунефтегаза и SPY. Результат получился тот же, что и для SPY.
А что собственно я доказал? А только то, что статистический прогноз точек перелома невозможен рассмотренными методами. При этом надо отметить, что класс функций (а по теории лучший статистический прогноз – это всегда некоторая функция от известной прошлой(!) информации) от рассмотренной(!, т. е. не всей известной — прим. мое) прошлой информации, генерируемых персептроном достаточно широк и, в-частности, включает в себя все линейные.
Что дальше? Могу сказать точно, что с точки зрения прогнозируемой величины для меня ничего не изменилось: меня по прежнему интересует только прогноз точек перелома спрямленного Zigzaga для дневок, а не для более мелких таймфреймов. Можно «поиграть» с входной информацией, но до определенных пределов. Потому что ее объем, например, для OHLCV минуток за предыдущие 20 дней огромен и чреват переподгонкой.
Поэтому на этом я попытки прогноза точек перелома прекратил и сосредоточился на улучшении торговли в рамках прогноза «начавшаяся ранее тенденция в ценах – продолжится». Но это уже другая история.
И как после этого говорить, что прогнозировать развороты невозможно, если все сделки в плюс?!
www.youtube.com/watch?v=0XPkoy4lF3M
Да и описаны отрицательные результаты при попытке «уйти в сторону» от вышеуказанного прогноза. И новых нет.
1. Если приращение эквити на баре равно
(приращение цены) * (знак индикатора)
то хорошая ТС должна хорошо предсказывать знак будущего приращения цены, если это приращение велико, и вести себя как угодно, если это приращение мало. Это совсем другая задача, нежели та, которую Вы решаете (правда, и гораздо более сложная).
2. Не понимаю, почему нельзя взять за базу исследования наилучший в смысле МНК (можно и минимакса, но это сложнее) прогноз будущего приращения цены (по предыдущим приращениям цен)?
Это не Грааль, но результаты многое проясняют и дают благодатную пищу для исследований.
С уважением