Станислав Булашев(STAN). Модификация метода экспоненциального сглаживания временных рядов и некоторые идеи ее применения при создании торговых алгоритмов
Модификация метода экспоненциального сглаживания временных рядов и некоторые идеи ее применения при создании торговых алгоритмов.
Станислав Булашев(STAN)
Истинный механизм, который определяет динамику цен активов, вряд ли кому-нибудь доподлинно известен. Единственное, что можно сказать с уверенностью - в изменених цен присутствует случайный фактор. А вот природа этой случайности может быть различной.
Согласно одной из возможных гипотез логарифмы изменения цен подчиняются нормальному распределению, однако это распределение нестационарно. То есть и математическое ожидание, и стандартное отклонение распределения могут меняться во времени. Вследствие этого, при обработке эмпирической выборки стандартными статистическими методами, предполагающими, что вся выборка получена из одной генеральной совокупности, получаем негауссовость выборки. Это может выражаться в тяжелых хвостах эмпирического распределения (вычисленный по выборке эксцесс превышает число 3, то есть эксцесс нормального распределения).
Согласно другой гипотезе логарифмы изменения цен изначально подчиняются распределению с эксцессом больше 3. В этой ситуации даже в случае стационарности самого распределения, полученная их этого распределения эмпирическая выборка может трактоваться как нестационарный во времени процесс. Дело в том, что оценкой математического ожидания случайной переменной
является среднее арифметическое по выборке:
Среднее арифметическое случайных величин само является случайной величиной. Стандартное отклонение среднего арифметического зависит от стандартного отклонения случайной величины и объема выборки:
Таким образом, стандартное отклонение среднего значения меньше, чем стандартное отклонение самой случайной величины в
раз, то есть точность оценки математического ожидания можно повысить путем увеличения объема выборки. Но это справедливо только для случайной величины с конечным математическим ожиданием и конечной дисперсией. Дело в том, что конечное математическое ожидание существует только у тех распределений, у которых при
плотность вероятности падает как
или круче, а конечная дисперсия только у тех распределений, у которых при
плотность вероятности падает как
или круче (
- сколь угодно малое положительное число). Если же смоделировать ценовой график, используя в качестве логарифмов изменения цены случайную выборку, взятую из стационарного распределения с бесконечной дисперсией и/или бесконечным математическим ожиданием, и предложить эту выборку для анализа независимому наблюдателю, то у него может возникнуть иллюзия того, что он имеет дело с нестационарным во времени процессом.
Ну наконец нельзя исключить случай, когда не только параметры распределения, но и сам закон распределения приращений логарифмов цен нестационарен во времени, причем во временных рядах цен могут присутствовать участки, описываемые распределением с бесконечной дисперсией и/или бесконечным математическим ожиданием.
Таким образом, при отсутствии достоверной информации о механизме ценообразования, и связанных с этим трудностях прогнозирования рынка с приемлемой точностью и стабильностью, для извлечения спекулятивной прибыли необходимо просто использовать периодически возникающие участки направленного изменения цены, то есть тренды. При этом природа возникновения этих трендов в принципе не важна. Они могут быть вызваны как действиями крупных операторов рынка, так и образовываться спонтанно из колебаний цены, когда к зародившейся тенденции присоединяется все большее количество участников, то есть на какое то время возникает самоподдерживающаяся динамика изменения цены преимущественно в одном направлении.
Хочу сказать несколько слов о том, что в моем понимании включает в себя понятие "тренд". В этом вопросе может быть два подхода. С формальной точки зрения тренд - это модель процесса, которую можно выразить некоторой функцией. Неизвестные параметры этой модели определяются с помощью регрессионного анализа. При этом появляющиеся новые данные не должны приводить к отказу от выбранной модели. Вид функции может быть любым. В этом смысле и прямую, и экспоненту, и синусоиду допустимо назвать трендом. Однако такой подход годится для процессов физических, а не биржевых.
В связи с тем, что график цены невозможно описать подобного рода моделью, в биржевой торговле тренд можно рассматривать как участок ценового ряда с изменением цены преимущественно в одном направлении. Но так как на эту тенденцию накладывается шумовая составляющая, то в данном случае само понятие "тренд" невозможно отделить от результата его выявления. На одном и том же участке графика цены, в зависимости от используемого алгоритма, одна торговая система может показывать наличие тренда, а другая его отсутствие. Если согласиться с тем, что когда речь идет о динамике цен активов, понятие "тренд" не абсолютно, а относительно (по крайней мере в режиме реального времени, а не постфактум), то можно сказать, что тренд - это участок ценового ряда такой амплитуды, продолжительности и волатильности, которые позволят данному конкретному торговому алгоритму извлечь прибыль.
Получается, что тренд (в режиме реального времени) - это просто такая тенденция, которую мы смогли идентифицировать. Таким образом надо различать тренды "реальные" (которые удается использовать в торговле), и тренды "идеальные" (которые все мы хорошо видим на графике цены постфактум). Отличия у этих трендов следующие:
- амплитуда реального тренда всегда меньше амплитуды соответствующего идеального тренда,
- моменты начала и окончания реального тренда всегда сдвинуты вправо по оси времени относительно начала и окончания соответствующего идеального тренда.
Если исходить из того, что нельзя дать достоверный прогноз касательно возможной амплитуды и продолжительности тренда, то в случае открытия позиции мы не в состоянии предвидеть свою прибыль, однако вполне можем ограничить свой убыток заранее заданной величиной. То есть при трендследящем методе торговли представляется разумной следующая тактика:
- до момента открытия позиции задается предельная сумма, которая может быть потеряна в ходе планируемой сделки,
- до момента открытия позиции определяется начальное значение и алгоритм изменения цены выхода, причем в случае открытия длинной позиции цена выхода должна быть неубывающей функцией времени (или по крайней мере не опускаться ниже начального значения цены выхода), а в случае открытия короткой позиции цена выхода должна быть невозрастающей функцией времени (или по крайней мере не подниматься выше начального значения цены выхода),
- объем открываемой позиции должен соответствовать предельной сумме потерь и начальной цене выхода (с учетом комиссий и проскальзываний в два конца).
При таком подходе задача определения момента открытия и закрытия позиции идеологически проста - с минимально возможной задержкой идентифицировать начало и окончание тренда. Однако эта задача сложна практически, так как возникающие на рынке тенденции зашумлены, вследствие чего начало и окончание идеального и реального трендов сдвинуты во времени. Одним из вариантов решения этой проблемы может быть торговая система, основанная на сглаживании рядов цен активов. Целью сглаживания является фильтрация шумовых колебаний с целью выявления устойчивых тенденций движения. Предположим, что выявляемые с помощью сглаживания тенденции движения цены являются "достаточно гладкими" линиями во времени. Тогда в идеальной скользящей средней (moving average или МА) максимально возможное сглаживание шумовых колебаний должно сочетаться с минимальным искажением самих тенденций. Если же перейти от идеальных к реальным МА, то при сглаживании необходимо добиться разумного компромиса между мерой гладкости МА и мерой близости этой МА к исходному ценовому ряду. Разумеется "достаточная близость" и при этом " достаточная гладкость" могут быть разными в зависимости от амплитуды и продолжительности выявляемых трендов.
* * *
До того, как перейти к собственно используемому мной алгоритму сглаживания временных рядов и вариантам построения на его основе торговых систем, для сохранения логической стройности изложения необходимо предварительно кратко рассмотреть одну из всем хорошо известных скользящих средних. Вернемся к упомянутым выше мере гладкости скользящей средней и мере близости скользящей средней к исходному ценовому ряду. Введем обозначения:
-
- ряд цены (или логарифма цены) актива,
-
- скользящая средняя ряда
.
В качестве меры близости рядов
и
в момент времени
выберем функцию
, а в качестве меры гладкости ряда
функцию
. Если взять взвешенную сумму этих функций, то есть
то для расчета текущей величины
, которая минимизирует функцию
, надо решить следующее уравнение:
После несложных преобразований получим, что
. Это формула для вычисления всем хорошо известной экспоненциальной скользящей средней с фактором сглаживания
(которую будем обозначать как
).
Одним из важнейших показателей скользящей средней является время ее запаздывания относительно исходного сигнала. Для вычисления запаздывания формулу скользящей средней нужно записать в явном виде, то есть выразить ее только через значения ряда
. Для этого подставим в формулу
на 1-м шаге
,
на 2-м шаге
, и т.д.
В итоге получим, что
Традиционно скользящую среднюю ставят в соответствие с последней точкой интервала расчета, то есть с моментом времени
, хотя это
некорректно. Ее значение нужно ставить в соответствие с моментом времени,
определяемом по формуле
Раскрыв сумму получим при достаточно больших
Таким образом время запаздывания
относительно
исходного сигнала равно
Соответственно фактор сглаживания выражается через время запаздывания как
Из формулы для расчета
следует, что ее 1-я производная меняет свой знак при пересечении линией цены линии скользящей средней (первая производная обращается в нуль при
). Конечно если графики цен представлены в дискретном виде (бары), то корректнее вместо термина "производная" употреблять термин "разность", но здесь и далее будет говориться о производных, помня об этой условности.
Указанное свойство ЕМА является логическим обоснованием торговых алгоритмов, в которых сигналами к покупкам/продажам являются моменты пересечений цены и средней. Однако, из этого же свойства следует, что амплитуда ЕМА всегда меньше, чем амплитуда цены. То есть локальный максимум цены всегда раньше по времени и выше соответствующего максимума ЕМА, а локальный минимум цены всегда раньше и ниже минимума ЕМА. В связи с этим возникла идея модифицировать алгоритм расчета ЕМА таким образом, чтобы при одном и том же времени запаздывания, увеличить амплитуду и гладкость скользящей средней.
* * *
Итак, переходим к используемому мной в торговой системе алгоритму сглаживания
временных рядов. Сохраняем в качестве меры близости рядов
и
в момент времени
функцию
. А вот в качестве меры гладкости ряда
выберем комбинацию функций
и
, то есть комбинацию 1-й и 2-й производной ряда
. Тогда взвешенная сумма всех этих функции примет вид
Решением уравнения
будет
.
Назовем эту функцию модифицированной экспоненциальной скользящей средней и будем обозначать ее как
. Заметим, что
является частным случаем функции
, то есть
равна
с коэффициентом
. В отличии от
, для того, чтобы первая производная функции
стала равной нулю, необходимо, чтобы
То есть
обладает большей инерцией по сравнению с
, и "малые" пересечения линией цены
линии
, не меняют знак первой производной скользящей средней.
Для вычисления времени запаздывания
относительно цены необходимо записать ее в явном виде. Для этого подставим в формулу
на 1-м шаге
,
на 2-м шаге
, и т.д.
В итоге получим, что
где
Последняя сумма является табличной и ее значение можно взять из справочника по рядам и частичным суммам. Проведя несложные преобразования, приходим к следующей формуле:
где
Итак
Отсюда следует, что
Получилось, что
является комбинацией двух экспоненциальных скользящих средних, взятых с соответствующими весами. Поэтому время запаздывания
относительно цены можно найти из времен запаздывания двух ЕМА, взятых с теми же самыми весами. После проведения необходимых вычислений в итоге получается, что время запаздывания
относительно исходного сигнала равно
Конечно работать со скользящей средней, имеющей 2 параметра, не всегда удобно, в частности – время запаздывания не определяет однозначно оба коэффициента
и
. Однако это компенсируется потенциально более точной аппроксимацией исходного ряда цен. В принципе от одного из параметров можно избавиться, задав например
как функцию
. В этом случае надо учитывать, что
, то есть
.
* * *
Проиллюстрируем различие между ЕМА и МЕМА на примере. В качестве сглаживаемого ряда
возьмем натуральный логарифм рублевых цен закрытия акций РАО ЕЭС на интервале с июня 1997г. по март 2007г. (недельные бары). По оси абсцисс будет указан порядковый номер бара. Время запаздывания сглаженного сигнала относительно исходного выберем равным 4 барам. Ниже приведены 4 рисунка, иллюстрирующие различия между ЕМА и МЕМА.
На рисунке 1 изображен исходный ряд и сглаженные линии ЕМА и МЕМА. Очевидно, что при выбранных значениях
и
, МЕМА имеет большую амплитуду, по сравнению с ЕМА, при одном и том же времени
запаздывания.
На рисунке 2 сглаженные линии сдвинуты в прошлое на время запаздывания, то есть фактически ЕМА и МЕМА показывают "идеальный" прогноз цены (прогноз с учетом будущих цен).
Рисунки 3 и 4, на которых изображены 1-я и 2-я производная сглаженных линий, показывают существенно меньшую волатильность производных МЕМА, то есть ее большую гладкость, по сравнению с ЕМА.
Рис.1. Исходный ряд и сглаженные линии ЕМА и МЕМА.
Рис.2. Исходный ряд и сглаженные линии ЕМА и МЕМА, сдвинутые в прошлое на время запаздывания.
Рис.3. Первая производная ЕМА и МЕМА.
Рис.4. Вторая производная ЕМА и МЕМА.
Рассмотрим варианты построения торговых алгоритмов на основе МЕМА.
1 вариант
Открытие/закрытие позиций при изменении знака 1-й производной сглаженной линии. Напомним, что цена, меняющая на текущем баре знак 1-й производной МЕМА, может быть найдена по формуле
Данный вариант очевиден и не требует более детального рассмотрения.
2 вариант
Рассмотрим ошибки аппроксимации ценового ряда
, где
. Сгладим модуль этих ошибок тем же алгоритмом и с теми же параметрами сглаживания, то есть найдем
.
Далее построим канал, верхняя и нижняя граница которого вычисляются как
Построенный таким образом канал обладает следующим свойством:
- после пробоя ценой снизу вверх верхней границы канала, его нижняя граница является как правило неубывающей функцией времени (
up-trend),
- после пробоя ценой сверху вниз нижней границы канала, его верхняя граница является как правило невозрастающей функцией времени (
down-trend).
Рис.5. Канал на основе МЕМА и линия текущего тренда.
На рисунке 5 изображен канал на основе МЕМА и линии повышательных и понижательных трендов. Как правило сигналы об открытии/закрытии позиций по варианту 2 поступают ранее соответствующих сигналов по варианту 1, или одновременно с ними. Объем открываемой позиции зависит от предельного риска на сделку, то есть в данном случае от текущей ширины канала. Например, длинная позиция на 74 баре открывается вообще говоря меньшим объемом, чем длинная позиция на 281 баре.
* * *
Описанный выше торговый алгоритм на основе МЕМА обладает всеми достоинствами и недостатками любой трендследящей системы - он вполне приемлемо работает на трендовых участках цен, но теряет деньги на флэтах. Дальнейшие его модификации могут быть связаны с введением переменных факторов сглаживания. При этом на трендах сглаженная линия должна следовать за ценой, а ширина канала, выраженная в ошибках аппроксимации, быть минимальной. На флэтах сглаженная кривая должна вырождаться в горизонтальную линию, а ширина канала увеличиваться для уменьшения количества ложных сигналов.
Обратимся вновь к аналогии с ЕМА. Рекуррентная формула для ее вычисления при переменном факторе сглаживания принимает вид
, где
принимает значения от 0 на флэте до некоторого
на тренде, причем
тем больше, чем более явно текущую динамику можно трактовать как "тренд".
В случае же МЕМА с переменными факторами сглаживания рекуррентная формула запишется как
, где
на флете
на тренде
На рисунке 6 приведен пример подобного рода сглаженной линии.
Рис.6. МЕМА с переменными факторами сглаживания.
* * *
В заключение хотелось бы рассмотреть еще один вопрос – сравнение торговых систем (ТС) по генерируемым ими линиям торгового счета (линиям
). При оценке качества ТС полезно изучить линию
в полулогарифмическом масштабе. Полученная зависимость исследуется с применением регрессионного анализа. Показателем, характеризующим доходность ТС, является угол наклона линии регрессии к оси абсцисс. Чем выше угол наклона, тем более доходна ТС. Риск ТС характеризует дисперсия рассеяния эмпирических данных вокруг линии регрессии. Чем больше разброс эмпирических точек, тем выше дисперсия, то есть риск системы. Нормируем линию торгового счета на величину начальных инвестиций, то есть введем в рассмотрение переменную
Очевидно, что в нулевой момент времени
.
В идеале ТС, эксплуатирующая некую неэффективность рынка, в среднем должна давать одинаковый прирост по линии торгового счета за равные промежутки времени, то есть
может быть аппроксимирован экспоненциальной функцией. Тогда величина
может аппроксимироваться линейной функцией, при этом
. Следовательно, связь между реальными значениями из выборки
и рассчитанными по модели значениями
будет
выражаться в виде:
- это расхождения между моделью и выборкой.
Вычислим такой параметр модели, при котором сумма квадратов всех расхождений между значениями по выборке и вычисленными по модели значениями будет минимальной, то есть
Величина
является функцией от переменной
. Минимум этой функции можно найти, приравняв к нулю ее производную по
.
Решив это уравнение, получим
Заметим, что величина
пересчитывается в каждый момент времени
, то есть на каждом баре. Дисперсия случайных отклонений реальных значений
от линии регрессии
оценивается по формуле:
Вычислив
, можно задать полосу неопределенности рассеяния реальных значений
относительно линии регрессии
в произвольный момент времени
в виде
где
Коэффициент
, наряду с величиной
, определяет ширину полосы неопределенности. Этот коэффициент можно связать с вероятностью того, что значение
окажется внутри полосы неопределенности, то есть вероятностью того, что будет справедливо неравенство
. Если обозначить эту вероятность как
, то коэффициент
можно оценить с помощью обратной функции распределения Стьюдента (
в Microsoft Excel). В таблице указаны результаты расчетов коэффициента
для двух различных значений доверительной вероятности
.
При достаточно больших
вместо обратной функции распределения Стьюдента можно использовать обратную функцию стандартного нормального распределения (
в Microsoft Excel).
Рассмотрим в качестве примера две ТС, динамика
которых приведена на рисунке 7.
Рис.7. Динамика для сравниваемых торговых систем.
Вычислим для каждой ТС уравнение регрессии и полосу неопределенности рассеяния эмпирических данных относительно линии регресии (рисунок 8 для ТС1, и рисунок 9 для ТС2). Величину доверительной вероятности выберем
.
Рис.8. Торговая система 1.
Рис.9. Торговая система 2.
Так как динамика
– это случайный во времени процесс, то при сравнении ТС представляется разумным
использовать консервативную оценку
, то есть нижнюю границу полосы неопределенности. Рассмотрим рисунок 10, на котором изображены величины
и нижние границы полосы неопределенности для обоих алгоритмов.
Рис.10. Динамика и нижние границы полосы неопределенности для сравниваемых торговых систем.
Нижняя граница для ТС1 лежит выше нижней границы для ТС2 на 59% баров. Поэтому, если стоит задача однозначного выбора одной из рассматриваемых торговых систем, то предпочтение следует отдать первой, несмотря на то, что в конечной точке
. А в случае их совместного использования, ТС1 присваивается вес 0.59, а ТС2 вес 0.41..