Какие результаты оптимизации выбрать.

Опубликовано: 01.01.2007

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

При оптимизации в МетаТрейдере удобно использовать Генетический Алгоритм, а в качестве оптимизируемого параметра выбирать баланс. Таким образом пытаться максимизировать прибыль системы. Но это не значит, что именно результаты с максимальной прибылью дадут нам систему, которая способна приносить прибыль на реальном рынке.

Я уже много раз лично убеждался, оптимизируя различных советников, что простая подгонка системы под кривую с целью максимизации прибыли, дает прямо противоположный результат при тестировании out-of-sample (т.е. при тестировании на той части истории, которая не участвовала в оптимизации системы) или же, что еще хуже - при реальной торговле.

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

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

1. Количество сделок должно быть не меньше 300. Лучше чтобы было более 500. Я лично стремлюсь заполучить выборку в 1000 сделок. (1000 сделок на истории в 7 лет это около одной сделки за 2-3 дня). Такую выборку очень сложно получить, сложно - но можно.

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

3. Профит-фактор системы (отношение общей прибыли к общим убыткам) должен быть больше 1.5. Многие утверждают, что это значение должно быть больше 2. Я с этим не соглашусь Дам лишь один совет – чем выше значение профит-фактора, тем лучше, но не забывайте об остальных пунктах правил здесь перечисленных.

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

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

6. Обратите внимание на сами параметры системы, которые оптимизировались. Значения переменных, полученные в результате оптимизации, должны находиться в разумных пределах, и соответствовать основной идее системы.

Эти простые правила позволяют отсеять заведомо нерабочие параметры системы, которые не будут работать на реале.

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

И еще несколько советов напоследок.

Никогда не проводите оптимизацию системы на всей доступной истории. Всегда оставляйте часть данных (примерно 10%) для тестирования out-of-sample. Это очень важный момент при проведении оптимизации. Если система, на этом промежутке ведет себя по-другому, нежели на периоде оптимизации, то смело отбрасывайте эти результаты оптимизации - это лишь подгонка под историю.

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

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

Чем больше и всесторонней Вы протестируете Вашу систему, тем больше Вы о ней узнаете и тем больше Вы сможете на ней заработать.