Страница 2 из 3
#26


да чет никому не интересно)
думаю на этой неделе закончу с оптимизацией



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

1) Проаназировав немного код, увидел, что некоторые параметры не надо оптимизировать, так как они совсем не играют никакой роли (ни в каких функциях не используются). Посему, будет немного меньше работы, но все-таки еще остается много параметров. Все параметры, которые используются в оптимизации я маркировал в файле RS_OptimizationAllParameters.set.

2) Разбиваем параметры по группам: ATR (группа W; включены только 2 параметра FinalTarget_x_H1_ATR и StopLoss_x_H1_ATR без трала, так как метатрейдер уже на предельных значениях), Полосы Боллинджера (группа X), Конверты (группа Y) и Стохастик (группа Z). Для каждой из групп я составил файлы по оптимизации (RS_OptimizationBB.set, RS_OptimizationEvelopes.set, RS_OptimizationStochastic.set), которые надо просто запустить.

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

4) Планы по возможной оптимизации:
Сначала обозначим фиксированную группу с индексом _f, оптимизированную с индексом _opt, а оптимизируемую группу оставим без индекса.

I) Алгоритм оптимизации можно построить следующими этапами:

а.1.1) оптимизируем (W, X, Y_f, Z_f) и получаем W_opt, X_opt => оптимизируем (W_opt, X_opt, Y, Z_f) и получаем Y_opt => оптимизируем (W_opt, X_opt, Y_opt, Z) и получаем Z_opt => в итоге обозначим полученную оптимизированную группу как (W_opt, X_opt, Y_opt11a, Z_opt11a).
а.1.2) оптимизируем (W, X, Y_f, Z_f) и получаем W_opt, X_opt => оптимизируем (W_opt, X_opt, Y_f, Z) и получаем Z_opt => оптимизируем (W_opt, X_opt, Y, Z_opt) и получаем Y_opt => в итоге обозначим полученную оптимизированную группу как (W_opt, X_opt, Y_opt12a, Z_opt12a).
a.1.3) усредняем полученные параметры из а.1.1) и а.1.2), и получаем группу, обозначенную как (W_a, X_a,Y_a,Z_a):=( W_opt, X_opt, (Y_opt11a+Y_opt12a)/2, (Z_opt11a+Z_opt12a)/2 ).

Аналогично делаем при фиксировании других групп параметров, т.е.:

b.1.1) оптимизируем (W, X_f, Y, Z_f) и получаем W_opt, Y_opt => оптимизируем (W_opt, X, Y_opt, Z_f) и получаем X_opt => оптимизируем (W_opt, X_opt, Y_opt, Z) и получаем Z_opt => в итоге обозначим полученную оптимизированную группу как (W_opt, X_opt11b, Y_opt, Z_opt11b).
b.1.2) оптимизируем (W, X_f, Y, Z_f) и получаем W_opt, Y_opt => оптимизируем (W_opt, X_f, Y_opt, Z) и получаем Z_opt => оптимизируем (W_opt, X, Y_opt, Z_opt) и получаем X_opt => в итоге обозначим полученную оптимизированную группу как (W_opt, X_opt12b, Y_opt, Z_opt12b).
b.1.3) усредняем полученные параметры из b.1.1) и b.1.2), и получаем группу, обозначенную как (W_b, X_b,Y_b,Z_b):=( W_opt, (X_opt11b+X_opt12b)/2, Y_opt, (Z_opt11b+Z_opt12b)/2 ).

И в последнем случае:

с.1.1) оптимизируем (W, X_f, Y_f, Z) и получаем W_opt, Z_opt => оптимизируем (W_opt, X, Y_f, Z_opt) и получаем X_opt => оптимизируем (W_opt, X_opt, Y, Z_opt) и получаем Y_opt => в итоге обозначим полученную оптимизированную группу как (W_opt, X_opt11c, Y_opt11c, Z_opt).
с.1.2) оптимизируем (W, X_f, Y_f, Z) и получаем W_opt, Z_opt => оптимизируем (W_opt, X_f, Y, Z_opt) и получаем Y_opt => оптимизируем (W_opt, X, Y_opt, Z_opt) и получаем X_opt => в итоге обозначим полученную оптимизированную группу как (W_opt, X_opt12c, Y_opt12c, Z_opt).
с.1.3) усредняем полученные параметры из c.1.1) и c.1.2), и получаем группу, обозначенную как (W_c, X_c,Y_c,Z_c):=( W_opt, (X_opt11c+X_opt12c)/2, (Y_opt11b+Y_opt12b)/2, Z_opt ).

d) усредняем итоговые параметры из пунктов a.1.3), b.1.3), c.1.3) и, возможно, подходим к оптимуму еще ближе:
(W_opt, X_opt,Y_opt,Z_opt):=( (W_a+W_b+W_c)/3, (X_a+X_b+X_c)/3, (Y_a+Y_b+Y_c)/3, (Z_a+Z_b+Z_c)/3 ).

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

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

II) Другой вариант оптимизации состоит в том, что мы просто фиксируем группы параметров и берем то, что есть. Варианты, например, следующие:

а) оптимизируем (X, Y_f, Z_f) и получаем X_opt => оптимизируем (X_opt, Y, Z_f) и получаем Y_opt => оптимизируем (X_opt, Y_opt, Z) и получаем Z_opt => в итоге просто берем оптимизированную группу (X_opt, Y_opt, Z_opt).

или

b) оптимизируем (X_f, Y, Z_f) и получаем Y_opt => оптимизируем (X, Y_opt, Z_f) и получаем x_opt => оптимизируем (X_opt, Y_opt, Z) и получаем Z_opt => в итоге просто берем оптимизированную группу (X_opt, Y_opt, Z_opt).

и т.д.

Но тут естественный вопрос: а что делать с другими комбинациями групп параметров ...? В случае I) все варианты
были перепробованы, что кажется более точным алгоритмом для нахождения оптимума.

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

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

Пилотный вариант оптимизации я мог бы уже на GBPUSD запустить: 15-минутный ТФ, период 2005.10.01-2012.11.05. Время
оптимизации при запуске у меня отображалось вначале около 80 часов, но потом может, конечно, и больше стать.

RS_Optimization.rar44 скач.

Изменено 8 ноября, 2012 пользователем qwex

#27

По поводу параметров для iBands и iEnvelopes- я так понимаю, обозначения следующие (могу и ошибаться):
U - upper (верхняя)
L - lower (нижняя)
D - delta (дельта)
MA - mathabs (модуль)
S - step (шаг)




Автор#28


По поводу параметров для iBands и iEnvelopes- я так понимаю, обозначения следующие (могу и ошибаться):
U - upper (верхняя)
L - lower (нижняя)
D - delta (дельта)
MA - mathabs (модуль)
S - step (шаг)



достаточно посмотреть параметры индикатора:
double iEnvelopes( string symbol, int timeframe, int ma_period, int ma_method, int ma_shift, int applied_price, double deviation, int mode, int shift)

глянуть код:
g_ienvelopes_1444 = iEnvelopes(NULL, PERIOD_H1, iEvelopes_MAU, MODE_EMA, 1, PRICE_CLOSE, iEvelopes_MAUD, MODE_UPPER, 1);

и сразу видно, что iEvelopes_MAUD - это параметр deviation для индикатора iEnvelopes.
Собственно особо тут не мудрил... А МА, она и есть МА.
#29

Совсем забыл написать про еще одну группу, которую включил в оптимизацию. Тескт в предыдущем посте с алгоритмом оптимизации дополнен. Цитирую здесь для удобства идею:

"ATR (группа W; включены только 2 параметра FinalTarget_x_H1_ATR и StopLoss_x_H1_ATR без трала, так как метатрейдер уже на предельных значениях) ...

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

#30

.

test.gif

#31
ceperasdf
А можно сет в студию с которого этот график получился. Хочу на 99% проверить.
Спойлер


Какие старт Депо и интервал?
#32

сет еще не конечный,старт депо 1000$,maxallocation 8,с 2010 по сегодня

test.set83 скач.

Автор#33

Неплохо... :)
Какие параметры уже оптимизировал?

#34

Чтоб легче оптимизировалось, подскажу неиспользуемые параметры
g_ihigh_108, g_ilow_116, g_ima_124, g_iatr_132 (W1)
g_ienvelopes_156, g_ienvelopes_172, g_ienvelopes_180, g_ienvelopes_188 (M15)
g_istochastic_1120, g_istochastic_1128 (M15)
Все указанные переменные не используются в коде. Возможно задел разрабов на будущее, но оптимизировать то, что не используется смысла нет.

#35

Результаты тестирования RAYv2 01.01.2010-23.10.2012 :

" Настройки по умолчанию: "




" Загружен сет от ceperasdf: "




" Загружен сет от ceperasdf MA=20: "




" Загружен сет от ceperasdf MA=20, TS=1.8: "






Результат с 2007 по 2010
" Загружен сет от ceperasdf: "



Изменено 12 ноября, 2012 пользователем inkin

#36

Робот использует в своей работе несколько стратегий, поэтому проще найти оптимумы по каждой из стратегий за несколько лет, а потом их соединить в одну. Согласитесь, что прооптить 5 стратегий проще и логичней, чем группы индикаторов.

#37

на свой страх и риск,т.к. оптимизация только за 3года :)

test.set53 скач.

#38


на свой страх и риск,т.к. оптимизация только за 3года :)


а это тот же сет что и Ответ #31 : Ноябрь 10 ? :d
#39

нет,в #31 не полная оптимизация
в этом дооптил индикаторы и параметры FinalTarget/StopLoss/Trail (их впринципе можно по умолчанию сделать)

#40

Что-то он хуже чем предыдущий :(

" Загружен сет от ceperasdf: "




В 2007 вообще сливает до $200, но потом отходит.
#41

А вот мой тест с 2000г по сей день с maxallocation 8, вроде неплохо :-H

Ray_test.JPG
Ray_test1.JPG

#42

90% 2012 последний сет

Спойлер


Цитата

на свой страх и риск,т.к. оптимизация только за 3года


Слишком долгий срок, я думаю пару лет максимум, чтобы корреляция резов лучше была. ИМХО.

Изменено 15 ноября, 2012 пользователем sunzh

#43

Конкретно с этим совом, уверен что любые оптимизации - подгонка под историю, и ничего не даст в реальных торгах.

#44


Конкретно с этим совом, уверен что любые оптимизации - подгонка под историю, и ничего не даст в реальных торгах.


Колись, пробовал с твоим EnvyModom объединить?
#45
Цитата

Конкретно с этим совом, уверен что любые оптимизации - подгонка под историю, и ничего не даст в реальных торгах.

100%
Авторы уже выжали из него максимум, а этот максимум равен почти годовой просадке советника.
#46


Конкретно с этим совом, уверен что любые оптимизации - подгонка под историю, и ничего не даст в реальных торгах.



а как насчет других валют? стоит убивать время на оптимизацию?
#47


Цитата

Конкретно с этим совом, уверен что любые оптимизации - подгонка под историю, и ничего не даст в реальных торгах.

100%
Авторы уже выжали из него максимум, а этот максимум равен почти годовой просадке советника.

Неправда. Форвард тесты на дефолтах пока хорошие, следовательно можно и пооптить, советник 2012 года, откуда сведения о годовой просадке?
#48



Конкретно с этим совом, уверен что любые оптимизации - подгонка под историю, и ничего не даст в реальных торгах.



а как насчет других валют? стоит убивать время на оптимизацию?


Лучше всего дело обстоит с парой AUDUSD - она прибыльна, хоть и не в такой степени, как EURUSD. В теме с Mod-ом выложил новый вариант советника. Извините, не читал эту тему почти (хоть и надо было бы до "модернизации"), решил поработать над улучшениями самостоятельно.
#49

кто-то торговал хотя-бы на демо по другим парам ? какие самые результативные оказались?

#50

По EURAUD результаты лучше,чем по EURUSD.Alpari ECN.

Страница 2 из 3

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025