![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
to Neutron
Серега, я немного не понял (не обращай внимание. Это остаточное от пива :) Уточни, как ты считал взаимную корреляцию между MA? [MA(n) и MA(n+1)] далее [MA(n+1) и MA(n+2)] или как то иначе?
Не очень понятно, откуда такие значения. Ведь начиная с окна длиной 20 и выше корреляция между MA очень сильная и откуда у них отличия на 20% и тогда как ты получил окна 6, 80 и 300. Это вряд ли возможно! Но если ты рассчитывал например [MA(n) и MA(n+k)], то тогда, на каком основании выбирал это k (условия прореживания)?
Коэффициент корреляции между производными машек я считал по формуле:
Где X и Y это два одномерных вектора одинаковой длины. Ну, а дальше в цикле я перебирал все машки и построил кривую взаимной корреляции. Затем, ручками забивал различные прериоды, глядя на коэффициенты и выбрал те, которые удовлетворяли меня. Цифры 10, 100 и 300 я по-памяти привёл, если нужно точнее - придётся подождать.
Если быть до конца точным, то условие прореживания я брал исходя из требовавния fak<30%. Это выполняется, если периоды соседних машек соотносятся как степени 5 или даже 6.
...
Коэффициент автокорреляции между производными машек я считал по формуле:
...
Где X и Y это два одномерных вектора одинаковой длины. Ну, а дальше в цикле я перебирал все машки и построил кривую взаимной корреляции. Затем, ручками забивал различные прериоды, глядя на коэффициенты и выбрал те, которые удовлетворяли меня. Цифры 10, 100 и 300 я по-памяти привёл, если нужно точнее - придётся подождать.
понятно. сенькс.
Вот и жаренные результаты по итогам тестирования этой системы.
Этот попытка прогноза первой производной от идеальной МА (той у которой нет запаздывания, и первая производная от которой даёт абсолютно точные сигналы входа-выхода, показана на рис. сплошной красной линеей). Делалось это так: я отступал назад по временной шкале от текущего значения производной на N баров и находил взвешанную сумму n штук производных обычных МА (те которые запаздывают), приравнивал её к значению красной линии и решал систему линейных ур-ий для весов. Далее я зная эти веса, умножаю на них текущие значения запаздывающих МА и получаю прогнозное значение идеальной МА "насейчас".
На рис. строился прогноз на шесть баров вперёд. Видно что прогноз не запаздывает по времени от идеальной МА, хотя кое где заметно оличается от последней по амплитуде, т.е. идея оказалась не бредовой, хотя попытка увеличить горизонт прогноза, приводит к "рассыпанию" прогнозного ряда. Я ниже прикрепил авишку в которой показана динамика стабильности пргноза при попытке увеличения горизонта от 0 баров до 10 (один кадр - один бар+).
Прогноз на 10 это слишком хорошо.
Не губите результат, удовлетворитесь прогнозом на 5 баров)))
to Neutron
Отличные результаты (на глаз :о)). Выбросы, я думаю, легко можно отсечь. Теперь, зная прогноз MA на какое-то количество баров вперед можно восстановить временной ряд на прогнозном участке.
PS: Выковырял из архива свои наработки в прогнозировании на основе MA. На картинке прогноз как раз на пять баров вперед (максимум для моего метода 10-12, но врет очень сильно):
EURUSD, часы
- черные крестики символизируют (Н+L)/2
- черная линия – это MA с окном 5
- серая – это восстановленный будущий ряд
Восстановление велось для 5 отсчетов, далее, «текущий отсчет» перемещался на 5 отсчетов вперед и прогноз повторялся, и так до конца исследуемого диапазона. Привел кусочек для лучшей видимости :о)Серёга, блин!
Конструкция вида (Н+L)/2 это скрытое интегрирование и испоьзовать её в задачах прогноза нельзя ни вкоем случае. Фишка вот в чём, если взять случайный ВР, то первые разности в нём не коррелированы, одноко если построить на этих данных ряд (Н+L)/2 сразу получим положительную автокорреляцию на уровне десятка процентов! На это никто не обращает внимания, но преберая всевожможные комбинации ценового ряда для построения индикатора, адиабатически останавливаются на последней т.к. возникает иллюзия предсказуемости.
Ещё раз, ты строишь прогноз положительно автокоррелированного ВР (Н+L)/2 в чём нет большой сложности, для этого покатит любая машка, но это ни на сколько не приблизит тебя к решению проблемы предсказания исходного ВР! Подумай над этим.
P.S. Для проверки своего кода, напусти его не на ряд (Н+L)/2, а на ряд цен открытия. Почувствуй разницу.
Что-то мне не очень верится, что все так просто. Машку (простую) можно прогнозировать с точностью до 0.5 пункта (правда, на бар вперед). Но если это машка с окном 100, то при восстановлении цены ошибочка будет в 100 раз выше.
Дык ни кто и не рвёт на груди рубаху. Так, балуемся :-)
Кстати, если не ограничивать себя в числе решаемых ур-ий (этак зарядив системку из 30-80 штук) и наплодив столько-же уже изрядно скоррелированных машек (r>0.9) получается несколько глубже продвинуться в горизонте прогнозирования. Хотя это уже и не принципиально.
to Neutron
Все действительно не так просто, на картинке один из лучших участков, статистически все не так хорошо, а по сему, использовать такой подход крайне рискованно. Получить каким то методом прогнозную MA (не важно каким) мало для торговли, нужно оценить как поведет себя цена вокруг этого MA. Если восстанавливать значения цены в лоб, будут существенные ошибки. Я пытался рассчитывать некие устойчивые уровни «восстановленной цены», но так же не очень был удовлетворен результатом, хотя какая то прибыль была но делать какие то однозначные утверждения о ее стабильности не стану.
Конструкция вида (Н+L)/2 это скрытое интегрирование и испоьзовать её в задачах прогноза нельзя ни вкоем случае. Фишка вот в чём, если взять случайный ВР, то первые разности в нём не коррелированы, одноко если построить на этих данных ряд (Н+L)/2 сразу получим положительную автокорреляцию на уровне десятка процентов! На это никто не обращает внимания, но преберая всевожможные комбинации ценового ряда для построения индикатора, адиабатически останавливаются на последней т.к. возникает иллюзия предсказуемости.
Над этим я много думал и пришел к следующему - это ошибочное заблуждение (разумеется, это только мое мнение).
Ещё раз, ты строишь прогноз положительно автокоррелированного ВР (Н+L)/2 в чём нет большой сложности, для этого покатит любая машка, но это ни на сколько не приблизит тебя к решению проблемы предсказания исходного ВР! Подумай над этим.
Но я то его предсказываю … конечно, не всегда получается. Посмотри внимательно на картинку – это прогноз ВР на 5 баров вперед. А тебе еще нужно перейти к прогнозу ВР.
P.S. Для проверки своего кода, напусти его не на ряд (Н+L)/2, а на ряд цен открытия. Почувствуй разницу.
Конструкция вида (Н+L)/2 это скрытое интегрирование и испоьзовать её в задачах прогноза нельзя ни вкоем случае. Фишка вот в чём, если взять случайный ВР, то первые разности в нём не коррелированы, одноко если построить на этих данных ряд (Н+L)/2 сразу получим положительную автокорреляцию на уровне десятка процентов!
Вот это мне не совсем понятно. Понятно если участки интегрирования пересекались бы, но этого нет. Может брался не случайный, а псевдослучайный ВР? Он-то как раз по идее построен по определённому закону и вполне прогнозируем (если этот закон знать или восстановить). Впрочем, на эту тему совсем недавно говорили https://forum.mql4.com/ru/11556