Использование математических методов для прогнозирования в трейдинге
Этой статьей я хочу дать пищу для размышлений тем трейдерам, которые ищут свой подход к торговле и не пугаются, когда видят формулу и пытаются с помощью нее что то просчитать. Не собираюсь писать нравоучения, устраивать жаркие споры и дискуссии о ТА. Имейте уважение к точке зрения других. В то же время, если будут конструктивные вопросы или дискуссия по теме, которую я здесь затронул, буду рад обсудить по существу.
Много раз видел в сообщениях на смарт-лабе язвительные мнения о прогнозировании с использованием математических методов и вообще отрицание математики в трейдинге. Самое удивительное для меня в таком отношении, это то, что все противники математической формализации, на самом деле, сами занимаются прогнозированием – как направления движения цены (выбор между лонгом и шортом), так и интервалов торговли (цены входа и выхода из позиции). Кто-то делает это интуитивно ( не задумываясь о мыслительных процессах, которые совершает ваш мозг при этом), кто-то смотрит свечки (волны, Фибо и проч.). Сомневаюсь, что трейдер для определения лонг или шорт тупо бросает монетку – типа орел, лонг, решка – шорт (тем, кто так и поступает – просьба дальше не читать ))..). Но ведь графики, свечи, волны – все это способы графического анализа известных параметров торговли, таких как цены открытия, максимум, минимум и закрытия на интервале, объем (есть еще число открытых позиций, суммарный спрос и предложение – о них я говорить здесь не буду). Так уж исторически сложилось, что анализ цен проводился графически. И во времена, когда компьютеров еще не было, графики чертили на кальке, а интерполировали и экстраполировали линейками (были такие специально изогнутые линейки). Просто тогда не было другого способа. А когда компьютеры появились, мнение о том, как надо анализировать уже было основательно сложившимся. И в принципе работало. Добавились различные индикаторы. Короче говоря, сформировался сложившийся ранее подход о том, как надо и каким образом анализировать ситуацию на рынке. Кроме того, традиционный свечной анализ – это же ведь анализ поведения цены на интервале, просто результат выражен графически через свечи, показывающие соотношение цен открытия, максимума, минимума и закрытия (OHLC). Это не какая то абсолютная и независимая догма, а скорее — результат обобщения исторического опыта.
Я и не собираюсь все эти сложившиеся подходы опровергать. Просто хочу подчеркнуть, что мы живем в 21 веке и возможности техники позволяют встать на иной уровень анализа. И это отнюдь не означает отрицания вероятностного характера торговли. И прогнозирование не надо воспринимать как нечто абсолютное, дающее совершенно точный результат с точностью до копейки в цене. Конечно же нет. Оно позволяет выбрать наиболее вероятный вариант движения и уровня цен и дать приблизительный интервал торговли (максимальную и минимальную цены). Знание этого облегчает выбор направления торговли и входа в позицию, планирование выхода из позиции.
Сначала небольшое лирическое отступление. Про цены, чтобы мы понимали друг друга. В первую очередь, это относится к тем, кто торгует внутри дня. Здесь, на мой взгляд, не надо преувеличивать значение цены закрытия. Во первых, внутри дня есть возможность взять прибыль не дожидаясь закрытия торгов, поскольку многие инструменты, например, Сбер, НорНикель, РТС, доллар, ходят вверх-вниз достаточно регулярно и внутри дня. Во вторых, одна цена закрытия не отражает сути (диапазона) торговли на интервале. Приведу простой пример: пусть цены в течение интервала изменялись следующим образом: 100, 105, 103, 113, 109, 101, 97. Беря в расчет только цену закрытия, можно утверждать, что цена пошла вниз. Но правильно ли это в данном случае? На мой взгляд – нет. Кроме того, сравнение выше/ниже требует еще один показатель, с которым сравнивается текущая цена. И эти цены должны быть сопоставимы.
Можно «тащить» для анализа весь набор цен OHLC, но в плане логики обработки ситуации это потребует очень сложной логики, думаю, что это практически не формализуемо. Я объединил эти цены на каждом интервале в один показатель, получаемый из данного набора цен, который условно назвал средней ценой на интервале (далее под «средней ценой» я буду подразумевать этот показатель). Несомненно, это некоторое упрощение, но оно работает.
Для средней цены я сделал прогноз направления движения цены на следующем интервале. За основу метода взяты давно всем известные формулы для нормального распределения вероятности. Через отклонение от него фактических цен на предыдущих интервалах, делается вывод о направлении движения цены на следующем интервале времени. Суть результатов данного прогноза достаточно проста: если прогноз для следующего интервала — в лонг (я обозначаю его цифрой 1), то взяв на следующем интервале лонг по цене ниже средней предыдущего интервала, вы с высокой вероятностью дождетесь цены выше свой позиции и сможете зафиксировать прибыль. И наоборот: если прогноз в шорт (цифра -1), то взяв шорт по цене выше средней вы сможете закрыть его ниже средней цены и зафиксировать прибыль. (Цифры «+1» и «-1» я привел для того, чтобы была понятна таблица с прогнозами, которую я приведу ниже).
В среднем, точность такого прогноза 70% (т.е. в 7 случаях из 10 фактическое движение средней цены совпадает с прогнозом). Я просчитал этот подход как на акциях, так и на фьючерсах для интервала «день» по историческим данным за последние 3-4 года, а также на интервалах: «час» — за 2 года, на интервалах от 1 мин. до 30 мин. – за год. Слишком большие файлы получаются на коротких интервалах, на годовом отрезке эксел их «съедает» уже с трудом. Точность такого прогноза для интервала «день» приведена в таблице:
Фьючерсы (с 03.01.2019 г. по 18.11.2019 г.) |
Акции (с 03.01.2018 г. по 18.11.2019 г.) |
||
Наименование |
Точность движения цены |
Наименование |
Точность движения цены |
SBRF |
72,97 |
Сбербанк |
74,79 |
GAZP |
76,58 |
Газпром |
75,42 |
LKOH |
74,32 |
Лукойл |
72,90 |
ROSN |
75,23 |
Роснефть |
71,22 |
MGNT |
76,58 |
Магнит |
75,63 |
GMKR |
80,18 |
НорНикель |
71,01 |
Si |
69,82 |
Яндекс |
71,43 |
RTS |
68,47 |
|
|
Gold |
72,36 |
|
|
Brent |
72,99 |
|
|
Eu |
65,14 |
|
|
U500 |
73,87 |
|
|
Проблемы в постоянном получении прибыли по такому методу достаточно просты: во-первых, такой подход не учитывает новостной фон (дивиденды, бэй-бэки и проч.), а во-вторых, он иногда банально неточен. Кроме того, в хорошем тренде искомая «безопасная» цена входа в позицию бывает просто недоступной. И наконец, этот прогноз носит, в первую очередь, качественный, а не количественный характер.
Какое то время меня устраивал в торговле такой подход. Но позже я пришел к пониманию, что кроме качественной оценки (направление цены) однозначно нужна и количественная оценка торгуемого диапазона цен. После ряда попыток количественно формализовать движение цены я напрочь отбросил эту идею и ограничился количественной оценкой максимальной и минимальной цен на интервале. В результате у меня получился прогноз максимальной и минимальной цены. За математическую основу этого метода взяты формулы для нормального распределения вероятности и формула для колебаний маятника, на который действует внешняя сила.
Просчитав этот прогноз на исторических данных за последние 2-3 года, я получил точность расчета максимальной и минимальной цены (через среднеквадратичное отклонение от факта) на разных интервалах – неделя, день, час, 30, 20, 10, 5 и 1 минута — она не более 0,8 % от номинальной величины цены или примерно не более 10-15% от диапазона хода цены на интервале.
В объединенном варианте результаты обоих прогнозов выглядят примерно так (данные прошедшей недели:
Следующий день (22.11.19) |
Текущая неделя (18.11 – 22.11 2019) |
||||||||
Фьючерсы |
Max |
Min |
Прогноз |
Max |
Min |
Прогноз |
Факт |
MaxФакт |
MinФакт |
ГазПром |
25 984 |
25 849 |
-1 |
26 357 |
24 177 |
-1 |
-1 |
26 118 |
24 572 |
СберБанк |
23 954 |
23 726 |
1 |
24 617 |
23 799 |
1 |
-1 |
24 275 |
23 702 |
Brent |
64.53 |
62.42 |
1 |
64.24 |
61.81 |
1 |
-1 |
64.27 |
60.30 |
ГМКНорНик. |
178 277 |
175 864 |
-1 |
185 503 |
171 999 |
-1 |
-1 |
179 280 |
172 321 |
ЛукОйл |
59 911 |
59 173 |
1 |
61 594 |
59 071 |
1 |
1 |
60 700 |
58 926 |
РосНефть |
45 803 |
44 991 |
1 |
47 262 |
45 013 |
1 |
-1 |
46 361 |
44 403 |
Магнит |
3 336 |
3 274 |
1 |
3 382 |
3 278 |
-1 |
-1 |
3 365 |
3 257 |
РТС |
145 880 |
144 080 |
1 |
147 260 |
142 600 |
1 |
1 |
146 490 |
142 710 |
U500 |
2 393.67 |
2 377.67 |
-1 |
2 404.92 |
2 373.42 |
1 |
1 |
2 406.75 |
2 376.00 |
Gold |
1 478.3 |
1 464.8 |
-1 |
1 486.1 |
1 457.2 |
1 |
1 |
1 484.2 |
1 461.6 |
Доллар |
64 102 |
63 826 |
-1 |
64 555 |
63 741 |
-1 |
-1 |
64 367 |
63 822 |
Евро |
71 059 |
70 684 |
-1 |
71 356 |
70 584 |
-1 |
-1 |
71 183 |
70 861 |
И по акциям:
Следующий день (22.11.19) |
Текущая неделя (18.11 – 22.11 2019) |
||||||||
Акции |
Max |
Min |
Прогноз |
Max |
Min |
Прогноз |
Факт |
MaxФакт |
MinФакт |
ГазПром |
259.43 |
249.64 |
-1 |
260.71 |
240.06 |
-1 |
-1 |
259.80 |
244.32 |
СберБанк |
238.17 |
235.97 |
1 |
243.89 |
235.96 |
1 |
-1 |
241.23 |
235.80 |
ГМКНорНикель |
17 766 |
17 524 |
1 |
18 468 |
17 060 |
-1 |
-1 |
17 838 |
17 212 |
ЛукОйл |
6 105 |
6 052 |
1 |
6 235 |
6 023 |
1 |
1 |
6 194 |
6 026 |
РосНефть |
456.0 |
447.7 |
1 |
468.7 |
446.8 |
1 |
-1 |
461.5 |
441.7 |
Магнит |
3 306 |
3 246 |
-1 |
3 360 |
3 266 |
-1 |
-1 |
3 348 |
3 255 |
Яндекс |
2 570.4 |
2 521.4 |
1 |
2 304.1 |
2 195.5 |
1 |
1 |
2 569.8 |
2 350.0 |
С достоверностью данного прогноза тоже есть свои проблемы. При четком тренде фактические цены смещаются в сторону тренда относительно прогноза. Кроме того, здесь также трудно формализовать учет новостного фона и прочих не формализуемых факторов.
В графическом виде резудьтаты прогнозирования выглядят следдующим образом:
High и Low — фактические максимум и минимум на интервале «день»; МахПр и МинПр — прогнозные максимум и минимум для интервала «день»;
High_Нед и Low_Нед - прогнозные максимум и минимум для интервала «неделя».
Думаю, здесь нужно сделать паузу. Уже много текста получилось. Если статья будет вам интересной (наберет плюсы), я продолжу эту тему.
Готов обсудить какие то ваши вопросы – но по существу темы (трейдинга). Свои негативные эмоции и сложившиеся стереотипы (из серии: все прогнозы – ложь, формулы – вред и проч.), пожалуйста, оставьте при себе. Мне они не интересны и переубеждать вас, или доказывать свою правоту - я не собираюсь.
Сразу отвечу на возможные замечания:
— о том, что «советы давать – не торговать» — публичный результат моей торговли можете посмотреть на сайте ЛЧИ-2019 в разделе «капиталистов» под ником Vlad21KRK;
— о том, что «в пост факте каждый может нарисовать такую таблицу», — приведу данные на текущую неделю и сегодняшний день:
Следующий день (25.11.19) |
Текущая неделя (25.11 – 29.11 2019) |
||||||||
Фьючерсы |
Max |
Min |
Прогноз |
Max |
Min |
Прогноз |
Факт |
MaxФакт |
MinФакт |
ГазПром |
25 756 |
24 987 |
-1 |
25 705 |
24 159 |
-1 |
|||
СберБанк |
24 078 |
23 731 |
-1 |
24 217 |
23 644 |
-1 |
|||
Brent |
63.66 |
63.46 |
1 |
65.13 |
61.16 |
1 |
|||
ГМКНорНик. |
177 373 |
173 520 |
-1 |
178 251 |
171 292 |
-1 |
|||
ЛукОйл |
60 167 |
59 407 |
-1 |
60 552 |
58 778 |
-1 |
|||
РосНефть |
45 803 |
45 095 |
-1 |
46 394 |
44 436 |
1 |
|||
Магнит |
3 297 |
3 247 |
-1 |
3 365 |
3 257 |
-1 |
|||
РТС |
146 020 |
143 670 |
-1 |
146 250 |
142 470 |
-1 |
|||
U500 |
2 395.67 |
2 379.67 |
1 |
2 404.83 |
2 374.08 |
-1 |
|||
Gold |
1 466.2 |
1 464.4 |
-1 |
1 479.1 |
1 456.5 |
-1 |
|||
Доллар |
64 190 |
63 892 |
1 |
64 359 |
63 814 |
-1 |
|||
Евро |
70 906 |
70 617 |
-1 |
71 168 |
70 485 |
-1 |
И для акций:
Следующий день (22.11.19) |
Текущая неделя (18.11 – 22.11 2019) |
||||||||
Акции |
Max |
Min |
Прогноз |
Max |
Min |
Прогноз |
Факт |
MaxФакт |
MinФакт |
ГазПром |
256.43 |
248.84 |
-1 |
259.75 |
244.27 |
-1 |
|||
СберБанк |
240.04 |
236.38 |
-1 |
240.97 |
235.54 |
-1 |
|||
ГМКНорНикель |
17 684 |
17 340 |
-1 |
17 804 |
17 178 |
-1 |
|||
ЛукОйл |
6 162 |
6 071 |
1 |
6 201 |
6 032 |
1 |
|||
РосНефть |
456.7 |
450.1 |
-1 |
462.5 |
442.6 |
1 |
|||
Магнит |
3 284 |
3 247 |
-1 |
3 321 |
3 228 |
-1 |
|||
Яндекс |
2 579.0 |
2 544.2 |
1 |
2 640.7 |
2 420.9 |
1 |
Всем удачи и профита!
Насчет «эффективной торговой системы» по этой системе уже реализован торговый робот. Пока он работает месяц на другом счете, рано еще говорить об его эквити, но пока он дает около 5 % «грязной» прибыли в день при работе 5 лотами на таких фьючерсах, как Si, SBER и GAZP. А точками входа-выхода являются прогнозные цены max и min. Для информации — при работе на 5 минутках, точность прогнозных цен 4 — 5 шагов цены.