Оптимизация торговых систем

  • Автор темы Автор темы FXWizard
  • Дата начала Дата начала

FXWizard

Гуру форума
Оптимизация торговых систем

В одной из предидущих статей я отмечал, что средний человек имеет наилучшие шансы стать удачливым трейдером в том случае, если он или она применяет 100% механический подход. Это единственный надежный способ уменьшить эмоциональные воздействия, которые рано или поздно разрушают всех трейдеров. Это также единственный путь, позволяющий оценить ваш метод торговли на прибыльность на основании уже существующих исторических данных. Отбросьте надежду найти когда-либо "совершенную систему". Совершенная система этого месяца может принести потери в следующий. Совершенно очевидно, что она будет иметь много сложных периодов в будущем. Так же как каждый трейдер и каждая методология имеет период потерь, так и каждая торговая система, внезависимости от того, насколько удачно она создана, будет иметь периоды, когда она не сможет успешно торговать.

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

При создании системы следует остерегаться ловушки over-curve-fitting to back data (подгонки под исторические данные). Чем более вы подгоняете свою систему к историческим данным для улучшения ее производительности, тем меньше вероятность того, что она будет торговать с прибылью в будущем. Этот момент очень тяжел для восприятия начинающих трейдеров. Они ожидают, что метод, хорошо работавший в прошлом, будет так же хорошо работать в будущем. Прибыльность в прошлом не подогнанной под исторические данные торгововой системы только приблизительно соответствует (я подчеркиваю это - только приблизительно) прибыльности в будущем.

Наилучшим способом эффективно противостоять подгонке системы под исторические данные - это убедиться, что ваша система работает на многих рынках с одними и теми же параметрами. Успешные системные трейдеры используют одни и те же параметры систем на разных рынках не взирая на то, что это кажется противоестественным. Если не верите мне, почитайте две книги Jack Schwager. Jack сам управлял деньгами используя систему, которая имела одни и те же параметры на всех рынках.

Чем большее количество рынков сможет торговать прибыльно ваша система и чем на более длинных исторических отрезках - тем более она устойчива. Я торгую одну из моих систем на 15 рынках с одними и теми же параметрами. При тестировании она была прибыльной даже на большем колическтве рынков в течение более чем 10 лет.

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

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

Вот как выглядит правильный процесс. Решите, какой рынок вы хотите торговать. Для большей безопасности следует выбирать только те рынки, которые оказываются прибыльными при тестировании с одним набором параметров (значения данной системы по умолчанию) в течение по крайней мере пяти лет. Давайте предположим, что ваша система торгует с прибылью 12 рынков используя одни и те же параметры. Это будет область вашего исследования.

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

Нужно взять каждый из 12 наборов оптимизированных параметров и опробовать их на всех 12 рынках. Необходимо обратить внимание на то, сохраняет ли данный набор оптимизированных параметров свойство исходного набора оставаться таким же прибыльным на всех остальных 11 рынках. Если данный набор оптимизированных параметров торгует с прибылью все 12 рынков, вы можете быть уверены, что не произошло подгонки параметров под исторические данные. Можно использовать данный набор оптимизированных параметров для торговли того рынка, для которого они были оптимизированны.

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

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

Хотя я и описал весь этот процесс гипероптимизации, однако я не уверен, что он стоит затрачиваемых на него трудов. Я не имею доказательств того, что индивидуально оптимизированый под конкретный рынок набор параметров будет в будущем более прибылен, нежели исходный неоптимизированный набор. Однако если вы себя будете лучше чувствовать при использовании системы, которая имеет больший профит при обратном тестировании - то почему бы и нет?

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

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