Цепи маркова

 
Це́пь Ма́ркова — последовательность случайных событий с конечным или счётным бесконечным числом исходов, характеризующаяся тем свойством, что при фиксированном настоящем будущее независимо от прошлого

Попробуем применить это на практике. Предсказывать будем не саму цену, а относительные параметры бара (Open-Close(OC), High-Open(HO), Open-Low(OL), High-Low(HL), High-Close(HC) и Close-Low(CL) - этих параметров достаточно, чтобы полностью восстановить параметры бара и проконтролировать противоречия).

Для этого строим матрицу перехода (для каждого параметра - своя). На новом баре обновляем матрицы перехода, и получаем прогнозируемые параметры, а потом пытаемся поторговать, например так: два лимит ордера на прогнозируемом high и low c профитом на друг друге. Когда один ордер сработает, то профит второго изменяется на прогнозируемый уровень закрытия - т. о. пытаемся полностью использовать движение в баре. Ну это теоретически.

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

Короче, если есть интерес, давайте попробуем вместе поэкспериментировать.
Файлы:
markov.mq4  13 kb
 

Мне кажется, вам стоит сначала получить хорошие результаты при ручном анализе. А после уже привлекать к этому специалистов. Немного странный подход.

 
notused:
Це́пь Ма́ркова — последовательность случайных событий с конечным или счётным бесконечным числом исходов, характеризующаяся тем свойством, что при фиксированном настоящем будущее независимо от прошлого

Попробуем применить это на практике. Предсказывать будем не саму цену, а относительные параметры бара (Open-Close(OC), High-Open(HO), Open-Low(OL), High-Low(HL), High-Close(HC) и Close-Low(CL) - этих параметров достаточно, чтобы полностью восстановить параметры бара и проконтролировать противоречия).

Для этого строим матрицу перехода (для каждого параметра - своя). На новом баре обновляем матрицы перехода, и получаем прогнозируемые параметры, а потом пытаемся поторговать, например так: два лимит ордера на прогнозируемом high и low c профитом на друг друге. Когда один ордер сработает, то профит второго изменяется на прогнозируемый уровень закрытия - т. о. пытаемся полностью использовать движение в баре. Ну это теоретически.

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

Короче, если есть интерес, давайте попробуем вместе поэкспериментировать.


С удовольствие поэкспериментирую, если вы разбираетесь в Марковских процессах (я совершенно нет, но есть интерес). Вы раскладываете что и как, я пишу. Если такой подход устраивает пишите мне по e-mail.

 
Меня не правильно поняли - я и сам могу всё написать. К первому посту прикреплён мой советник. Блок торговли изменён от первоначального вида, поэтому его вообще можно закоментировать. Остальная ценность кода - построение матриц перехода (как известно, с динамическими двумерными массивами проблемы в mql). Эксперта выложил как макет.

Поясню немного, для тех, кто не знает или забыл что значит матрица перехода. Элемент матрицы p(i,j) - вероятность того, что из состояния i перейдём в состояние j. Очевидно, что сумма эл-ов строки матрицы равна 1 (у нас это не всегда, - есть строки со всеми нулями, но это из-за особенностей реализации).

Т. е., для HC p(20, 10) читается как - вероятность того, что High-Close будет 10 п., если  текущий High-Close равен 10.

Ещё поясню идею. Прогнозируем не абсолютные значения, а относительные.

Так, если мы знаем OC, HO, OL, то задав цену открытия Open, мгновенно определяем весь бар: Close = Open + CO, High = Open + HO, Low = Open - OL (ну, тут как выбрать, можно и плюс, но из-за задания OL = Open - Low, получаем, что он всегда неотрицателен).

Предлагается прогнозировать эти параметры с помощью цепей маркова. Процедура для всех одинакова. Поэтому точно также ещё можно прогнозировать
HL, HC, CL - дополнительные параметры для верификации. Например, не может в реальном баре быть HL меньше любого другого относительного параметра.

Восстановив на открытии бара, его структуру (по прогнозным значениям), можно уже и решить, как торговать.

Естественно, что нужно всё проверять на таймфрейме не ниже 4H.

Первое, что нужно сделать - ввести диапазон (например, 5 пунктов) для состояния, т. к. сейчас на одно состояние отводится один пункт.  Второе - нужно придумать, как найти наиболее вероятный переход - сейчас это просто 
максимум вероятности, что не совсем верно. Например, для OC,  p(30, 40) = 0.03 - максимальная вероятность. Но может это просто пик, а сумма вероятностей
того, что перейдём из 30 в отрицательное состояние больше 0,5 (например). Поэтому нужно придумать, какой переход выбрать.
 
Меня интересует теоретический вопрос - как выбрать вероятность перехода. Буду благодарен за любые мысли. А советник выложил, т. к. может кто-то ещё захочет поэксперементировать, к тому же - идея полностью озвучена - чего ещё скрывать
 

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

Какой переход выбрать - наиоблее соответсвующий по параметрам последнему бару, а по вероятности смотреть стоит входить или нет. Это я чисто дедуктивным методом рассуждаю.

Более интересный вопрос, сделать чтобы переход был не из двух баров (или одного, не смотрел еще как), а возможность задавать длину перехода произвольно, но вроде как многоэтажность уравнений возрастает. Как то обращались ко мне с такой задачей, но я оказался не силен, решили математика нанять, но он стока запросил - видать слишком сложные расчеты.

 
Я его тестил на евро с 1999 года, там матрицы имели размерность больше чем 200х200, поэтому вероятности выражаются очень маленькими числами - в том то и беда. Если бы придумать процедуру, которая, например, проанализировав текущую строку, нашла вероятность, что параметр изменится минимум на Х пунктов с вероятностью не менее, скажем 60%. Но и то, - у нас 6 параметров - тогда вероятность прогноза (0,6)^6 = 0,046656 или около 5%. Хотя валидирующие параметры можно отбросить и тогда получим (0, 6) 21%. Если же вероятность - 80%, то тогда общий успех - 51%.

А длина перехода - проблема только в ограниченности памяти. Но, как по мне, достаточно и этого простого случая - итак вероятности маленькие, а если ещё и увеличивать длину перехода...

С другой стороны - матрица переходов итак позволяет спрогнозировать на несколько шагов вперёд, но опять таки - вероятности перемножаются и это будет наиболее вероятный из всех переход, но с очень маленькой вероятностью - просто у других переходов она будет ещё меньше
 
notused:
Це́пь Ма́ркова — последовательность случайных событий с конечным или счётным бесконечным числом исходов, характеризующаяся тем свойством, что при фиксированном настоящем будущее независимо от прошлого

Сам по себе подход очень интересен. Давно пора применять современные разделы математики исследования и предсказания случайных (псевдо, квази) -процессов, коим и является график цен. К сожалению, нет здесь (на форуме) проффи в данной области. Мне кажется, сначала надо определиться, насколько они соответствуют начальным условиям, при которых данные методы справедливы. Суть тут не в положительных результатах работы конкретного советника, это , как раз, вопрос второстепенный, а в применимости данных методов к вопросам ценообразования на форексе, и вот тут нужны специалисты в данной области. Если Вы в этом понимаете, то, может, посоветуете источники, может и мы полистаем учебники, вспомним, что учили, хотя, интуитивно, чувствую, что, если и удастся что-либо доказать, так это то, что Форекс предсказать - невозможно, но и это будет достаточно важный результат, особенно при математической достоверности результатов.
 
Можно почитать Романовский В. И. Дискретные цепи Маркова (1949). Есть в djvu - 4,17М. Если кто-то хочет почитать (книга вроде не плохо написана), оставляйте мыло, - пришлю
 
notused:
Можно почитать Романовский В. И. Дискретные цепи Маркова (1949). Есть в djvu - 4,17М. Если кто-то хочет почитать (книга вроде не плохо написана), оставляйте мыло, - пришлю
Если Вас не затруднит, скинте мне на мыло: mars@lanitdv.ru
 
Выслал
Причина обращения: