тел.: 8 800 200 86 47|+7 (812) 336 61 11Заказать звонок
Admiral Markets UK Admiral Markets UK Choose your country

MQLabs: Статистические методы прогнозирования. Полином Ньютона.

Индикатор NewtonInterpolationPolynomial

Индикатор NewtonInterpolationPolynomial_v2

Советник NewtonInterpolationPolynomial_Expert (распаковать в папку терминала experts)

Развернутые результаты тестирования

 

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

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

 

Отличие полинома Ньютона от полинома Лагранжа

Суть расчета полинома Ньютона полностью повторяет суть расчета полинома Лагранжа - это некий многочлен, степень которого в конечном итоге получается на единицу меньше, чем количество имеющихся узлов интерполяции (см. определение терминов в первой статье).

Основным отличием двух полиномов является подход к начальным требованиям: полином Лагранжа может быть вычислен для табличных функций, заданных данными с переменным шагом значений аргумента, а для вычисления полинома Ньютона существует жесткое требование - шаг изменения аргумента должен быть фиксированным. Для ценового графика, используемого в терминале МТ4, требование для вычисления полинома Ньютона не выглядит препятствием, т. к. шаг по оси абсцисс является одинаковым (один бар), несмотря на то, что время, соответствующее этим барам, может изменяться с различным шагом.

Исходя из вышесказанного, можно даже предположить, что полином Ньютона является частным случаем расчета полинома Лагранжа.

 

Общий вид полинома Ньютона

Существует два вида интерполяционного многочлена Ньютона: для интерполирования "вперед" (первый полином Ньютона) и для интерполирования "назад" (второй полином Ньютона). Первый многочлен используется в случаях, когда значение аргумента, для которого требуется рассчитать значение функции, находится ближе к началу интервала интерполирования. Соответственно, во втором случае (интерполирование "назад") искомое значение функции основывается на значении аргумента, расположенном ближе к концу интервала интерполирования.

В общем случае выбор направления интерполирования не играет особой роли, т. к. приводит к одинаковым результатам. Речь идет только об удобстве вычислений, которая присуща каждому из значений аргумента.

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

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

где X0, Y0 - координаты начальной точки интервала (X - индекс бара, Y - цена на этом баре),

      X - индекс бара, для которого рассчитывается значение полинома (цены),

      ΔY0,  Δ2Y0, ΔnY0 - конечные разности первого, второго и n-го порядков, способ расчета которых будет описан ниже,

      h - расстояние между узлами интерполяции. В нашем случае это расстояние равно одному бару, что приводит формулу (1) к виду (2):

 

 

Понятие о конечных разностях и пример расчета значения полинома

Конечные разности - это разности между соседними значениями функции. Они могут быть разностями различного порядка. Так, конечные разности первого порядка рассчитываются следующим образом:

ΔY0 = Y1 - Y0,

ΔY1 = Y2 - Y1,

...

ΔYn-1 = Yn - Yn-1.

Конечные разности второго порядка рассчитываются на основании конечных разностей первого порядка:

Δ2Y0 = ΔY1 - ΔY0,

Δ2Y1 = ΔY2 - ΔY1,

...

Δ2Yn-2 = ΔYn-1 - ΔYn-2.

Таким образом, для количества узлов интерполяции, равного n, конечную разность порядка n можно рассчитать лишь для первого узла, т. е. Y0. Для второго узла максимальный порядок конечной разности будет n-1, Для третьего - n-2 и т. д.

Для внесения ясности рассмотрим пример расчета конечных разностей различного порядка на основании следующих табличных данных (см. табл. 1):

Таблица 1. Функция, заданная табличными данными.

Для удобства расчетов перевернем таблицу на 90° по часовой стрелке, поменяем столбцы местами и добавим к таблице три столбца справа  (см. табл. 2):

Таблица 2. Расчет конечных разностей.

Как видно, конечные разности первого порядка - это разности соседних значений ординат: 5 = 15 - 10;   -8 = 7 - 15;   15 = 22 - 7. Конечные разности второго порядка: -13 = -8 - 5;   23 = 15 - (-8). Третий порядок - только одно значение: 36 = 23 - (-13).

Строка данных, соответствующая значениям (X0 = 1, Y0 = 10) заполнена полностью, т. к. для четырех узлов интерполяции возможно посчитать конечные разности вплоть до третьего порядка. Для второго значения интервала третий порядок конечных разностей рассчитать невозможно по причине отсутствия пятого значения на интервале интерполяции. Его максимум - второй порядок конечной разности.

Используя данные о конечных разностях табл. 2, можно рассчитать значение интерполирующей функции (задана данными табл. 1) в точке Х = 1,5:

То есть значение функции в точке Х = 1,5 равно 11,875 (между значениями функции 10 и 15).

 

Индикатор NewtonIntrepolationPolynomial

Аналогично ранее разработанному индикатору на основе полинома Лагранжа, создадим индикатор, прогнозирующий значения цены на основании первого полинома Ньютона - NewtonIntrepolationPolynomial. У этого индикатора будет тот же набор настроечных параметров, что и у его предшественника. Посмотрим, какой вид примет новый индикатор на графике EURUSD, H1 для цен закрытия (i_polynomialPrice = 0) и степени полинома 2 (i_polynomialExponent = 2):

Рис. 1. Прогноз цен на основе полинома Ньютона.

Качество прогноза цен закрытия, на первый взгляд, ничем не лучше, чем у индикатора на основе полинома Лагранжа. Для сравнения наложим на этот же график индикатор из предыдущей статьи. Получим тот же вид графика, который приведен на рис. 1, т. е. линии индикаторов оказались наложенными друг на друга - полное совпадение показаний. Отсюда следует вывод, что при определенных обстоятельствах оба метода прогнозирования приводят к одним и тем же результатам. Этими "определенными обстоятельствами" является фиксированный шаг аргументов интервала интерполирования. Об этом писалось выше: "полиномы Ньютона являются частным случаем полинома Лагранжа".

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

 

Индикатор NewtonIntrepolationPolynomial_v2

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

В первых версиях индикаторов нами использовалось получение будущей цены на основании одного интервала интерполяции. Новый метод будет включать расчет значения будущего бара на нескольких различных интервалах цены с последующим усреднением полученных значений (см. рис. 2).

Рис. 2. Четыре интервала интерполяции и усреднение полученного значения.

На рис. 2 показан пример расчета среднего значения прогноза цены закрытия на основании полинома третьей степени (четыре значения цены) и четырех подобных интервалов интерполяции.

Первый интервал интерполяции ограничен барами от индекса 1 до индекса 4 включительно. Прогноз цены закрытия для нулевого бара по данным этого интервала - 1.3001. Второй интервал ограничен барами 2 и 5. Прогноз второго интервала для цены закрытия нулевого бара 1.3065. Третий интервал задан барами от 3-его до 6-го включительно. Прогноз - 1.2928. Четвертый интервал: бары от 4-го до 7-го включительно. Прогноз - 1.3076.

Усредняя полученные четыре значения, получаем цену 1.30175 (≈1.3018). На рис. 2 видно, что реальная цена закрытия составила 1.3016, что очень близко к прогнозу.

Для реализации описанного алгоритма в виде нового индикатора, нам потребуется дополнительный настроечный параметр, при помощи которого можно задавать количество интервалов интерполяции, участвующих в расчете прогностического значения. Для примера, приведенного на рис. 2, этот параметр должен быть равен 4 - четыре интервала интерполяции. В индикаторе NewtonIntrepolationPolynomial_v2 параметр будет носить имя i_backPeriod.

Показания нового индикатора для параметров, используемых на рис. 2 (i_polynomialExponent = 4, i_polynomialPrice = 0, i_backPeriod = 4), приведены на рис. 3.

Рис. 3. Индикатор NewtonIntrepolationPolynomial_v2.

Прогностическая кривая расположена намного ближе к реальным данным, чем кривая, показанная на рис. 1.

Заметим особенность нового индикатора: при значении параметра i_backPeriod = 1 (один интервал интерполирования) вид кривой индикатора NewtonIntrepolationPolynomial_v2 будет полностью совпадать с видом кривой индикатора NewtonIntrepolationPolynomial.

 

Советник NewtonIntrepolationPolynomial_Expert и результаты его тестирования

Для проверки прогностических способностей нового индикатора разработаем новый эксперт NewtonIntrepolationPolynomial_Expert, собранный по образу и подобию предыдущего эксперта, LagrangeIntrepolationPolynomial_Expert. Разница между экспертами заключается только в сигнальной части, задающей границы горизонтального канала, между которыми осуществляется торговля. И, конечно же, не забудем о новом параметре - i_backPeriod.

Исторический диапазон тестирования нового советника: 01.01.2012 - 01.06.2013. Диапазон 01.01.2012 - 01.01.2013 вновь является диапазоном оптимизации для трех параметров: i_polynomialExponent, i_backPeriod и i_koefTPtoSL. Диапазон 01.01.2013 - 01.06.2013 - интервал форвард-теста. Результаты тестирования приведены на рис. 4 - 7.

EURUSD. Значения настроечных параметров: i_polynomialExponent = 4, i_backPeriod = 2, i_koefTPtoSL= 0.5. Чистая прибыль 1 710 долларов, максимальная просадка 684 доллара. Фактор восстановления 2.5.

Рис. 4. Результаты тестирования советника NewtonInterpolationPolynomial_Expert на валютной паре EURUSD.

 

USDCHF. Значения настроечных параметров: i_polynomialExponent = 6, i_backPeriod = 5, i_koefTPtoSL= 0.3. Чистая прибыль 478 долларов, максимальная просадка 728 долларов. Фактор восстановления ниже единицы.

Рис. 5. Результаты тестирования советника NewtonInterpolationPolynomial_Expert на валютной паре USDCHF.

 

GBPUSD. Значения настроечных параметров: i_polynomialExponent = 4, i_backPeriod = 2, i_koefTPtoSL= 0.3. Чистая прибыль 623 доллара, максимальная просадка 1 127 долларов. Фактор восстановления ниже единицы.

Рис. 6. Результаты тестирования советника NewtonInterpolationPolynomial_Expert на валютной паре GBPUSD.

 

USDJPY. Значения настроечных параметров: i_polynomialExponent = 7, i_backPeriod = 3, i_koefTPtoSL= 0.9. Чистая прибыль 1 794 доллара, максимальная просадка 782 доллара. Фактор восстановления 2.29. Обратим внимание на малое количество сделок. По этой причине анализ статистической выборки не может быть полноценным.

Рис. 7. Результаты тестирования советника NewtonInterpolationPolynomial_Expert на валютной паре USDJPY.

 

Использование полученного советника рекомендуется только под присмотром трейдера и после всестороннего изучения слабых и сильных сторон стратегии. Приведенные результаты тестирования демонстрируют только то, как могла бы работать стратегия на указанном историческом периоде, что не является гарантией повторения таких результатов в будущем.

 

 

 

Игорь Герасько

Июнь 2013

Специально для компании Admiral Markets

2.75
 
 
X
Loading