HOME

Оптимизация торговой системы методом "Обратного опережающего тестирования" (reverse-out-of-sample).

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

Для примера была выбрана торговая система на основе индикатора Anchored Momentum, сделки только лонг, без элементов Money&Risk Management. Сигнал на открытие длинной позиции появляется при пересечении индикатором нулевой линии вверх, сигнал на закрытие длинной позиции появляется при пересечении индикатором нулевой линии вниз. Для уменьшения количества "ложных" сигналов при боковом движении цен, вокруг нулевой линии создан дополнительный зазор (Factor). Код системы в формате Easy Language представлен ниже:

Inputs: MomPer(5), EmaPer(3), Factor(0.5);

If 100*((XAverage(Close,EmaPer)/Average(Close,(2*MomPer)+1))-1) Cross Over Factor Then Buy at Close;

If 100*((XAverage(Close,EmaPer)/Average(Close,(2*MomPer)+1))-1) Cross Below -Factor Then ExitLong at Close;

В системе оптимизировались 3 параметра:

Параметры стратегии: Капитал на сделку $1000, без реинвестирования прибыли, без учета комиссии и проскальзывания, 1 лот = 1 акция.

Тестирование торговой системы проводилось с помощью программы Omega Research ProSuite 2000i.

В качестве данных для тестирования были выбраны дневные итоги торгов по РАО ЕЭС в системе РТС, в период с 25.10.1995 по 14.12.2000. Данные были разделены на два периода примерно по 3 года в каждом. Первый период - с 01.10.1997 по 14.12.2000 (основная выборка), второй период - с 25.10.1995 по 01.10.1998 (тестовая выборка). Видно, что данные в основной и тестовой выборке имеют общий период с 01.10.1997 по 01.10.1998. Это было сделано по двум причинам: Во-первых, мы имеем данные с РТС только за 5 лет, а тестирование на периоде меньше 3 лет может дать неустойчивый результат. Во-вторых, в качестве общего периода, выбраны далеко не лучшие времена для нашего фондового рынка, что, как мне кажется, "добавляет перца" в испытания и укрепляет систему на возможность повторения худшего сценария.

Первый этап. Оптимизация параметров торговой системы на данных из основной выборки.

На данных из основной выборки (период с 01.10.1997 по 14.12.2000) была проведена оптимизация параметров торговой системы MomPer, EmaPer и Factor, на условиях изложенных выше. После проведенной оптимизации были получены следующие результаты (первые 20 строк отчета по максимальным значениям NetProfit):

Результаты оптимизации были проверены "на поверхность" с помощью программы 3D1 v1.3 , после чего, в качестве оптимальных, были приняты следующие значения: MomPer = 5, EmaPer = 3, Factor = 0.5.

Финансовые результаты тестирования системы с данными значениями параметров представлены ниже:

Второй этап. Проверка торговой системы на тестовой выборке (за пределами основной выборки).

Теперь необходимо проверить, как торговая система с фиксированными параметрами, полученными на основной выборке, будет вести себя на данных из тестовой выборки (период с 25.10.1995 по 01.10.1998). Полученные финансовые результаты представлены ниже:

Кроме процента прибыльных сделок и соотношения MaxConsecWin/MaxConsecLoss, остальные параметры оказались не хуже, а некоторые даже лучше, чем при испытании на тестовой выборке. Можно признать, что значения параметров системы, полученные при оптимизации на основной выборке, достаточно хорошо работают и на тестовой выборке, что говорит о их вероятной устойчивости.

Наконец, осталось проверить, какие результаты покажет торговая система с фиксированными значениями параметров на всем периоде испытаний (с 25.10.1995 по 14.12.2000):

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

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

Метод "обратного опережающего тестирования" (reverse-out-of-sample) является лишь одним из способов уменьшить вероятность подстраивания под кривую цен (over curve fitting), и должен применяться в комплексе с другими методами испытаний торговых систем.

(с) konkop 2000

PS Одно важное замечание. При оптимизации этой торговой системы с диапазонами опт. параметров, которые я использовал, могут возникнуть ситуации, когда значение EmaPer (периода сглаживания) больше чем 2*MomPer+1 (два периода Momentum + 1). В таком случае логика системы может "перевернуться" (индикатор будет расти, когда цены падают и наоборот). Для краткости изложения я не рассматривал такие варианты, просто не принимая их в расчет. Но за этим необходимо следить. Так, например, известный "убийца систем" Eastman Kodak дает очень неплохие результаты именно в "перевернутом" варианте системы (покупая, когда надо продавать, и продавая, когда надо покупать).

HOME

 

 

 

Hosted by uCoz