8. Системы на основе осцилляторов.
8.1. Что такое осциллятор?
Осциллятор – это индикатор, основанный на ценах и имеющий тенденцию колебаться или осциллировать в некоторых фиксированных или достаточно жестко ограниченных пределах. Осцилляторы характеризуются некоторой нормализацией диапазона и удалением долговременных трендов цен. Информация извлекается осцилляторами из таких показателей, как импульс и перенапряжение.
Импульс – это состояние, когда цены мощно двигаются в данном направлении.
Перенапряжение – это состояние избыточно высоких или низких цен (перекупленность и перепроданность), когда цены готовы резко вернуться на более разумный уровень.
Иногда осциллятор образно представляют в виде маятника: чем больше маятник отклонился от равновестного значения, тем большая сила действует на него, возвращая к точке равновесия. Это очень грубая модель, но она поясняет принцип идеи, на которой основывается использование осцилляторов.
В более точной модели степеней свободы гораздо больше. Осциллятор представляет собой маятник, но этот маятник закреплен на конце другого маятника большего размера, а тот, в свою очередь, на конце еще большего маятника и так далее, до бесконечности.
Таким образом, концентрируясь на показаних осциллятора мы выделяем только часть общего движения рынка, оставляя за рамками нашего рассмотрения ряд факторов, которые данным осциллятором не учитываются и которые могут привести к непредвиденным последствиям, не учтенным осцилляторными методами анализа. Эту особенность осцилляторов необходимо учитывать в своих выводах относительно предполагаемого движения рынка.
При рассмотрении методов построения МТС на основе осцилляторов для нас в общем-то не имеет значения алгоритм вычисления и принцип построения того или иного осциллятора. Для нас важно иметь возможность вычисления значений параметров осциллятора, чтобы использовать их при анализе динамики рынка и генерации торговых сигналов.
Существует два главных вида осцилляторов.
Один из них – линейные операторы (фильтры), которые осуществляют определенные линейные преобразования над временным рядом и, в основном, анализируют частоты колебаний, представляя собой своего рода полосовые фильтры.
Другой класс приводит к нормализованной шкале какой-либо аспект поведения цен. В отличие от первой категории эти осцилляторы не являются линейными фильтрами, т.е. операции, совершаемые ими над графиком цен, являются необратимыми.
Оба вида осцилляторов реагируют на импульс цен и циклические движения, при этом снижая роль трендов и игнорируя долговременные сдвиги. График, построенные для таких осцилляторов, имеют ломаный, колеблющийся вид.
Еще раз повторимся, что для нас в принципе не имеет значения алгоритм вычисления и принцип построения того или иного осциллятора. Для нас важно иметь возможность вычисления значений параметров осциллятора, чтобы использовать их при построении системы.
Существуют различные способы применения осцилляторов для получения торговых сигналов; подробно мы их рассмотрели в разделе "Осцилляторы" "Краткого курса начинающего трейдера".
8.3.1. Уровни перекупленности/перепроданности
Самый простой метод заключается в том, чтобы использовать осциллятор, как индикатор перекупленности/перепроданности. Покупка происходит, если значение осциллятора опускается ниже некоторого порога в зону перепроданности и затем возвращается обратно. Продажа происходит, если осциллятор поднимается выше порога перекупленности и затем опускается обратно. Существуют традиционные пороги перекупленности/перепроданности, используемые с различными осцилляторами.
8.3.2. Скользящие средние на осцилляторах.
Также можно использовать взаимное расположение осциллятора и его скользящей средней, которая выступает в виде некоторой сигнальной линии. Если осциллятор пересекает свое среднее вверх, генерируется сигнал на покупку, если вниз – соответственно на продажу. Пересечение осциллятора и сигнальной линии может использоваться в сочетании с зонами перекупленности/перепроданности и соответствующими пороговыми уровнями. Сформированные сигналы могут использоваться одновременно и для входа и для выхода, а также только для входа с выходом, определяемым по другим правилам.
Отметим, что кроме скользящих средних в качестве сигнальных линий для осцилляторов может использоваться широкий класс трендследящих и канальных индикаторов, применяемых к графику осциллятора, таких, например, как ценовые конверты, границы Боллинджера, MACD и многие другие.
8.3.3. Дивергенция.
Еще один известный метод – поиск расхождений в поведении графика осциллятора и графика цены - дивергенции. Расхождение получается тогда, когда цены образуют новый минимум (ниже предыдущих минимумов), а осциллятор более высокий минимум (выше предыдущих минимумов). Таое расхождение дает сигнал к покупке. В противоположной ситуации, когда цены образуют новый максимум, а осциллятору не удается достичь предыдущего максимума, что является признаком потери ценового импульса, генерируется сигнал к продаже.
Расхождение легко увидеть глазами, но для программы с простыми правилами найти его почти всегда затруднительно. Механическая генерация сигналов на основе расхождения требует распознавания образов, что усложняет систему, и, следовательно, затрудняет ее тестирование.
В использовании осцилляторов для получения торговых сигналов существует ряд принципиальных моментов, заключающийся в противоречии между степенью сглаживания данных и своевременностью подачи сигналов.
Например, MACD для некоторых параметров рынка обеспечивает сглаживание данных в реальном времени, что позволяет получить лучшие результаты по сравнению с моделями на скользящих средних. В последнем случае пики и провалы на графике индикатора значительно запаздывают по сравнению с ценами, а поздние входы снижают эффективность торговой системы. MACD, со своей стороны, при совпадении собственного периода с циклической активностью рынка, обеспечивает примерное совпадение пиков и провалов при одновременном сглаживании графика, что позволяет избежать многочисленных сделок, вызванных шумом, и повысить прибыль за счет своевременности сделок и улучшения вследствие этого параметров входа/выхода.
Помимо MACD другие осцилляторы также, как правило, не отстают или даже опережают цены. Однако, по рассмотренным ниже причинам, опережающие или совпадающие индикаторы вовсе не обязательно дают большие прибыли, чем запаздывающие скользящие средние – своевременность сигналов вовсе не означает их прибыльность.
Проблема в том, что даже при наличии некоторых абсолютно точных сигналов осцилляторы будут генерировать множество ложных. В условиях сильного тренда многие из ожидаемых разворотов не происходят, а система входит в рынок в неверном направлении. Иначе говоря – локальных экстремумов много, а глобальный только один. Таким образом за счет точности входа теряется надежность.
Что важнее – поздний, но надежный вход, или ранний, но менее надежный – вопрос отдельного исследования. В принципе эта проблема возникает при использовании любого прогностического метода – чем больше задержка, тем точнее (и бесполезнее) прогноз и чем больше опережение, тем он полезнее (и ошибочнее).
Правила открытия позиций, основанные на осцилляторах, обладают преимуществами опережения или совпадения по времени с поведением цены., следовательно, они пригодны для входов, направленных против тренда, и теоретически могут обеспечивать высокий процент прибыльных сделок.
Осцилляторы обычно работают наилучшим образом на циклических или не подверженных трендам рынках. На этих рынках осцилляторы указывают на максимум или минимум еще до начала движения цен. Таким образом, проскальзывание минимально или даже отрицательно, и переоценка позиции становится положительной уже при очень малом движении цены. В таких случаях легко получить значительную прибыль даже при неоптимальной стратегии выхода.
Считается, что тренды на рынках присутствуют около 30% времени.
При использовании соответствующих фильтров для исключения осцилляторных входов во время сильного тренда, видимо, можно создать очень хорошую систему. Такой фильтр должен быть прямой противоположностью тому, который используется при построении систем, основанных на пробоях, когда необходимым условием было наличие трендов, а не их отсутствие.
Основная слабость простых осцилляторных систем в том, что они малоэффективны при длительных трендах и часто выдают множество ложных сигналов разворота. Некоторые осцилляторы легко застревают на крайних значениях, кроме того, большинство осцилляторных систем не регистрирует тренды, в отличие от систем на основе скользящих средних и пробоях, которые не пропустят практически ни одного значимого тренда.
Многие трейдеры говоря, что «тренд – твой друг», что большая часть доходов возникает после «большой волны» и прибыль от такого успеха покрывает частые и мелкие убытки, свойственные трендследящим системам.
Поскольку осцилляторные входы направлены против рынка и настроены на мелкие движения рынка, особое значение имеет хорошая стратегия выходов для снижения урона, который возникает при движении тренда против сделок.
Рассмотрение механических торговых стратегий на основе осцилляторов начнем на примере одного из наиболее популярных и наиболее эффективных индикаторов осцилляторного типа – на примере MACD - Moving average convergence-divergence.
8.5.1. Построение индикатора MACD.
Осциллятор схождения-расхождения скользящих средних (MACD) состоит из трех частей, которые в общем случае вычисляются следующим образом:
1. MACD = EMA(С, 12) - EMA(С, 26);
2. SIGNAL = EMA (MACD, 9);
3. MCD = MACD - SIGNAL,
где EMA означает экспоненциальную скользящую среднюю, а C - цена закрытия.
Таким образом, стандартная MACD представляет собой разность между двумя экспоненциальными скользящими средними от цен закрытия, т.е. расхождение этих двух скользящих средних. Полученный разностный осциллятор представляет собой некоторый эрзац производной и характеризует скорость изменения цены (см. рис. 8.1).

Рис.8.1.
SIGNAL представляет собой MACD, сглаженную с помощью 9-периодной экспоненциальной скользящей средней. (Отметим, что в практике трейдинга для вычисления функции SIGNAL чаще используют простую скользящую среднюю от MACD, однако мы использовали экспоненциальное сглаживание.
MCD - еще один разностный осциллятор, сравнительно редко используемый, представляющий собой результат вычитания : SIGNALа из MACD.
Следует отметить, что изменяя параметры сглаживания скользящих средних можно получить сколь угодно много различных осцилляторов подобного типа. Мы вначале рассмотрим один из стандартных вариантов построения MACD, а в дальнейшем возможно остановимся и на других популярных индикаторах, основанных на вычислении расхождения скользящих средних.
Принципы применения MCAD предполагают множество вариантов, некоторые из которых представлены на рисунке 8.2.

Рис.8.2.
В частности для анализа динамики рынка можно использовать тенденции изменения абсолютной величины гистограммы, характеризующей расхождение скользящих средних, а также перемену знака гистограммы.
Так цифрой 1 обозначены зоны, где MACD меняет знак, что соответствует пересечениям МА.
Цифрой 2 - зоны, в которых расхождение начинает уменьшаться, что может говорить об изменении направления тенденции.
Цифрой 3 - зоны, в которых MACD начинает возрастать, что говорит об ускорении существующей тенденции.
Использование MACD и сигнальной линии – другой способ принятия торговых решений.
Общий принцип совершения сделок заключается в следующем: покупать, когда MACD выше SIGNALа и продавать когда MACD ниже SIGNALа.
На рисунке 8.2 стрелками вверх обозначены точки покупки, стрелками вниз - точки продаж.
И, наконец, стандартный прием анализа всех осцилляторов - дивергенция индикатора и графика цен (рис.8.2), однако возможности его применения для построения МТС сталкиваются с трудностями формализации этого признака.
Необходимо отметить, что весь набор сглаживаний приводит к тому, что пересечение линий MACD и SIGNAL генерирует меньше "ложных "сигналов, чем простое пересечение МА. Особенно это касается ситуаций с узким диапазоном цен при боковом рынке, когда две МА дают много пересечений и, соответственно, много "ложных" сигналов.
Для построения пользовательского индикатора MACD со стандартными параметрами можно использовать встроенную функцию Метасток, приведенную в справочном разделе - 1.49 MACD.
Однако нам потребуется более гибкий индикатор, поэтому мы воспользуемся более детальной записью формул для индикатора, используя встроенные функции для вычисления скользящих средних - 1.60 Moving Average (Скользящая средняя).
Формула пользовательского индикатора MACDN1 будет иметь вид (имя MACDN1 присвоено, чтобы не путать со встроенным индикатором MACD программы Метасток):
N1:=Input("N1",0.5, 5, 1); {масштабирующий множитель}
MACDN1:=(Mov(C,12*N1,E) - Mov(C,26*N1,E)); {MACD}
SIGNAL:=Mov((Mov(C,12*N1,E) - Mov(C,26*N1,E)), 9*N1,E); {SIGNAL}
MACDN1;
SIGNAL;
В фигурных скобках приведены комментарии, поясняющие фрагменты формулы.
Для стандартной MACD значение параметра N1=1.
График построенного пользовательского индикатора представлен на рисунке 8.3.

Рис.8.3.
8.6.1. Торговая идея - пересечение MACD и нулевой линии.
Эта МТС представляет собой выделенный фрагмент из правил применения MACD, и пример является чисто иллюстративным.
Торговые правила для этого случая будут иметь вид:
Buy Order: (Mov(C,12,E) – Mov(C,26,E)) > 0
Sell Order: (Mov(C,12,E) – Mov(C,26,E)) < 0
Sell Short Order: (Mov(C,12,E) – Mov(C,26,E)) < 0
Buy to Cover Order: (Mov(C,12,E) – Mov(C,26,E)) > 0
Мы не использовали функцию Cross, поскольку в этом случае условие всего одно и знак неравенства с таким же успехом выделяет перемену знака MACD.
Параметров оптимизации нет, поэтому тестируем стратегию сразу на всем диапазоне сегментированных исторических данных.
График эквити для результатов тестирования представлен на рисунке 8.4.

Рис. 8.4.
Количественные характеристики теста:
- профит - 10270пп;
- процент прибыльных сделок – 38.0%;
- отношение AW/AL – 2.49;
- профит-фактор – 1.53.
Из представленных результатов следует, что и эта стратегия в целом обеспечивает профит, но, к сожалению, тоже не на всех участках рынка. Есть диапазоны и убыточной и бесприбыльной торговли. Но в целом, если следовать правилам стратегии и соблюдать риски, то прибыль обеспечена.
Этот пример иллюстрирует использование для формирования торговых сигналов взаимное расположение осциллятора и его скользящей средней, т.е. сигнальной линии. МТС иллюстрирует пример выделенного применения другого правила формирования торговых сигналов на основе MACD.
Торговые правила для этого случая будут иметь вид:
Buy Order: (Mov(C,12,E) - Mov(C,26,E)) > Mov((Mov(C,12,E) - Mov(C,26,E)), 9,E);
Sell Order: (Mov(C,12,E) - Mov(C,26,E)) < Mov((Mov(C,12,E) - Mov(C,26,E)), 9,E);
Sell Short Order: (Mov(C,12,E) - Mov(C,26,E)) < Mov((Mov(C,12,E) - Mov(C,26,E)), 9,E);
Buy to Cover Order: (Mov(C,12,E) - Mov(C,26,E)) > Mov((Mov(C,12,E) - Mov(C,26,E)), 9,E);
Здесь тоже нет параметров оптимизации, поэтому можно тестировать стратегию сразу на всем диапазоне сегментированных исторических данных.
Результаты тестирования представлены на рисунке 8.5.

Рис.8.5.
Да, сигнальная линия оказалась более плохим генератором торговых сигналов, по сравнению с переменой знака MACD, т.е. с пересечение последней нулевой линии. Это нетрудно объяснить. Ведь пересечение индикатором MACD значения ноль означает пересечение двух скользящих средних, участвующих в формировании MACD, а это, как мы уже проверили в предыдущем разделе, достаточно хороший способ формирования торговых сигналов, который правда несколько запаздывает относительно движения цен.
Пересечение индикатора и сигнальной линии быстрее реагирует на изменение ситуации, но, к сожалению, генерирует множество «ложных» торговых сигналов. В частности, в данном тесте было реализовано 432 торговых операции по сравнению со 150 сделками для предыдущего примера, но на пользу торговле это явно не пошло.
Buy Order: (Mov(C,12,E) - Mov(C,26,E)) > Mov((Mov(C,12,E) - Mov(C,26,E)), 9,S);
Sell Order: (Mov(C,12,E) - Mov(C,26,E)) < Mov((Mov(C,12,E) - Mov(C,26,E)), 9,S);
Sell Short Order: (Mov(C,12,E) - Mov(C,26,E)) < Mov((Mov(C,12,E) - Mov(C,26,E)), 9,S);
Buy to Cover Order: (Mov(C,12,E) - Mov(C,26,E)) > Mov((Mov(C,12,E) - Mov(C,26,E)), 9,S);
Запускаем тест и смотрим результаты тестирования, которые представлены на рисунке 8.6.

Рис.8.6.
Что ж, прибыль для случая простой скользящей средней получена больше (линия эквити красного цвета), но нельзя сказать что эта стратегия хороша, так же как нельзя сказать, что она лучше, чем для случая экспоненциального сглаживания MACD при формировании сигнальной линии. Вероятнее всего дело в различном запаздывании простой и экспоненциальной скользящих средних, а расхождение по этому параметру легко устранить подбором соответствующего периода для формирования экспоненциальной сигнальной линии.
Buy Order: (Mov(C,12,E) - Mov(C,26,E)) > Mov((Mov(C,12,E) - Mov(C,26,E)), opt1,E);
Sell Order: (Mov(C,12,E) - Mov(C,26,E)) < Mov((Mov(C,12,E) - Mov(C,26,E)), opt1,E);
Sell Short Order: (Mov(C,12,E) - Mov(C,26,E)) < Mov((Mov(C,12,E) - Mov(C,26,E)), opt1,E);
Buy to Cover Order: (Mov(C,12,E) - Mov(C,26,E)) > Mov((Mov(C,12,E) - Mov(C,26,E)), opt1,E);
Диапазон переменной opt1 зададим от 5 до 50 с шагом 1.
Результаты тестирования, представленные на диаграмме рисунка 8.7,показывают, что действительно, с увеличением периода скользящей экспоненциальной скользящей средней прибыльность МТС возрастает, превышая полученные ранее показатели для обеих систем.

Рис.8.7.

Рис.8.8.
Однако вспомним, что наша задача – не определение оптимума, а выбор типа сглаживания при формировании сигнальной линии. Может быть, простая скользящая средняя при подобранном оптимальном значении периода сглаживания дат результаты еще лучше.
Buy Order: (Mov(C,12,E) - Mov(C,26,E)) > Mov((Mov(C,12,E) - Mov(C,26,E)), opt1,S);
Sell Order: (Mov(C,12,E) - Mov(C,26,E)) < Mov((Mov(C,12,E) - Mov(C,26,E)), opt1,S);
Sell Short Order: (Mov(C,12,E) - Mov(C,26,E)) < Mov((Mov(C,12,E) - Mov(C,26,E)), opt1,S);
Buy to Cover Order: (Mov(C,12,E) - Mov(C,26,E)) > Mov((Mov(C,12,E) - Mov(C,26,E)), opt1,S);
Задаем диапазон переменной opt1 от 5 до 50 с шагом 1 и проводим тестирование.
Результаты теста представлены на рисунке 8.9.

Рис.8.9.
Прибыльность стратегии с простой скользящей средней выше, но в диапазоне, далеком от первоначальных значений периода сглаживания. Поскольку оптимум не выявлен, то, во-первых, расширим диапазон изменения переменной оптимизации вверх, например до 100, а во-вторых, проведем аналогичное исследование в расширенном диапазоне переменной и для экспоненциального сглаживания при формировании сигнальной линии.
P.S. Нас несколько занесло в сторону, от первоначального плана исследований. Но при разработке МТС такая ситуация встречается достаточно часто.

Рис.8.10.
Для экспоненциального сглаживания максимум прибыли расположен на opt1=78, но величина прибыли меньше, чем в случае простого скользящего среднего (рис.8.11).

Рис.8.11.

Рис.8.12.
Сохранилась более высокая прибыльность МТС для случая простой скользящей средней (линия эквити красного цвета), причем во всем диапазоне данных. Так что дело вероятнее всего не в запаздывании, а том, что сигнальная линия, сформированная с помощью простой скользящей средней, больше подходит для формирования торговых сигналов.
Учтем этот факт на будущее, когда мы будем рассматривать оптимизировать МТС на основе MACD.
Отметим также, что оптимизация только по сигнальной линии существенно (в разы) увеличила прибыльность стратегии по сравнению с общепринятым типовым вариантом ее использования и уже дает основания обратить на нее внимание с целью дальнейшего углубленного исследования.
На рисунке 8.13 представлен график пользовательского индикатора MACD с двумя вариантами сигнальной линии (красный цвет – период 9 простой МА, зеленый – период 48 простой МА), который иллюстрирует отличия в поведении индикатора.

Рис.8.13.
Первый подход к MACD показал, что традиционные параметры индикатора отнюдь не являются самыми лучшими при механистическом объективном подходе к торговле, без учета основанных на интуиции и прочих субъективных факторах действий и решений. По крайней мере это можно утверждать для рынка и тайм-фрейма, на которых проведено тестирование стратегии. Стоило нам немного подкрутить параметры сигнальной скользящей средней, как параметры торговой стратегии значительно улучшились, а прибыльность механической торговли возросла. Но это несколько не те результаты, которые нам хотелось бы получить, поскольку процедура оптимизации производилась на всем интервале сегментированных исторических данных, а следовательно нельзя исключать эффект переоптимизации.
Чтобы получить более достоверные результаты и быть уверенным в будущем поведении торговой стратегии, проведем полную оптимизацию МТС на основе MACD с изменением значимых параметров, определяя оптимальные параметры торговой системы на выборке стартового сегмента данных и проверяя результаты оптимизации на данных вне выборки.
8.7.1. Торговая идея - пересечение MACD и сигнальной линии.
Используем торговые правила п.8.6.2, но введем в них переменную оптимизации, масштабирующую параметры индикатора следующим образом:
Buy Order: (Mov(C,12*opt1,E) - Mov(C,26*opt1,E)) > Mov((Mov(C,12*opt1,E) - Mov(C,26*opt1,E)), 9*opt1,S);
Sell Order: (Mov(C,12*opt1,E) - Mov(C,26*opt1,E)) < Mov((Mov(C,12*opt1,E) - Mov(C,26*opt1,E)), 9*opt1,S);
Sell Short Order: (Mov(C,12*opt1,E) - Mov(C,26*opt1,E)) < Mov((Mov(C,12*opt1,E) - Mov(C,26*opt1,E)), 9*opt1,S);
Buy to Cover Order: (Mov(C,12*opt1,E) - Mov(C,26*opt1,E)) > Mov((Mov(C,12*opt1,E) - Mov(C,26*opt1,E)), 9*opt1,S);
Зададим первоначальный диапазон переменной оптимизации в пределах от 0.5 до 6 с шагом 0.1.
Таким образом, временной масштаб первоначального индикатора изменяется в широком диапазоне, но соотношение между параметрами MACD и сигнальной линии сохраняется неизменным и равным соотношению для стандартного индикатора MACD.
Основываясь на результатах предыдущего подраздела, сигнальную линию формируем с помощью простой скользящей средней, которая показала более высокую прибыльность на множестве проведенных тестов.
Проведем первоначальную оптимизацию МТС.
Результаты тестирования на стартовом сегменте данных представлены на диаграмме рисунка 8.14.

Рис.8.14.
Из полученных данных следует, что при стандартных параметрах MACD прибыльность торговой стратегии практически нулевая (тест номер 6). Отметим, что это мы уже видели из графиков, представленных на рисунках 8.5 и 8.6.
В выбранном диапазоне изменения оптимизационной переменной стратегия имеет два оптимума, при opt1=2.4 – прибыль 7123пп, и при кратном значении opt1=4.8 – прибыль 7247пп. Однако при opt1=4.8 количество проведенных на интервале тестирования сделок всего 30, т.е. на грани эмпирического минимума для достоверной оптимизации.

Рис.8.15.
Красным цветом на графике рисунка 8.15 изображен график эквити для стандартной MACD, синим – на первом оптимуме и зеленым – на втором оптимуме.
Несмотря на то, что прибыль в окрестности обоих оптимумов практически одинакова, характер изменения эквити для более медленного индикатора с opt1=4.8 выглядит более предпочтительным – меньше провалы и более плавный рост линии.
Циклическую оптимизацию проводить не будем, проверим ход кривых эквити для стандартного и «оптимальных» тестов на всем диапазоне сегментированных данных.

Рис.8.16.
В зоне второго оптимума оптимальное значение параметра оптимизации тоже немного уменьшилось на фоне полого максимума, т.е. в зоне оптимальных параметров стратегия в целом демонстрирует устойчивость во времени. Указанные обстоятельства еще раз подтверждают сделанный нами ранее вывод, что согласно объективным результатам тестирования скорость изменения цен (динамика рынка) постепенно возрастает.
При тестировании на всем диапазоне сегментированных данных также получена прибыль и для стандартной MACD, но в гораздо меньшем размере чем для оптимальных стратегий.

Рис.8.17.
Линией красного цвета по прежнему изображен график эквити для стандартной MACD, синим – на первом оптимуме и зеленым – на втором оптимуме. Тонкие линии синего и зеленого цвета соответствуют результатам первоначальной оптимизации, а широкие – оптимумам, полученным для всего диапазона сегментированных данных.
Из полученных данных следуют выводы:
1. Оптимизация, несомненно, улучшает характеристики MACD, причем в разы.
2. МТС сохраняет стабильность параметров во времени, но требует при ее применении проведения циклической оптимизации, поскольку параметры стратегии «уплывают».
Отметим, что полученные результаты соответствуют MACD со стандартным соотношением периодов скользящих средних, входящих в состав индикатора, и сигнальной линии. Но выше нами было показано, что это соотношение не является оптимальным. Проверим это тестированием и для случая изменяющегося масштаба MACD.
Используем торговые правила п.8.7.1, и добавим еще одну степень свободы: введем оптимизационную переменную, задающую период скользящей средней при вычислении сигнальной линии:
Buy Order: (Mov(C,12*opt1,E) - Mov(C,26*opt1,E)) > Mov((Mov(C,12*opt1,E) - Mov(C,26*opt1,E)), opt2*opt1,S);
Sell Order: (Mov(C,12*opt1,E) - Mov(C,26*opt1,E)) < Mov((Mov(C,12*opt1,E) - Mov(C,26*opt1,E)), opt2*opt1,S);
Sell Short Order: (Mov(C,12*opt1,E) - Mov(C,26*opt1,E)) < Mov((Mov(C,12*opt1,E) - Mov(C,26*opt1,E)), opt2*opt1,S);
Buy to Cover Order: (Mov(C,12*opt1,E) - Mov(C,26*opt1,E)) > Mov((Mov(C,12*opt1,E) - Mov(C,26*opt1,E)), opt2*opt1,S);
Сохраним диапазон переменной оптимизации в пределах от 0.5 до 6 с шагом 0.1, а диапазон переменной opt2 зададим в пределах от 5 до 50 с шагом 1.
Таким образом, теперь у нас изменяется и временной масштаб первоначального индикатора MACD, соотношение между параметрами MACD и сигнальной линии.
Проведем первоначальную оптимизацию МТС.
Результаты тестирования на стартовом сегменте данных после нескольких итераций с сокращением диапазона оптимизационных переменных представлены на диаграмме рисунка 8.18.

Рис.8.18.
Диапазон грубой оценки зоны экстремумов для opt1 составляет от 2 до 3.5, а для opt2 от 20 до 40.

Рис.8.19.
Из полученных данных следует, что оптимальные значения оптимизационных переменных для максимально прибыльной системы составляют: для переменной opt1=2.8, для переменной opt2=30.
Линия эквити не имеет значимых, по сравнению с диапазоном полученной прибыли, однако характеризуется участком малоприбыльной работы, хотя даже на этом участке прибыль МТС значительно превышает прибыль от применения стандартной MACD (практически нулевую и с большими просадками).

Рис.8.20.

Рис.8.21.

Рис.8.22.
Сравнение результатов для стандартной MACD (линия красного цвета) и данных, полученных в результате оптимизации (синяя линия), показывает неоспоримое преимущество разработанной МТС.
Прибыль оптимизированной стратегии значительно больше, размеры абсолютных просадок сравнимы, а размеры относительной просадки для оптимальной МТС меньше.
И еще один положительный фактор – параметры оптимальной стратегии сохранились неизменными на значительном временном интервале. Конечно, из этого не следует, что в дальнейшем нет необходимости производить периодическую оптимизацию и проверку параметров МТС, но этот факт свидетельствует в пользу достоверности полученных результатов.
В заключение приведем количественные характеристики результатов тестирования:
- профит - 17523пп;
- процент прибыльных сделок – 55.4%;
- отношение AW/AL – 2.28;
- профит-фактор – 2.83.
Представленные результаты показывают достаточно хорошие параметры МТС для работы в долгосрочном режиме. Отметим, что характеристики стратегии могут быть еще улучшены за счет применения стопов, с помощью которых ограничим размеры максимального убытка в сделке. Но этот вопрос мы будем рассматривать позднее в последующих разделах курса.
Индекс относительной силы (Relative Strength Index, RSI) еще один популярный индикатор осцилляторного типа, широко применявшийся и применяемый при интерпретации движений рынка. Рассмотрим возможности этого индикатора при построении МТС.
Для начала вспомним интерпретацию показаний индикатора при формировании торговых сигналов.
8.8.1. Формирование торговых сигналов при помощи индикатора RSI.
Индекс относительной силы (Relative Strength Index, RSI) - один из наиболее популярных осцилляторных индикаторов, разработанный же Дж. Уэллесом Уайлдером-младшим. Индикатор основан на раздельном вычислении положительных и отрицательных изменений цены и сравнении усредненных (сглаженных) показателей прироста и спада котировок.
Формула вычисления индекса относительной силы выглядит следующим образом:
RSI = 100 - [ 100 / ( 1 + RS) ],
где
RS = EMA(U,n)/EMA(D,n);
n - количество дней в периоде анализа (порядок RSI);
EMA(U,n) - экспоненциальная средняя с периодом n приростов цены U;
EMA(D,n) - экспоненциальная средняя с периодом n падений цены D.
Рекомендуемая автором величина n составляет 14, хотя многие используют RSI с более коротким периодом сглаживания, например 7 или 8 и другие, более низкие значения.
Применение индикатора RSI, пример которого приведен на рисунке 8.23, основано на использовании зон перекупленности/перепроданности, которые в стандартном варианте принято устанавливать на уровнях 70 и 30.

Рис.8.23.
Кроме того, для формирования торговых сигналов можно использовать и другие варианты, в частности дивергенцию осциллятора и графика цен, трендследящие индикаторы применительно к RSI (например, скользящую среднюю от индикатора по аналогу с сигнальной линией MACD) и другие стандартные приемы применения осцилляторных индикаторов рынка.
Дивергенцию по уже упоминавшимся выше причинам мы опускаем, поскольку условия формирования дивергенции плохо поддаются формализации, а вот остальные методы формирования торговых сигналов на основе RSI попробуем применить для построения торговых стратегий и протестировать эти стратегии.
Отметим, что нам нет необходимости строить для записи торговых правил пользовательский индикатор RSI, используя вышеприведенную громоздкую формулу, поскольку в Метасток уже есть соответствующая встроенная функция:1.84 Relative Strength Index (RSI) (Индекс относительной силы)(см. справочный раздел).
Формула типового пользовательского индикатора RSI будет иметь вид:
N1:=Input("Период",2, 50, 14);
RSI(N1);
70;
30;
Значение N1=14, принимаемое по умолчанию, соотвествует типовому варианту применения индикатора, предлагаемому разработчиком.
Воспользовавшись диалогом конструктора индикаторов строим пользовательский RSI и наносим его на график в отдельном окне (рис.8.24).

Рис.8.24.
Как мы видим, построенный нами индикатор (Мой RSI) ничем не отличается от встроенного индикатора Местасток, который приведен на том же графике внизу.
Этот пример иллюстрирует использование для формирования торговых сигналов показания RSI со стандартным (принимаемым по умолчанию) значением периода осциллятора 14 и с использованием стандартных зон перекупленности (выше 70) и перепроданности (ниже 30). Покупка производится когда осциллятор выходит из зоны перепроданности вверх, а продажа, когда осциллятор выходит из зоны перекупленности вниз.
Торговые правила для этого случая будут иметь вид:
Buy Order: Cross( RSI(14), 30 );
Sell Order: Cross( 70, RSI(14) );
Sell Short Order: Cross( 70, RSI(14) );
Buy to Cover Order: Cross( RSI(14), 30 );
Здесь нет параметров оптимизации, поэтому можно тестировать стратегию сразу на всем диапазоне сегментированных исторических данных.

Рис.8.25.
Вот тебе, бабушка, и Юрьев день!
Кривая эквити была бы хороша, если бы она была направлена вверх, а не вниз. Но, к сожалению, торговая стратегия генерирует преимущественно убытки.
Как после этого относится к традиционным оборотам аналитических публикаций, в которых содежатся фразы типа «…а RSI вышел из зоны перекупленности, что свидельствует о развороте рынка и переходе к нисходящему движению»?
И как вообще относится к индикатору?
Может у нас в тесте что-нибудь тестируется неправильно?
Проверим в укрупненном масштабе формирование торговых сигналов и прохождение сделок.

Рис.8.26.
М-да.
Торговая стратегия на основе классического варианта применения индикатора RSI с классическими значениями параметров все время стремится работать против тренда. А стоит ей изменить направление сделки, как тут же меняется и направление тренда, причем таким образом, что опять идут сплошные убытки.
Попробуем варьировать такой параметр, как период индикатора.
Торговые правила «зеркальной» стратегии:
Buy Order: Cross( 70, RSI(14) );
Sell Order: Cross( RSI(14), 30 );
Sell Short Order: Cross( RSI(14), 30 );
Buy to Cover Order: Cross( 70, RSI(14) );
Параметров оптимизации нет, поэтому тестируем стратегию на всем диапазоне сегментированных исторических данных.

Рис.8.27.
Однако сюрприз.
«Зеркальная» торговая стратегия на основе RSI действительно оказалась зеркальной и обеспечила прибыль, сравнимую с убытком исходной торговой стратегии.
Честно говоря, такое встречается нечасто, но запомним этот факт и возьмем в арсенал приемов использование зеркальных торговых правил для убыточных торговых стратегий.
Если бы мы использовали индикатор RSI по правилам, т.е. так как написано в книгах, то мы получили бы на инструменте EURUSD сплошные убытки. А вот попытка действий от противного принесла бы прибыль, причем достаточно удовлетворительного размера, 13054пп.
Количественные характеристики теста:
- профит - 13054;
- общее количество сделок – 26;
- процент прибыльных сделок – 69.2%;
- отношение AW/AL – 2.06;
- профит-фактор – 4.63.
Плюсы теста:
- сравнительно высокий процент прибыльных сделок;
- превосходное значение параметра профит-фактор.
Минусы теста стратегии:
- маловато сделок;
- есть просадки, обусловленный крупными убыточными (с такими просадками можно бороться использованием ордеров стоп-лосс разумного, не очень маленького, размера).
Однако вернемся к вопросу оптимизации МТС на основе типового применения осциллятора RSI.
Вместо фиксированного значения периода подставляем в торговые правила переменную оптимизации opt1. Уровни перекупленности/перепроданности пока что не трогаем, оставляя их значения классическими.
Торговые правила для этого случая будут иметь вид:
Buy Order: Cross( RSI(opt1), 30 );
Sell Order: Cross( 70, RSI(opt1) );
Sell Short Order: Cross( 70, RSI(opt1) );
Buy to Cover Order: Cross( RSI(opt1), 30 );
Предварительный диапазон значений переменной оптимизации зададим от 3 до 30, а дальше будем смотреть по результатам теста.
Поскольку в торговой стратегии присутствует переменный параметр, тестируем МТС на стартовом сегменте данных, а проверять будем на данных вне выборки.

Рис.8.28.
Некоторый рост значений профита при больших значениях периода достигнут за счет катастрофического (до 1-3) снижения количества сделок за счет ухода сглаженного индикатора в диапазон между сигнальными уровнями и фактической трансформации МТС в стратегию «купи и держи».

Рис.8.29.
Причем, как ни удивительно, оптимальным значением периода зеркальной стратегии оказалось значение, принимаемое по умолчанию, т.е. 14, которое мы уже проверяли для типовой МТС на основе RSI.
В общем, у неподготовленного читателя может возникнуть впечатление, что индикатор RSI придуман во вред трейдеру, хотя на самом деле такой цели у автора индикатора не было.
Дело в том, что МТС лучше торгуют тренды, а как мы помним из «Краткого курса начинающего трейдера», на трендовом рынке для открытия позиции иногда применяется пересечение осциллятором в направлении тренда срединной линии, т.е. уровня 50.
Попробуем проверить, как поведет себя торговая стратегия для этого случая.
Для этого запишем торговые правила в виде:
Buy Order: Cross( RSI(opt1), 50 );
Sell Order: Cross( 70, RSI(opt1) );
Sell Short Order: Cross( 50, RSI(opt1) );
Buy to Cover Order: Cross( RSI(opt1), 30 );
Поскольку в торговых правилах сохранена оптимизационная переменная, то тестирование будем проводить на стартовом сегменте данных с диапазоном изменения переменной от 3 до 30.
Дело в том, что из общих правил применения осцилляторов известно, что для корректного применения любого осциллятора в режиме использования для генерации торговых сигналов зон перекупленности/перепроданности необходимо для каждого рынка устанавливать положение этих зон опытным путем.
Одним из эмпирических критериев правильного расположения этих уровней является требование, чтобы рынок примерно 95% времени находился внутри диапазона уровней и примерно 5% вне диапазона.
По этой причине общие для всех рынков и всех таймфреймов одного рынка правила (для RSI это уровни 30 и 70) вряд ли будут работоспособными.
Проведем тестирование с торговыми правилами, модифицированными следующим образом:
Buy Order: Cross( RSI(opt1), opt2 );
Sell Order: Cross( 100-opt2, RSI(opt1) );
Sell Short Order: Cross( 100-opt2, RSI(opt1) );
Buy to Cover Order: Cross( RSI(opt1), opt2 );
В данном варианте диапазон перекупленности/перепроданности изменяется симметрично сверху и снизу.
Зададим следующий диапазон изменения оптимизационных перемененных:
- для opt1 – от 3 до 30 с шагом 1;
- для opt2 – от 1 до 49 с шагом 1.
Результаты тестирования представлены на рисунке 8.31.
Рис.8.31.
Что ж, уже лучше. По крайней мере прибыль для оптимальных тестов находится на уровне 78 фигур в пределах стартового сегмента исторических данных, что близко к результатам лучших систем, рассмотренных ранее.
Однако необходимо установить, насколько достоверен полученный результат, можно ли ему доверять и не является ли он результатом подгонки из-за случайного соответствия комбинации параметров переменных оптимизации случайной же конфигурации рынка в пределах стартового сегмента данных.
Для начала отбросим варианты с количеством сделок 15 и меньше, как обладающие недостаточной достоверностью и определим на оставшемся массиве данных границы оптимума по одной из переменных оптимизации (рис.8.32).
Обычно выбирается та переменная, для которой оптимум более выражен, в нашем случае это переменная opt1.
Рис.8.32.
Оптимум расположен в области малых значений периода осциллятора, а диапазон оптимума ограничен сверху значением, расположенным в окрестности opt1=14.
Отбрасываем из диаграммы все результаты с значение opt1=15 и больше и переходим к рассмотрению результатов, упорядоченных по переменной opt2, проводя аналогичную процедуру определения диапазона оптимума и отбрасывая результаты с данными вне этого диапазона.
После нескольких итераций остаются результаты в диапазоне переменных от 4 до 9 для opt1 и от 30 для 40 для opt2.
Так как полученный массив данных может быть неполным из-за возможного удаления результатов с малым количеством сделок, проводим повторное тестирование для уточненных диапазонов изменения переменных оптимизации.
Результаты тестирования, упорядоченные по размеру полученной прибыли, представлены на рисунке 8.33.
Рис.8.33.
Анализ полученных данных показал, что в выборке не появились новые тесты, т.е. все комбинации переменных обеспечивают достаточное количество сделок.
Оптимальная торговая стратегия в рассмотренном варианте изменения положения уровней перекупленности/перепроданности реализуется при периоде RSI равном 5 и при значениях уровней перекупленности/перепроданности 65 и 35 соответственно.
Это неклассический вариант применения осциллятора обеспечивает на стартовом сегменте данных прибыль свыше 78 фигур с большим количеством сделок и следующими количественными характеристиками теста:
Количественные характеристики теста:
- профит - 7856;
- общее количество сделок – 132;
- процент прибыльных сделок – 65.2%;
- отношение AW/AL – 0.90;
- профит-фактор – 1.69.
Перед тем, как приступить к тестированию стратегии на данных «вне выборки» рассмотрим поведение линии эквити оптимизированной торговой стратегии, представленной на рисунке 8.34.
Рис.8.34.
Анализ зависимостей, представленных на рисунке 8.34, показывает, что на данных выборки исследуемая торговая стратегия обеспечивает рост прибыли во всем диапазоне данных, однако характеризуется просадками. Фактор восстановления в пределах выборки составил примерно 4.
Характеристики системы по плавности хода эквити не блестящие, но вполне удовлетворительные для работы в составе портфеля стратегий. Но это при условии, если МТС покажет себя удовлетворительно на данных вне выборки.
Результаты анализа МТС на данных «вне выборки» представлены на рисунке 8.35.
Рис.8.35.
Ход линии эквити не внушает абсолютно никакого оптимизма. Налицо случайность полученного на стартовом сегменте данных результата, так как вне пределов стартового сегмента система начала приносить убытки.
Более того, как показывают результаты, представленные на диаграмме рисунка 8.36, значимой прибыли не обеспечивает ни одна комбинация параметров МТС из «оптимального» диапазона изменения переменных оптимизации.
Рис. 8.36.
Так что с МТС, основанной на рассмотренных выше правилах индикатора RSI пожалуй придется распрощаться, как с бесперспективной.
Желающие могут попробовать вариант с асимметричным размещением уровней перекупленности/перепроданности для открытия и закрытия позиции (это потребует введения еще одной оптимизационной переменной), но это уже самостоятельно.
Торговые правила для этого случая можно записать в виде:
Buy Order: Cross( RSI(opt1), opt2 );
Sell Order: Cross( 100-opt3, RSI(opt1) );
Sell Short Order: Cross( 100-opt2, RSI(opt1) );
Buy to Cover Order: Cross( RSI(opt1), opt3 );
8.9. МТС на основе стохастического осциллятора.
8.9.1. Принцип построения стохастического осциллятора.
Стохастический осциллятор (сокращенно - стохастик) - это своеобразный индикатор скорости цены.
Цель стохастика - идентификация ценовых тенденций и поворотов путем слежения за размещением цен закрытия внутри последней серии максимумов и минимумов рынка.
Стохастический осциллятор вычисляется по скользящему окну данных, поэтому в результате отбрасывания старых данных его значения могут скачкообразно изменяться, что является недостатком при построении торговых систем. Индикатор популярен среди трейдеров и позволяет, наряду с другими индикаторами, получать данные о рыночных тенденциях.
Стохастический осциллятор вычисляется по следующей формуле:
K = 100 * (C - Ln)/(Hn - Ln),
где
K - положение текущей цены внутри последнего по времени ценового диапазона;
С - текущая цена закрытия;
Ln - минимум цены за последние n периодов;
Hn - максимум цены за последние n периодов;
n - любое число, обычно в диапазоне от 5 до 21.
Далее K дважды сглаживается с помощью простой скользящей средней длиной 3 периода и, соответственно, получаем %K и %D.
Графики %K и %D используются для формирования торговых сигналов.
Таким образом, стохастический осциллятор показывает положение цены закрытия внутри ценового диапазона за n последних периодов, нормированное к ширине этого диапазона и вычисляемое в процентах от ширины диапазона.
Значение стохастика, равное нулю, означает, что цена находится на нижней границе диапазона за n последних периодов, а значение стохастика 100свидетельствует о нахождении цены на верхней границе диапазона.
8.9.2. Формирование торговых сигналов при помощи стохастического осциллятора.
Интерпретация сигналов проводится в соответствии с значениями %K и %D.
График стохастического осциллятора представлен на рисунке 8.37.
Рис.8.37. График стохастического осциллятора.
Основные правила принятия решений при анализе стохастического осциллятора:
- сигналы выхода из зон перекупленности -70-80 для %K и %D, и перепроданности – 30-20 для %K и %D;
- быстрая линия (%К) пересекает медленную (%D) снизу вверх - покупка;
- быстрая пересекает медленную сверху вниз - продажа;
- направления обоих линий совпадают - дают направление динамики тренда;
- линии разнонаправлены - непонятная ситуация;
- сочетание пересечений и зон перекупленности (перепроданности).
Дополнительно при «ручной» торговле могут использоваться сигналы дивергенции.
При применении стохастика также необходимо учитывать, что он дважды реагирует на данные - при входе нового значения в окно анализа и при выходе данных из окна анализа. В рамках общих принципов построения МТС рекомендуется избегать таких индикаторов и не использовать их без крайней необходимости, однако тот факт, что при вычислении элементов индикатора используется двойное сглаживание данных уменьшает влияние прямоугольного временного окна, определяющего диапазон последних n периодов. А тот факт, что для формирования торговых сигналов сравниваются две сглаженных зависимости, еще больше уменьшает негативное влияние отмеченного недостатка.
Отметим, что стохастик позволяет отображать индикатор для больших временных интервалов на графиках с малыми интервалами, что может уменьшить проскальзывание и улучшить сглаживание шумов. Для этого достаточно лишь ввести в формулы масштабный коэффициент, отображающий соотношение между временными интервалами.
8.9.3. Пользовательский индикатор.
Формула типового пользовательского индикатора стохастик, построенная с использованием встроенной функции «1.90 Stochastic Oscillator (Стохастический осциллятор)» будет иметь вид:
N1:=Input("Период",2, 50, 5);
N2:=Input("Замедление",2, 30, 3);
Stoch(N1,N2);
Mov(Stoch(N1,N2),N2,S);
80;
20;
Значения N1=5, N2=3, принимаемые по умолчанию, соответствуют типовому варианту применения индикатора, предлагаемому разработчиком. Скользящая средняя в формуле индикатора рассчитывает замедление %D.
Пользуясь диалогом конструктора индикаторов, строим пользовательский индикатор и наносим его на график в отдельном окне (рис.8.38).
Рис.8.38.
С помощью переменных N1 и N2, при необходимости, можно настроить параметры индикатора на необходимый вариант торговой стратегии.
Отметим, что записать формулу индикатора в виде, который представлен в пункте 8.9.1, тоже не составляет никакого труда.
8.9.4. Торговая идея и торговые правила в классических вариантах применения стохастического осциллятора.
Вариантов применения стохастика в торговых стратегиях много.
Мы последовательно рассмотрим типовые случаи генерации торговых сигналов стохастического осциллятора, традиционно начиная с неоптимизированного индикатора с постоянными параметрами. И начнем с использования зон перекупленности/перепроданности осциллятора.
8.9.4.1. Зоны перекупленности/перепроданности для %K.
Этот пример иллюстрирует использование для формирования торговых сигналов показания стохастического осциллятора со стандартными (принимаемым по умолчанию) значениями периода N1=5 и замедления N2=3.
Покупка производится когда осциллятор выходит из зоны перепроданности вверх, а продажа, когда осциллятор выходит из зоны перекупленности вниз.
Торговые правила для этого случая будут иметь вид:
Buy Order: Cross( Stoch(5,3), 20 );
Sell Order: Cross( 80, Stoch(5,3));
Sell Short Order: Cross(80, Stoch(5,3));
Buy to Cover Order: Cross( Stoch(5,3), 20 );
Параметров оптимизации нет, поэтому тестируем стратегию сразу на всем диапазоне сегментированных исторических данных.
Результаты теста представлены на рисунке 8.39.
Рис.8.39.
Что же. Вариант зон перекупленности/перепроданности с типовыми значениями параметров стохастического осциллятора даёт убытки.
Попробуем тот же вариант с замедлением %D.
8.9.4.1. Зоны перекупленности/перепроданности для %D.
Торговые правила для этого случая будут иметь вид:
Buy Order: Cross( Mov(Stoch(5,3),3,S), 20 );
Sell Order: Cross( 80, Mov(Stoch(5,3),3,S));
Sell Short Order: Cross( 80, Mov(Stoch(5,3),3,S));
Buy to Cover Order: Cross( Mov(Stoch(5,3),3,S), 20 );
Параметров оптимизации тоже нет, поэтому тестируем стратегию сразу на всем диапазоне сегментированных исторических данных.
Результаты этого теста (рис.8.40) еще хуже.
Рис.8.40
Опять мы сталкиваемся с вариантом, когда стандартная интерпретация показаний индикатора со стандартными значениями параметров в долгосрочной перспективе приводит к убыткам.
К сожалению и в этом случае метод «посмотри, что показывает индикатор и сделай наоборот» дает лучшие результаты (рис.8.41)
Рис.8.41.
Результаты тестирования «зеркальной» стратегии, представленные на рисунке 8.41, в отличие от традиционного подхода с использованием зон перекупленности/перепроданности и в этом случае оказываются лучше типовых правил применения индикатора.
Причина этого кроется в несоответствии параметров индикатора и параметров динамики рынка, а соответствующую настройку стратегии и призвана решать оптимизация.
Кроме того, необходимо учитывать тот факт, что наиболее прибыльные торговые стратегии ориентированы на работу по тренду, а осциллятор по своей природе реализует генерацию контр-трендовых сигналов (за исключением уникального по своим свойствам индикатора MACD, который сочетает в себе свойства и осциллятора и трендового индикатора).
Поэтому осцилляторы обычно применяют не изолированно, а в сочетании с трендовыми индикаторами.
Некоторые варианты такого использования осцилляторов мы рассмотрим в последующих главах, а сейчас попробуем «выжать» из стандартного стохастика все, на что он способен в изолированном применении.
8.9.4.3. Сочетание пересечения %K и %D и зон перекупленности/перепроданности.
В этом случае покупки производятся, когда быстрая линия стохастика %K пересекает медленную линию %D снизу вверх в зоне перепроданности.
Соответственно условием продаж является пересечение быстрой линией стохастика %K медленной линии %D сверху вниз в зоне перекупленности.
Торговые правила для этого случая будут иметь вид:
Buy Order: Cross(Stoch(5,3), Mov(Stoch(5,3),3,S))*( Stoch(5,3) <20);
Sell Order: Cross( Mov(Stoch(5,3),3,S), Stoch(5,3))*( Stoch(5,3) > 80);
Sell Short Order: Cross( Mov(Stoch(5,3),3,S), Stoch(5,3))*( Stoch(5,3) > 80);
Buy to Cover Order: Cross(Stoch(5,3), Mov(Stoch(5,3),3,S))*( Stoch(5,3) <20);
Функция Cross определяет условие пересечения линий, а логические выражения в скобках задают зоны расположения линий индикатора, в которых факт пересечения является руководством к действию дл МТС.
Параметров оптимизации опять нет, поэтому тестируем стратегию сразу на всем диапазоне сегментированных исторических данных.
Результаты тестирования представлены на рисунке 8.42.
Рис.8.42.
Некоторое улучшение заметно, но оно проявилось только в уменьшении размера убытка. О прибыли речь не идет.
Какой предварительный вывод.
Ловить развороты против тренда с помощью показаний осцилляторов, не подтвержденных индикаторами тренда, себе дороже.
Локальных экстремумов рынка, на которых осциллятор будет генерировать сигналы разворота, много, а фактический разворот всего один.
Улучшение ситуации может быть достигнуто только в случае точного соответствия параметров осциллятора параметрам динамики конкретного рынка, которое может быть достигнуто (а может быть и не достигнуто) с помощью оптимизации параметров стратегии.
8.9.5. Оптимизация торговых стратегий на основе стохастика.
8.9.5.1. Зоны перекупленности/перепроданности для %K с оптимизацией по периоду.
Этот пример иллюстрирует использование для формирования торговых сигналов показания стохастического осциллятора со стандартными (принимаемыми по умолчанию) значениями периода N1=5 и замедления N2=3.
Торговые правила для МТС с оптимизацией будут иметь вид:
Buy Order: Cross( Stoch(5*opt1,3*opt1), 20 );
Sell Order: Cross( 80, Stoch(5*opt1,3*opt1));
Sell Short Order: Cross((80, Stoch(5*opt1,3*opt1));
Buy to Cover Order: Cross( Stoch(5*opt1,3*opt1), 20 );
В приведенных торговых правилах мы сохранили пропорции между периодом стохастика и значением замедления.
Диапазон оптимизационной переменной для первоначальной оптимизации на стартовом сегменте зададим в пределах от 1 до 20 с шагом 1, а далее будем уточнять по мере анализа полученных результатов.
Диаграмма с результатами тестирования представлена на рисунке 8.43.
Рис.8.43.
Из представленных данных следует, что нам удалось найти режим, в котором стохастический осциллятор обеспечивает прибыльные результаты, но параметры стохастика для оптимума в 12 раз (!) больше тех, которые предполагаются по умолчанию.
Однако еще не факт, что полученные результаты будут достоверными, так как количество сделок для оптимального теста всего 17, что, в общем-то, недостаточно. Кроме того, необходимо проанализировать зависимость линии эквити от времени.
График эквити для оптимального теста представлен на рисунке 8.44.
Рис.8.44.
В принципе все не так плохо. Прибыль достаточна, качественная оценка величины провалов и фактор восстановления системы тоже вполне удовлетворительны. Но это на данных выборки. Мы помним, что случилось с МТС на основе RSI на данных вне выборки – стратегия полностью утратила прибыльность
Проверим на данных вне выборки и эту стратегию.
Диаграмма результатов теста для всего диапазона сегментированных данных представлена на рисунке 8.45.
Рис.8.45.
Положение оптимума относительно значения переменной оптимизации осталось практически неизменным, как и размер максимальной прибыли стратегии.
МТС с изолированным стохастиком при стандартных значениях параметров (opt1=1) дает убытки. Но и прибыль при оптимальных значениях параметров не выросла по сравнению с результатами стартового сегмента данных, несмотря на то, что интервал тестирования вырос в два с лишним раза.
Графики эквити для оптимизированных стратегий представлены на рисунке 8.46.
Рис.8.46.
За пределами интервала первоначальной оптимизации, который ограничен вертикальной линией, не дают прибыли ни стратегия, оптимизированная на стартовом сегменте данных (кривая синего цвета), ни стратегия, оптимизированная на всем интервале сегментированных данных (зависимость, изображенная красной линией).
Проверять работу в аналогичном режиме работу стратегии, основанной на использовании %D, по-видимому, нет необходимости.
Итак, оптимизация по периоду стохастика и величине замедления не дала положительных результатов. Т.е. и этот индикатор в случае изолированного применения не обеспечивает прибыльной торговли и может служить только вспомогательным, вторичным индикатором для стратегий, основанных на трендовых инструментах.
8.9.5.2. Стохастик – оптимизация зон перекупленности/перепроданности и периода.
Попробуем дополнительно варьировать ширину зон перекупленности/перепроданности.
Торговые правила для МТС с оптимизацией для этого случая будут иметь вид:
Buy Order: Cross( Stoch(5*opt1,3*opt1), opt2 );
Sell Order: Cross( 100-opt2, Stoch(5*opt1,3*opt1));
Sell Short Order: Cross((100-opt2, Stoch(5*opt1,3*opt1));
Buy to Cover Order: Cross( Stoch(5*opt1,3*opt1), opt2 );
По-прежнему сохранены пропорции между периодом стохастика и значением замедления.
Диапазон оптимизационной переменной для первоначальной оптимизации на стартовом сегменте зададим в пределах от 1 до 20 с шагом 1, диапазон переменной opt2 в пределах от 1 до 49 с шагом 1.
Результаты тестирования с ограниченными диапазонами оптимизационных переменных, локализованных в окрестности оптимума стратегии, представлены на диаграмме рисунка 8.47.
Рис.8.47.
Прибыль оптимизированной стратегии возросла, однако следует посмотреть на ход линии эквити в пределах выборки и вне выборки.
Кроме того количество проведенных сделок (15 транзакций) слишком незначительно для того, чтобы судить об устойчивости торговой стратегии и достоверности результатов тестирования.
Рис.8.48.
Предварительная оценка хода графика эквити, который представлен на рисунке 8.48, вполне удовлетворительна. Однако, как мы помним, это результат на данных выборки, т.е. он может носить случайный характер. Для достоверной оценки возможностей стратегии перейдем в данным вне выборки.
Диаграмма результатов теста для всего диапазона сегментированных данных представлена на рисунке 8.49.
Рис.8.49.
Положительной момент - положение оптимума относительно значения переменной оптимизации осталось практически неизменным, но с прибылью опять фиаско. Прибыль осталась практически неизменной, а для комбинации переменных с оптимальными значениями параметров для стартового сегмента данных прибыль даже уменьшилась. И это при при существенно расширенном временном интервале данных.
Количество сделок и на всем диапазоне сегментированных данных слишком мало.
Рис.8.50.
Графики эквити для оптимизированных стратегий представлены на рисунке 8.50.
За пределами интервала первоначальной оптимизации, который ограничен вертикальной линией, не дают прибыли ни стратегия, оптимизированная на стартовом сегменте данных (кривая синего цвета), ни стратегия, оптимизированная на всем интервале сегментированных данных (зависимость, изображенная красной линией).
Таким образом, рассмотренные нами типовые варианты применения изолированного осциллятора стохастик являются тупиковыми и для применения в МТС в чистом виде, по-видимому, непригодны.
По крайней мере, в предыдущих разделах был рассмотрен ряд торговых стратегий, например на основе скользящих средних, моментума, MACD и др., результаты которых значительно лучше.
Так что пока отложим стохастический осциллятор в сторону, по крайней мере до рассмотрения многокомпонентных торговых стратегий в последующих разделах курса.
8.9.5.3. Оптимизация пересечения %K и %D и зон перекупленности/перепроданности.
Итак, оптимизация по периоду стохастика и величине замедления не дала положительных результатов. Т.е. и этот индикатор в случае изолированного применения не обеспечивает прибыльной торговли и может служить только вспомогательным, вторичным индикатором для стратегий, основанных на трендовых инструментах.
Чтобы не оставлять пробелов в исследовании рассмотрим также случай оптимизированной стратегии, использующей сочетание зон перекупленности/перепроданности и пересечения %K и %D. Т.е. случай, при котором покупки производятся, когда быстрая линия стохастика %K пересекает медленную линию %D снизу вверх в зоне перепроданности, а продажи осуществляются, когда быстрая линия стохастика %K пересекает медленную линию %D сверху вниз в зоне перекупленности.
Торговые правила для этого случая будут иметь вид:
Buy Order: Cross(Stoch(5*opt1,3*opt1), Mov(Stoch(5*opt1,3*opt1),3*opt1,S))*( Stoch(5*opt1,3*opt1) < opt2);
Sell Order: Cross( Mov(Stoch(5*opt1,3*opt1),3*opt1,S), Stoch(5*opt1,3*opt1))*( Stoch(5*opt1,3*opt1) > (100-opt2));
Sell Short Order: Cross( Mov(Stoch(5*opt1,3*opt1),3*opt1,S), Stoch(5*opt1,3*opt1))*( Stoch(5*opt1,3*opt1) > (100-opt2));
Buy to Cover Order: Cross(Stoch(5*opt1,3*opt1), Mov(Stoch(5*opt1,3*opt1),3*opt1,S))*( Stoch(5*opt1,3*opt1) < opt2);
Функция Cross определяет условие пересечения линий, а логические выражения в скобках задают зоны расположения линий индикатора, в которых факт пересечения является руководством к действию для МТС.
Диапазон оптимизационных переменных для первоначальной оптимизации зададим в пределах:
- opt1 - от 1 до 15;
- opt2 - от 5 до 46.
Результаты первоначальной оптимизации на стартовом сегменте данных представлены на диаграмме рисунка 8.51 (данные незначительно обработаны для селекции оптимума МТС).
Рис.8.51.
Оптимальные значения оптимизационных переменных составляют op1=13 и opt2=32, т.е. период стохастика существенно отличается от типового варианта его применения.
Количество проведенных сделок 15, т.е. недостаточно для достоверной оценки параметров торговой стратегии.
График линии эквити МТС представлен на рисунке 8.52.
Рис.8.52.
Из представленной зависимости можно видеть, что оптимизированная торговая стратегия на стартовом сегменте данных чередует продолжительные участки прибыльной и убыточной работы. Однако сделок мало и вряд-ли окажется возможным использовать подобный метод генерации торговых сигналов в практической работе. Тем более, что это интервал данных, на котором проводилась оптимизация стратегии.
Исследование МТС на данных «вне выборки» (диаграмма рисунка 8.53) принесло две новости: хорошую и плохую.
Рис.8.53.
Хорошая новость. Оптимальные параметры стратегии остались неизменными (opt1=13 и opt2=32), т.е. результаты оптимизации позволили выявить наилучший вариант применения стохастика.
Плохая новость – прибыль и количество сделок МТС выросли незначительно.
Анализ линии эквити, представленной на графике рисунка 8.54, тоже не дает поводов для излишнего оптимизма. Несмотря на то, что прибыль от применения торговой стратегии, в конечном счете, растет, затяжные периоды слива и малое количество сделок вряд-ли оправдают целесообразность практического применения такой МТС.
Рис.8.54.
Напомним, что индикатор стохастик в оптимизированной МТС многократно отличается по своим параметрам от рекомендуемых типовых вариантов его применения.
Типовые варианты, которые мы исследовали выше, дают результаты, которые еще хуже.
8.10. Резюме.
Всего мы рассмотрели четыре примера применения индикаторов осцилляторного типа:
- моментум (в подразделе 4.6, когда мы рассматривали примеры построения и тестирования торговых систем);
- MACD;
- RSI;
- стохастический осциллятор.
Два первых варианта показали после оптимизации в условиях теста на конкретном инструменте и при конкретных временных рамках интервалов тестирования сравнительно неплохие результаты. Построенные на основе этих индикаторов торговые стратегии потенциально пригодны для применения в качестве рабочих МТС.
Два последних индикатора, RSI и стохастический осциллятор, на стартовом сегменте данных обеспечили положительный результат, но на данных «вне выборки» не сохранили прибыльность торговых стратегий даже при изменении параметров МТС.
Причина столь разного поведения индикаторов, возможно, кроется в принципах их построения.
И моментум и MACD косвенно связаны с трендовыми характеристиками рынков и поэтому лучше выделяют тренды произвольной длительности и разной динамики, характеризующей процесс их развития.
Напротив, и RSI и стохастический осциллятор содержат явную жесткую настройку на некоторые периоды, которые могут на отдельных участках соответствовать рынку, а на других нет. Поэтому для индикаторов данного типа возрастает роль случайности в результатах применения МТС, особенно с учетом принципиального отсутствия в рыночных процессах жесткой регулярности и периодичности (не путать с цикличностью!).
Так что при построении МТС на индикаторах осцилляторного типа необходимо особенно тщательно провести исследование системы на этапах и предварительной и циклической оптимизации, чтобы избежать «переподгонки» и не оказаться в ситуации, когда на тестовой выборке МТС дает высокую прибыль, а вне выборки не менее высокие убытки.
Комментариев нет:
Отправить комментарий