Владимиров Владимир
Владимиров Владимир личный блог
25 ноября 2019, 10:28

Использование математических методов для прогнозирования в трейдинге

Использование математических методов для прогнозирования в трейдинге

Этой статьей я хочу дать пищу для размышлений тем трейдерам, которые ищут свой подход к торговле и не пугаются, когда видят формулу и пытаются с помощью нее что то просчитать. Не собираюсь писать нравоучения, устраивать жаркие споры и дискуссии о ТА. Имейте уважение к точке зрения других. В то же время, если будут конструктивные вопросы или дискуссия по теме, которую я здесь затронул, буду рад обсудить по существу.

Много раз видел в сообщениях на смарт-лабе язвительные мнения о прогнозировании с использованием математических методов и вообще отрицание математики в трейдинге. Самое удивительное для меня в таком отношении, это то, что все противники математической формализации, на самом деле, сами занимаются прогнозированием – как направления движения цены (выбор между лонгом и шортом), так и интервалов торговли (цены входа и выхода из позиции). Кто-то делает это интуитивно ( не задумываясь о мыслительных процессах, которые совершает ваш мозг при этом), кто-то смотрит свечки (волны, Фибо и проч.). Сомневаюсь, что трейдер для определения лонг или шорт тупо бросает монетку – типа орел, лонг, решка – шорт (тем, кто так и поступает – просьба дальше не читать ))..). Но ведь графики, свечи, волны – все это способы графического анализа известных параметров торговли, таких как цены открытия, максимум, минимум и закрытия на интервале, объем (есть еще число открытых позиций, суммарный спрос и предложение – о них я говорить здесь не буду). Так уж исторически сложилось, что анализ цен проводился графически. И во времена, когда компьютеров еще не было, графики чертили на кальке, а интерполировали и экстраполировали линейками (были такие специально изогнутые линейки). Просто тогда не было другого способа. А когда компьютеры появились, мнение о том, как надо анализировать уже было основательно сложившимся. И в принципе работало. Добавились различные индикаторы. Короче говоря, сформировался сложившийся ранее подход о том, как надо и каким образом анализировать ситуацию на рынке. Кроме того, традиционный свечной анализ – это же ведь анализ поведения цены на интервале, просто результат выражен графически через свечи, показывающие соотношение цен открытия, максимума, минимума и закрытия (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

     

Всем удачи и профита!

51 Комментарий
  • Дмитрий Новиков
    25 ноября 2019, 11:27
    Вас не цены должны волновать, а изменение цены.
      • Дмитрий Новиков
        25 ноября 2019, 11:53
        Владимиров Владимир, изменение цены от 10 до 11 и от 1001 до 1000 это разные изменения. И как вы хотите применить к ним распределение? Поэтому берут изменение ln(сегодня/вчера). Из этого вы можете получить среднее, первый момент распределения. Оно же математическое ожидание. 
        Ну а дальше вы можете сдвигать его на шаг. Предавать разный вес значениям, экспоненциальная средняя. И искать остальные моменты распределения.
          • Дмитрий Новиков
            25 ноября 2019, 12:25
            Владимиров Владимир, вы вправе делать как вам удобно. Но лучше делать это правильно с самого начала. В вашей системе направление это только половина. Надо понимать, как далеко пойдёт цена после вашего сигнала. 
    • А. Г.
      25 ноября 2019, 11:42
      Дмитрий Новиков, я бы уточнил, что будущее приращение цены. 
  • А. Г.
    25 ноября 2019, 11:49
    Любой прогноз лишь тогда чего-нибудь стоит, когда на его основе можно построить эффективную торговую систему. Я начинал с такого в 1997-1998, но быстро понял, что без чётких правил входа-выхода все характеристики прогноза — «ни о чем». Простой пример: после белой дневной свечи в 90%+ случаев максимум следующего дня выше цены закрытия предыдущего. Но если торговать систему:  входим на закрытие белой свечи, ставим тейк-профит цена закрытия +0,2% (меньше из-за комиссий не интересно), если тейк-профит не сработал, то закрываемся по закрытию дня. Так вот, при всей «точности» прогноза 90%+, эта система «в одну калитку» проигрывает b&h по соотношению «доходность-просадка».
    • SergeyJu
      25 ноября 2019, 12:18
      Владимиров Владимир, тот, у кого 5% прибыли в день, в плюсиках не нуждается. 
      Прочтите еще раз то, что Вам написал А.Г., дело не в таймфрейме, который явно не Ваш, а в существе. Точность прогноза направления вовсе не обеспечивает хороший финансовый результат. 
        • SergeyJu
          25 ноября 2019, 12:35
          Владимиров Владимир, 2,5% процента в день — это все равно чертовски много. Вы торгуете контртренд, там главная проблема — риск черного лебедя. 
    • Саша Пушкин
      25 ноября 2019, 16:24
      Владимиров Владимир, при 5% в день за месяц учетверились?
      Такими темпами скоро будете в рейтинге форбс.
        • Саша Пушкин
          25 ноября 2019, 16:49
          Владимиров Владимир, ладно, не скрлмничайте, при оставшихся 2,5% учетверитесь за полгода.
  • Люфт
    25 ноября 2019, 13:09
    деньги сначала покажите
      • Люфт
        25 ноября 2019, 17:36
        Владимиров Владимир, ну конкурс дело такое, там все гении.
  • Niktesla (бывш. Бабёр-Енот)
    25 ноября 2019, 16:35
    лчи это хорошо...
    … но а на более длительных интервалах какие результаты?
  • Мальчик buybuy
    25 ноября 2019, 17:58
    Согласен с SergeyJu, описательно система тяготеет к контртренду.

    Поэтому тест за последние месяцы ничего значимого не покажет.
    Можно прогнать ее (задним числом) на каком-нибудь мощном тренде?
    1999-2000 там, ну или 2009? (если мы ее юзаем в основном на акциях)

    И посмотреть на стандартную статистику сделок?

    С уважением
      • Мальчик buybuy
        25 ноября 2019, 18:21
        Владимиров Владимир, уважаемый

        Я все воспринимаю буквально, как в школе учили. Вы писали

        «Для средней цены я сделал прогноз направления движения цены на следующем интервале. За основу метода взяты давно всем известные формулы для нормального распределения вероятности. Через отклонение от него фактических цен на предыдущих интервалах, делается вывод о направлении движения цены на следующем интервале времени. Суть результатов данного прогноза достаточно проста: если прогноз для следующего интервала — в лонг...»

        На основании нормального распределения приращений цены (что в-общем и не факт на самом деле) по всем известным формулам вставать в лонг следует, если цена слишком просела (скажем, вышла за 3 сигмы). Таким образом, если описание работы системы хоть немного похоже на правду, система встает в лонг после существенной просадки, а в шорт встает после существенного роста.
        Это и есть типичный контртренд.

        Так что, уважаемый, либо Вы лукавите, либо компостируете мозги членам уважаемого Community.

        С уважением

        P.S. А все же — бэктест на указанных периодах слабо устроить?
          • Мальчик buybuy
            25 ноября 2019, 19:08
            Владимиров Владимир, уважаемый

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

            С уважением
              • Мальчик buybuy
                25 ноября 2019, 19:20
                Владимиров Владимир, ну Ок

                Если Вам удастся с высокой достоверностью отличать сильный тренд от относительного флета — можете забыть про свою систему — Вы уже без пары минут миллиардер.

                С уважением и пожеланием удачи
                  • Мальчик buybuy
                    25 ноября 2019, 19:30
                    Владимиров Владимир, уважаемый

                    Это не сарказм
                    Как такового тренда нет. Вернее, он существует только применительно к конкретному масштабу времени — таймфрейму. На большом может быть ап, на малом — даун.
                    За последние 50 лет сотни тысяч (м.б. даже миллионы) людей пытались решить задачу достоверного распознавания тренда на интервале (и вероятности его продолжения на следующем интервале). Я ничего не слышал про успех в этих исследованиях — возможно, это сакральное знание.

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

                    С уважением и ожиданием дальнейшего применения математики в трейдинге
                      • Мальчик buybuy
                        25 ноября 2019, 19:43
                        Владимиров Владимир, уважаемый

                        Переваривает или нет — покажет только бэктест.
                        Если проблемы с тиками на истории — могу организовать.

                        С уважением
                          • Мальчик buybuy
                            25 ноября 2019, 19:53
                            Владимиров Владимир, эхххххх

                            Чтобы без иллюзий да на одном активе — это лет 300 надо.
                            А так — если идея работает, она должна работать без существенной подгонки на ряде активов.
                            Мораль — берем 5-10 лет, пару десятков активов — и х"№рим.
                            Все остальное — из области аутотренинга. За нормальный трек не канает.

                            С уважением
  • Максим Барбашин
    25 ноября 2019, 20:18
     пусть цены в течение интервала изменялись следующим образом: 100, 105, 103, 113, 109, 101, 97. Беря в расчет только цену закрытия, можно утверждать, что цена пошла вниз. Но правильно ли это в данном случае? На мой взгляд – нет.
    Почему нет?
    Мишки выиграли, дейтрейдеры и фонды согласились с ценой закрытия
      • Мальчик buybuy
        25 ноября 2019, 20:34
        Владимиров Владимир, уважаемый

        Я попробую ответить (если еще не успел Вам надоесть).

        Если Ваша ТС и ее принципы масштабируемы, то Вам все равно, какие свечи рассматривать — дневные, часовые или минутные.
        Так вот, если мы спускаемся вниз от daily по шкале времени — цена close каждого бара начинает приобретать важное значение.
        А именно — по этой цене (в теории) можно открыться в начале следующего бара, т.к. внутри торгового дня гэпы — вещь редкая.
        Когда можно будет открыться по Вашей «средней» цене и можно ли будет открыться вообще — науке пока неизвестно...

        С уважением
      • Максим Барбашин
        25 ноября 2019, 22:56
        Владимиров Владимир, 
        Смотрите, агрегированные статистические показатели типа ВВП по ППС используются для общей оценки.
        В вашем случае — это сферический конь в вакууме. Та самая температура по больнице.
        Непонятно, к чему пристегивать.
        Тогда уже вам надо смотреть модальную цену и на соответствующем объеме.
        Цена закрытия — индикативная для расчета вариационки и ГО.
        Да и для расчета профита.
        Если трейдер весь год был в прибыли, а в последнюю минуту
        залосил на всю котлету,
        то сложно утверждать, что сначала был такой крутой рост

  • Cobal't
    26 ноября 2019, 14:35
    Я рассматривал статистику по недельным диапазонам движения акций на американских рынках и торговля опционными спредами при достижении min/max. Вобщем-то, довольно прибыльная тема, но, как тут уже замечали, есть риски нарваться на чёрного лебедя. Даже в декабре прошлого года расколбас рисовался довольно сильный, хоть по итогам месяца и вышел хороший плюс, но там тренд развернулся. А если будет повторение серьёзного кризиса, то риск остаться без депо весьма велик.
    • localcreator
      02 января 2023, 20:25
      Владимиров Владимир, не имея другой возможности связаться с вами (на форуме давно, но рейтинг 0), использую то что есть. Ваш вектор исследований мне показался чем-то похожим на тот, о котором писал FelixWhite в 2010г., а до него Атаман и Нео высказывали похожие мысли. Пишу на Python, много лет занимаюсь разгадкой послания Феликса, есть архив записей с иллюстрациями. Поэтому, если не поздно, был бы рад возможности присоединиться к вашему чату единомышленников

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

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