Вопрос по генетической оптимизации - страница 4

 

То есть меняется только эта строка с iCustom? Тогда надо этот индикатор подробно рассмотреть.

 

У Вас тема неправильная. Вы концентрируетесь на оптимизации, а дело, очевидно, в советнике (передача параметров и пр.). Забудьте на время об оптимизации, натыкайте в советник comment'ов и принтов, погоняйте с разными параметрами в визуале, контролируя промежуточные данные, найдите все ошибки, а потом вернетесь к оптимизации.

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

 
Angela >>:

Если я задаю параметры так: (iCustom(NULL, 0, "ART", MA_Period, KFK, 0, 1), Digits); - то получаются все нули, как я привела пример выше.

Если я задаю iCustom(NULL, 0, "ART", 0, 1), Digits); - то появляются расчетные значения,

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

Angela, чтобы оптимизация работала, нужно как-то использовать изменяемые оптимизатором значения в алгоритме, в частности передавать в индикатор. Индикатору обязательно нужно передавать параметры, если Вы хотите оптимизации. Когда Вы вызываете индикатор без параметров (т.е. второй вариант, iCustom(NULL, 0, "ART", 0, 1)), то фактически опускаете параметры и индикатор работает с параметрами по-умолчанию, которые прописаны внутри ART (разумеется при этом они не оптимизируются). Полный вызов с параметрами - первый вариант - это то, что Вам нужно для оптимизации. Скорее всего, проблема в том, что Вы неправильно передаете параметры. Например, если их число в индикаторе меньше, и Вы передаете личшнее значение или наоборот, если не додаете всех параметров. Если индикатор - секрет, то хотя бы приведите перечень его параметров.

 

Спасибо всем, разобралась, причина была бональной.порядок рбъявления передаваемых из индикатора в советник параметров не совпадал:

в советнике было

extern int MA_Period=151; // 101 10 201
extern double KFK=0.9; // 0.7 0.005 1.

в индикаторе наоборот

extern double KFK=0.9; // 0.7 0.005 1.

extern int MA_Period=151; // 101 10 201

из-за этого в режиме визуализации все работало, в режиме оптимизации - нет.

 

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

И еще. Подсмотрел у komposter'а наглядный стиль написания iCustom. Все как на ладони.

/*
Входные параметры индикатора
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
*/
double signal=iCustom(Symbol(),Period(),"MACD",
                                       FastEMA,   //параметр 1
                                       SlowEMA,   //параметр 2
                                       SignalSMA, //параметр 3
                                       0,         //номер буфера индикатора    
                                       SignalBar);//бар, с которого получаем данные (внешняя переменная)
 

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

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

Strategy Tester Report
ABC_exp
Alpari-Demo (Build 225)

Символ GBPUSD (Great Britain Pound vs US Dollar)
Период 5 Минут (M5) 2009.06.01 00:00 - 2009.06.30 23:59 (2009.06.01 - 2009.07.01)
Модель По ценам открытия (только для советников с явным контролем открытия баров)
Параметры Lots=0.1; TrailingStop1=3110; StopLoss1=1500; TrailingStop2=3110; StopLoss2=1500; MAGIC_1=12345; MAGIC_2=23456; MA_Period=151; KFK=0.9;
Баров в истории 7288 Смоделировано тиков 13573 Качество моделирования n/a
Ошибки рассогласования графиков 0
Начальный депозит 1000.00
Чистая прибыль 503.82 Общая прибыль 643.12 Общий убыток -139.30
Прибыльность 4.62 Матожидание выигрыша 27.99
Абсолютная просадка 8.70 Максимальная просадка 103.20 (7.77%) Относительная просадка 7.77% (103.20)
Всего сделок 18 Короткие позиции (% выигравших) 0 (0.00%) Длинные позиции (% выигравших) 18 (66.67%)
Прибыльные сделки (% от всех) 12 (66.67%) Убыточные сделки (% от всех) 6 (33.33%)
Самая большая прибыльная сделка 107.32 убыточная сделка -43.00
Средняя прибыльная сделка 53.59 убыточная сделка -23.22
Максимальное количество непрерывных выигрышей (прибыль) 5 (263.10) непрерывных проигрышей (убыток) 3 (-74.00)
Максимальная непрерывная прибыль (число выигрышей) 263.10 (5) непрерывный убыток (число проигрышей) -74.00 (3)
Средний непрерывный выигрыш 2 непрерывный проигрыш 2

Время Тип Ордер Объём Цена S / L T / P Прибыль Баланс
1 2009.06.01 16:10 buy 1 0.10 1.63896 1.62396 0.00000
2 2009.06.01 17:55 close 1 0.10 1.64462 1.62396 0.00000 56.60 1056.60
3 2009.06.02 12:55 buy 2 0.10 1.64588 1.63088 0.00000
4 2009.06.02 14:05 close 2 0.10 1.64768 1.63088 0.00000 18.00 1074.60
5 2009.06.09 08:15 buy 3 0.10 1.60495 1.58995 0.00000
6 2009.06.09 09:00 close 3 0.10 1.61273 1.58995 0.00000 77.80 1152.40
7 2009.06.09 13:25 buy 4 0.10 1.61447 1.59947 0.00000
8 2009.06.09 14:00 close 4 0.10 1.61788 1.59947 0.00000 34.10 1186.50
9 2009.06.10 13:05 buy 5 0.10 1.63679 1.62179 0.00000
10 2009.06.10 13:35 close 5 0.10 1.64445 1.62179 0.00000 76.60 1263.10
11 2009.06.11 01:30 buy 6 0.10 1.63664 1.62164 0.00000
12 2009.06.11 02:00 close 6 0.10 1.63577 1.62164 0.00000 -8.70 1254.40
13 2009.06.11 15:45 buy 7 0.10 1.64653 1.63153 0.00000
14 2009.06.11 16:50 close 7 0.10 1.65300 1.63153 0.00000 64.70 1319.10
15 2009.06.12 17:15 buy 8 0.10 1.65102 1.63602 0.00000
16 2009.06.12 18:10 close 8 0.10 1.65011 1.63602 0.00000 -9.10 1310.00
17 2009.06.16 08:50 buy 9 0.10 1.63621 1.62121 0.00000
18 2009.06.16 09:00 close 9 0.10 1.63396 1.62121 0.00000 -22.50 1287.50
19 2009.06.16 17:05 buy 10 0.10 1.64623 1.63123 0.00000
20 2009.06.16 18:40 close 10 0.10 1.64199 1.63123 0.00000 -42.40 1245.10
21 2009.06.18 08:50 buy 11 0.10 1.64200 1.62700 0.00000
22 2009.06.18 09:30 close 11 0.10 1.64352 1.62700 0.00000 15.20 1260.30
23 2009.06.19 07:45 buy 12 0.10 1.63728 1.62228 0.00000
24 2009.06.19 11:50 close 12 0.10 1.64252 1.62228 0.00000 52.40 1312.70
25 2009.06.19 17:30 buy 13 0.10 1.64542 1.63042 0.00000
26 2009.06.19 18:10 close 13 0.10 1.65045 1.63042 0.00000 50.30 1363.00
27 2009.06.23 17:40 buy 14 0.10 1.63475 1.61975 0.00000
28 2009.06.24 02:40 close 14 0.10 1.64549 1.61975 0.00000 107.32 1470.32
29 2009.06.24 15:15 buy 15 0.10 1.65717 1.64217 0.00000
30 2009.06.24 15:35 close 15 0.10 1.65287 1.64217 0.00000 -43.00 1427.32
31 2009.06.26 08:50 buy 16 0.10 1.64036 1.62536 0.00000
32 2009.06.26 12:00 close 16 0.10 1.64922 1.62536 0.00000 88.60 1515.92
33 2009.06.29 12:15 buy 17 0.10 1.65490 1.63990 0.00000
34 2009.06.29 12:35 close 17 0.10 1.65354 1.63990 0.00000 -13.60 1502.32
35 2009.06.29 20:25 buy 18 0.10 1.65678 1.64178 0.00000
36 2009.06.29 21:25 close 18 0.10 1.65693 1.64178 0.00000 1.50 1503.82
 
Strategy Tester Report
ABC_exp
Alpari-Demo (Build 225)

Символ GBPUSD (Great Britain Pound vs US Dollar)
Период 5 Минут (M5) 2009.07.01 00:00 - 2009.07.31 22:59 (2009.07.01 - 2009.08.01)
Модель По ценам открытия (только для советников с явным контролем открытия баров)
Параметры Lots=0.1; TrailingStop1=3110; StopLoss1=1500; TrailingStop2=3110; StopLoss2=1500; MAGIC_1=12345; MAGIC_2=23456; MA_Period=151; KFK=0.9;
Баров в истории 7560 Смоделировано тиков 14120 Качество моделирования n/a
Ошибки рассогласования графиков 0
Начальный депозит 1000.00
Чистая прибыль 137.84 Общая прибыль 239.34 Общий убыток -101.50
Прибыльность 2.36 Матожидание выигрыша 9.85
Абсолютная просадка 24.16 Максимальная просадка 121.88 (11.10%) Относительная просадка 11.10% (121.88)
Всего сделок 14 Короткие позиции (% выигравших) 0 (0.00%) Длинные позиции (% выигравших) 14 (71.43%)
Прибыльные сделки (% от всех) 10 (71.43%) Убыточные сделки (% от всех) 4 (28.57%)
Самая большая прибыльная сделка 58.00 убыточная сделка -57.20
Средняя прибыльная сделка 23.93 убыточная сделка -25.38
Максимальное количество непрерывных выигрышей (прибыль) 6 (82.92) непрерывных проигрышей (убыток) 2 (-63.70)
Максимальная непрерывная прибыль (число выигрышей) 117.12 (3) непрерывный убыток (число проигрышей) -63.70 (2)
Средний непрерывный выигрыш 3 непрерывный проигрыш 1

Время Тип Ордер Объём Цена S / L T / P Прибыль Баланс
1 2009.07.14 08:35 buy 1 0.10 1.62852 1.61352 0.00000
2 2009.07.14 08:40 close 1 0.10 1.62629 1.61352 0.00000 -22.30 977.70
3 2009.07.14 23:00 buy 2 0.10 1.63120 1.61620 0.00000
4 2009.07.15 02:30 close 2 0.10 1.63191 1.61620 0.00000 7.02 984.72
5 2009.07.15 13:35 buy 3 0.10 1.64028 1.62528 0.00000
6 2009.07.15 14:30 close 3 0.10 1.64286 1.62528 0.00000 25.80 1010.52
7 2009.07.16 12:45 buy 4 0.10 1.64466 1.62966 0.00000
8 2009.07.16 15:05 close 4 0.10 1.64481 1.62966 0.00000 1.50 1012.02
9 2009.07.20 03:35 buy 5 0.10 1.63951 1.62451 0.00000
10 2009.07.20 04:35 close 5 0.10 1.63994 1.62451 0.00000 4.30 1016.32
11 2009.07.20 18:45 buy 6 0.10 1.65356 1.63856 0.00000
12 2009.07.20 21:30 close 6 0.10 1.65368 1.63856 0.00000 1.20 1017.52
13 2009.07.22 16:55 buy 7 0.10 1.64327 1.62827 0.00000
14 2009.07.22 18:55 close 7 0.10 1.64758 1.62827 0.00000 43.10 1060.62
15 2009.07.23 08:30 buy 8 0.10 1.65223 1.63723 0.00000
16 2009.07.23 08:35 close 8 0.10 1.65068 1.63723 0.00000 -15.50 1045.12
17 2009.07.23 16:45 buy 9 0.10 1.65286 1.63786 0.00000
18 2009.07.23 17:35 close 9 0.10 1.65679 1.63786 0.00000 39.30 1084.42
19 2009.07.24 09:10 buy 10 0.10 1.65293 1.63793 0.00000
20 2009.07.24 10:35 close 10 0.10 1.64721 1.63793 0.00000 -57.20 1027.22
21 2009.07.27 08:35 buy 11 0.10 1.65044 1.63544 0.00000
22 2009.07.27 08:45 close 11 0.10 1.64979 1.63544 0.00000 -6.50 1020.72
23 2009.07.27 13:45 buy 12 0.10 1.65005 1.63505 0.00000
24 2009.07.28 09:45 close 12 0.10 1.65467 1.63505 0.00000 46.12 1066.84
25 2009.07.30 08:50 buy 13 0.10 1.64618 1.63118 0.00000
26 2009.07.30 09:30 close 13 0.10 1.64748 1.63118 0.00000 13.00 1079.84
27 2009.07.31 16:50 buy 14 0.10 1.65534 1.64034 0.00000
28 2009.07.31 17:15 close 14 0.10 1.66114 1.64034 0.00000 58.00 1137.84
Strategy Tester Report
ABC_exp
Alpari-Demo (Build 225)

Символ GBPUSD (Great Britain Pound vs US Dollar)
Период 5 Минут (M5) 2009.08.03 00:00 - 2009.08.11 23:59 (2009.08.02 - 2009.08.12)
Модель По ценам открытия (только для советников с явным контролем открытия баров)
Параметры Lots=0.1; TrailingStop1=3110; StopLoss1=1500; TrailingStop2=3110; StopLoss2=1500; MAGIC_1=12345; MAGIC_2=23456; MA_Period=151; KFK=0.9;
Баров в истории 3005 Смоделировано тиков 5007 Качество моделирования n/a
Ошибки рассогласования графиков 0
Начальный депозит 1000.00
Чистая прибыль 90.68 Общая прибыль 146.52 Общий убыток -55.84
Прибыльность 2.62 Матожидание выигрыша 22.67
Абсолютная просадка 4.30 Максимальная просадка 63.18 (5.68%) Относительная просадка 5.68% (63.18)
Всего сделок 4 Короткие позиции (% выигравших) 0 (0.00%) Длинные позиции (% выигравших) 4 (50.00%)
Прибыльные сделки (% от всех) 2 (50.00%) Убыточные сделки (% от всех) 2 (50.00%)
Самая большая прибыльная сделка 92.80 убыточная сделка -39.84
Средняя прибыльная сделка 73.26 убыточная сделка -27.92
Максимальное количество непрерывных выигрышей (прибыль) 1 (92.80) непрерывных проигрышей (убыток) 1 (-39.84)
Максимальная непрерывная прибыль (число выигрышей) 92.80 (1) непрерывный убыток (число проигрышей) -39.84 (1)
Средний непрерывный выигрыш 1 непрерывный проигрыш 1

Время Тип Ордер Объём Цена S / L T / P Прибыль Баланс
1 2009.08.03 09:45 buy 1 0.10 1.67460 1.65960 0.00000
2 2009.08.03 10:50 close 1 0.10 1.68388 1.65960 0.00000 92.80 1092.80
3 2009.08.04 11:25 buy 2 0.10 1.69389 1.67889 0.00000
4 2009.08.04 14:45 close 2 0.10 1.69229 1.67889 0.00000 -16.00 1076.80
5 2009.08.04 19:50 buy 3 0.10 1.69312 1.67812 0.00000
6 2009.08.05 12:40 close 3 0.10 1.69850 1.67812 0.00000 53.72 1130.52
7 2009.08.05 18:45 buy 4 0.10 1.70146 1.68646 0.00000
8 2009.08.06 04:45 close 4 0.10 1.69750 1.68646 0.00000 -39.84 1090.68
 
Если в эксперте участвует только mql-код, то что-то там видимо не так закодировано, потому что при модели по ценам открытия 800 прогонов не должны так тормозить. Или я чего-то недопонимаю. Обычно настолько задумчивыми бывают эксперты с внешней обвязкой типа нейросетевых библиотек и пр. Можно конечно еще предположить, что в mql-е сочинено много вложенных циклов (или вызовов неких "прожорливых" индикаторов) - тогда и его можно капитально затормозить. В связи с чем могу лишь повторить мысль о предполагаемой необходимости рефакторинга ;-) - перепроверки и переиначивания фрагментов кода или всего кода.
 
marketeer писал(а) >>
Если в эксперте участвует только mql-код, то что-то там видимо не так закодировано, потому что при модели по ценам открытия 800 прогонов не должны так тормозить. Или я чего-то недопонимаю. Обычно настолько задумчивыми бывают эксперты с внешней обвязкой типа нейросетевых библиотек и пр. Можно конечно еще предположить, что в mql-е сочинено много вложенных циклов (или вызовов неких "прожорливых" индикаторов) - тогда и его можно капитально затормозить. В связи с чем могу лишь повторить мысль о предполагаемой необходимости рефакторинга ;-) - перепроверки и переиначивания фрагментов кода или всего кода.

800 из более 8000 прогонов прошли к моменту написания поста, при 5 часовой оптимизации, и оставалось по времени еще 2 суток. Но я не стала дожидаться окончания, уменьшила диапазон перебора некоторых параметров, перезапустила и за 8 часов прошла вся оптимизация.

Самый лучший результат:

     Прибыль     Всего сделок     Прибыльность   Матожидание     Просадка$    Просадка%
673  597.40         23            4.80            25.97           67.90         4.81%    Threshold1=109 Threshold2=227 USL=0.0037 MA_Period=58
 

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