MetaTrader 5 Strategy Tester! - страница 84

 
Andrey Dik:
Исправьте свое обращение на "Вы" тогда будем разговаривать. Повежливее пожалуйста. Вы меня просите признать результат, значит проявите учтивость.

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

 

Яб уже давно ушёл из этой темы, но ты сам зачем-то постоянно возвращаешься к R и моему результату, то отказываешься их принять, то требуешь ex5, то обещаешь портировать на mql. Наверное уже штук десять твоих последних сообщений только об этом. Возьми и сделай что-то, а не трепись языком понапрасну.

Я вообще без понятия что тебе от меня надо? Вот твой следующий коммент опять будет или о R, или о моём результате, или о "конкурсе", хотя всем плевать уже давно на это.

 
Andrey Dik:

Для начала попробуйте дать своё определение "робастная ТС".

Можно подобрать такой размер комиссии, что эквити на любом стат. значимом участке будет иметь постоянный вид распределения с мат. ожиданием равным нулю. Это определение.
 
Dr.Trader:

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

Яб уже давно ушёл из этой темы, но ты сам зачем-то постоянно возвращаешься к R и моему результату, то отказываешься их принять, то требуешь ex5, то обещаешь портировать на mql. Наверное уже штук десять твоих последних сообщений только об этом. Возьми и сделай что-то, а не трепись языком понапрасну.

Я вообще без понятия что тебе от меня надо? Вот твой следующий коммент опять будет или о R, или о моём результате, или о "конкурсе", хотя всем плевать уже давно на это.

Хорошо, будем разговаривать на твоём языке. 

Слышь, ты здесь что делаешь то, если тебе всё равно? Что ж ты изводишься на *овно?

Какое тебе дело до моего мнения, признал я результат или нет? Что ты волосы то на *опе своей рвёшь? Иди тогда нах*ен или переписывай свой код на MQL5 сам, приду*ок. 

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

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

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

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

 
Andrey Dik:
Я уверен, что Вы человек чести и доведете эти вопросы до конца, не баньте меня по крайней мере до завершения тестов с Вашей ФФ.
Столько написали)
а где сравнение результатов?
кто же все-таки впереди?
На кого равняться?
Чьим ГА оптить?

 
Event:
Столько написали)
а где сравнение результатов?
кто же все-таки впереди?
На кого равняться?
Чьим ГА оптить?

Вот результаты тестов которые провел я. И пару страниц назад результаты, которые получил Ренат.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MetaTrader 5 Strategy Tester!

Andrey Dik, 2016.11.26 11:04

Результаты тестов буду публиковать в этом посте частями. Пошагово.

1. Сначала повторю тесты, которые провел Ренат.

2. Создам отдельную библиотеку с ФФ Рената и проведу этот же тест но уже по стандарту подключения к библиотеке с сгенерированным автоматически советником (библиотека понадобится, если Ренат, и другие пользователи, захочет повторить тест и с моей библиотекой оптимизации тоже). Результат должен совпасть с результатом в п.1.

3. Проведу тест с моим алгоритмом и полученной в п2. библиотекой ФФ.

Далее, все те же 3 шага повторим для слегка изменённой ФФ Рената.  

 

1. Сделаем три запуска для среднего значения с очисткой кэша оптимизатора перед каждым запуском оптимизации.

1) первое испытание

2016.11.26 14:58:45     Statistics      optimization done in 1 minutes 00 seconds
2016.11.26 14:58:45     Tester  genetic optimization finished on pass 16640
2016.11.26 14:58:45     Tester  result cache used 4170 times
2016.11.26 14:58:45     Tester  12373 records written to file cache D:\Soft\#1 Invests\MT5\tester\cache\TestFitness.3.xml
2016.11.26 14:58:45     Tester  genetic calculation is over
2016.11.26 14:58:44     Tester  Best result 39 produced at generation 52. Next generation 63

 2) второе испытание

2016.11.26 15:11:29     Statistics      optimization done in 1 minutes 16 seconds
2016.11.26 15:11:29     Tester  genetic optimization finished on pass 23296
2016.11.26 15:11:29     Tester  result cache used 8614 times
2016.11.26 15:11:29     Tester  14493 records written to file cache D:\Soft\#1 Invests\MT5\tester\cache\TestFitness.3.xml
2016.11.26 15:11:29     Tester  genetic calculation is over
2016.11.26 15:11:29     Tester  Best result 40 produced at generation 78. Next generation 89

3) третье испытание

2016.11.26 15:14:26     Statistics      optimization done in 1 minutes 18 seconds
2016.11.26 15:14:26     Tester  genetic optimization finished on pass 22784
2016.11.26 15:14:26     Tester  result cache used 7564 times
2016.11.26 15:14:26     Tester  15085 records written to file cache D:\Soft\#1 Invests\MT5\tester\cache\TestFitness.3.xml
2016.11.26 15:14:26     Tester  genetic calculation is over
2016.11.26 15:14:25     Tester  Best result 45 produced at generation 76. Next generation 87

Средний результат (39+40+45)/3=41,33 при в среднем (16640+23296+22784)/3=20906 обращений к ФФ. Таким образом я результаты Рената воспроизвел, даже с немного лучшими результатами чем у него (это объяснимо, результаты слегка плавают из за стохастической природы ао, поэтому я и просил делать несколько испытаний).

2. Далее, тест советника от MQ сгенерированный для работы с ФФ оформленной в виде отдельной библиотеки  testfitnessFF.mq5 (в прикрепе).

1) первое испытание 

2016.11.26 16:17:44     Statistics      optimization done in 1 minutes 03 seconds
2016.11.26 16:17:44     Tester  genetic optimization finished on pass 19200
2016.11.26 16:17:44     Tester  result cache used 6355 times
2016.11.26 16:17:44     Tester  12728 records written to file cache D:\Soft\#1 Invests\MT5\tester\cache\AO from MQ (expert) testfitness.3.xml
2016.11.26 16:17:44     Tester  genetic calculation is over
2016.11.26 16:17:43     Tester  Best result 41 produced at generation 62. Next generation 73

2) второе испытание

2016.11.26 16:23:58     Statistics      optimization done in 1 minutes 03 seconds
2016.11.26 16:23:58     Tester  genetic optimization finished on pass 19712
2016.11.26 16:23:58     Tester  result cache used 6823 times
2016.11.26 16:23:58     Tester  file cache used 3 times
2016.11.26 16:23:58     Tester  12736 records written to file cache D:\Soft\#1 Invests\MT5\tester\cache\AO from MQ (expert) testfitness.3.xml
2016.11.26 16:23:58     Tester  genetic calculation is over
2016.11.26 16:23:58     Tester  Best result 36 produced at generation 64. Next generation 75

3) третье испытание

2016.11.26 16:27:22     Statistics      optimization done in 1 minutes 07 seconds
2016.11.26 16:27:22     Tester  genetic optimization finished on pass 21248
2016.11.26 16:27:22     Tester  result cache used 7938 times
2016.11.26 16:27:22     Tester  file cache used 2 times
2016.11.26 16:27:22     Tester  13166 records written to file cache D:\Soft\#1 Invests\MT5\tester\cache\AO from MQ (expert) testfitness.3.xml
2016.11.26 16:27:22     Tester  genetic calculation is over
2016.11.26 16:27:22     Tester  Best result 39 produced at generation 70. Next generation 81

4) и на всякий случай еще разок

2016.11.26 16:29:57     Statistics      optimization done in 1 minutes 12 seconds
2016.11.26 16:29:57     Tester  genetic optimization finished on pass 21760
2016.11.26 16:29:57     Tester  result cache used 7438 times
2016.11.26 16:29:57     Tester  14152 records written to file cache D:\Soft\#1 Invests\MT5\tester\cache\AO from MQ (expert) testfitness.3.xml
2016.11.26 16:29:57     Tester  genetic calculation is over
2016.11.26 16:29:57     Tester  Best result 41 produced at generation 72. Next generation 83

Средний результат (41+36+39+41)/4=39,25 при в среднем (19200+19712+21248+21760)/4=20480 обращений к ФФ. Таким образом можем видеть, что с ФФ оформленной в виде отдельной библиотеки тестовый советник от MQ демонстрирует похожие результаты (для повторения среднего значения понадобятся сотни повторений эксперемента, на это времени нет.

3. Раз мы получили соответствие результатов советника с ФФ внутри и советника с ФФ в виде отдельной библиотеки, то можем приступить к тестированию работы ао от Joo с той же ФФ в библиотеке, с которой работал алгоритм от MQ в предыдущем пункте.

2016.11.26 16:38:32.077 AO runner (script) (AUDUSD,M5)  Макс: 46.00000000
2016.11.26 16:38:32.077 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 16:38:32.077 AO runner (script) (AUDUSD,M5)  Время: 415791 мкс; 0.41579100 c
2016.11.26 16:38:32.077 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 16:38:41.827 AO runner (script) (AUDUSD,M5)  Макс: 49.00000000
2016.11.26 16:38:41.827 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 16:38:41.827 AO runner (script) (AUDUSD,M5)  Время: 415834 мкс; 0.41583400 c
2016.11.26 16:38:41.827 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 16:38:45.068 AO runner (script) (AUDUSD,M5)  Макс: 49.00000000
2016.11.26 16:38:45.068 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 16:38:45.068 AO runner (script) (AUDUSD,M5)  Время: 363686 мкс; 0.36368600 c
2016.11.26 16:38:45.068 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 16:38:48.233 AO runner (script) (AUDUSD,M5)  Макс: 48.00000000
2016.11.26 16:38:48.233 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 16:38:48.233 AO runner (script) (AUDUSD,M5)  Время: 369436 мкс; 0.36943600 c
2016.11.26 16:38:48.233 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 16:38:51.573 AO runner (script) (AUDUSD,M5)  Макс: 45.00000000
2016.11.26 16:38:51.573 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 16:38:51.573 AO runner (script) (AUDUSD,M5)  Время: 371704 мкс; 0.37170400 c
2016.11.26 16:38:51.573 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 16:38:55.005 AO runner (script) (AUDUSD,M5)  Макс: 46.00000000
2016.11.26 16:38:55.005 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 16:38:55.005 AO runner (script) (AUDUSD,M5)  Время: 357759 мкс; 0.35775900 c
2016.11.26 16:38:55.005 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 16:38:57.968 AO runner (script) (AUDUSD,M5)  Макс: 48.00000000
2016.11.26 16:38:57.968 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 16:38:57.968 AO runner (script) (AUDUSD,M5)  Время: 362894 мкс; 0.36289400 c
2016.11.26 16:38:57.968 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 16:39:00.748 AO runner (script) (AUDUSD,M5)  Макс: 48.00000000
2016.11.26 16:39:00.748 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 16:39:00.748 AO runner (script) (AUDUSD,M5)  Время: 373494 мкс; 0.37349400 c
2016.11.26 16:39:00.748 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 16:39:03.599 AO runner (script) (AUDUSD,M5)  Макс: 45.00000000
2016.11.26 16:39:03.599 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 16:39:03.599 AO runner (script) (AUDUSD,M5)  Время: 363190 мкс; 0.36319000 c
2016.11.26 16:39:03.599 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 16:39:06.968 AO runner (script) (AUDUSD,M5)  Макс: 42.00000000
2016.11.26 16:39:06.968 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 16:39:06.968 AO runner (script) (AUDUSD,M5)  Время: 361686 мкс; 0.36168600 c
2016.11.26 16:39:06.968 AO runner (script) (AUDUSD,M5)  ---------------------------------

Средний результат (46+49+49+48+45+46+48+48+45+42)/10=46,6 при в среднем 20000 обращений к ФФ.
 

В первом тесте результат у алгоритма от MQ 41.33 при среднем вызове ФФ 20906, у алгоритма от Joo 46.6 при ровно 20000 вызовов.

Далее проведем тест на изменённой ФФ. Так как мы выяснили полное соответствие результатов советника с ФФ внутри с результатами советника с ФФ в виде библиотеки, то приступим к тестированию сразу со 2-го пунтка.

2.  

1) первое испытание

2016.11.26 16:57:55     Statistics      optimization done in 1 minutes 16 seconds
2016.11.26 16:57:55     Tester  genetic optimization finished on pass 21504
2016.11.26 16:57:55     Tester  result cache used 6048 times
2016.11.26 16:57:55     Tester  15299 records written to file cache D:\Soft\#1 Invests\MT5\tester\cache\AO from MQ (expert) testfitness.3.xml
2016.11.26 16:57:55     Tester  genetic calculation is over
2016.11.26 16:57:55     Tester  Best result 49.81000000000001 produced at generation 71. Next generation 82

2) второе испытание

2016.11.26 17:00:52     Statistics      optimization done in 1 minutes 12 seconds
2016.11.26 17:00:52     Tester  genetic optimization finished on pass 24576
2016.11.26 17:00:52     Tester  result cache used 11850 times
2016.11.26 17:00:52     Tester  12547 records written to file cache D:\Soft\#1 Invests\MT5\tester\cache\AO from MQ (expert) testfitness.3.xml
2016.11.26 17:00:52     Tester  genetic calculation is over
2016.11.26 17:00:51     Tester  Best result 51.79000000000001 produced at generation 83. Next generation 94

3) третье испытание

2016.11.26 17:02:46     Statistics      optimization done in 1 minutes 07 seconds
2016.11.26 17:02:46     Tester  genetic optimization finished on pass 19200
2016.11.26 17:02:46     Tester  result cache used 4827 times
2016.11.26 17:02:46     Tester  14217 records written to file cache D:\Soft\#1 Invests\MT5\tester\cache\AO from MQ (expert) testfitness.3.xml
2016.11.26 17:02:46     Tester  genetic calculation is over
2016.11.26 17:02:45     Tester  Best result 49.04000000000001 produced at generation 62. Next generation 73

Средний результат (49,81+51,79+49,01)/3=50,2 при в среднем (21504+24576+19200)/3=21760 обращений к ФФ

3.

2016.11.26 17:06:10.729 AO runner (script) (AUDUSD,M5)  Макс: 61.12000000
2016.11.26 17:06:10.729 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 17:06:10.729 AO runner (script) (AUDUSD,M5)  Время: 440832 мкс; 0.44083200 c
2016.11.26 17:06:10.729 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 17:06:14.232 AO runner (script) (AUDUSD,M5)  Макс: 60.22000000
2016.11.26 17:06:14.232 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 17:06:14.232 AO runner (script) (AUDUSD,M5)  Время: 388881 мкс; 0.38888100 c
2016.11.26 17:06:14.232 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 17:06:17.966 AO runner (script) (AUDUSD,M5)  Макс: 60.12000000
2016.11.26 17:06:17.966 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 17:06:17.966 AO runner (script) (AUDUSD,M5)  Время: 392409 мкс; 0.39240900 c
2016.11.26 17:06:17.966 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 17:06:21.117 AO runner (script) (AUDUSD,M5)  Макс: 60.22000000
2016.11.26 17:06:21.117 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 17:06:21.117 AO runner (script) (AUDUSD,M5)  Время: 377241 мкс; 0.37724100 c
2016.11.26 17:06:21.117 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 17:06:24.333 AO runner (script) (AUDUSD,M5)  Макс: 60.00000000
2016.11.26 17:06:24.333 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 17:06:24.333 AO runner (script) (AUDUSD,M5)  Время: 401577 мкс; 0.40157700 c
2016.11.26 17:06:24.333 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 17:06:27.506 AO runner (script) (AUDUSD,M5)  Макс: 57.42000000
2016.11.26 17:06:27.506 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 17:06:27.506 AO runner (script) (AUDUSD,M5)  Время: 384175 мкс; 0.38417500 c
2016.11.26 17:06:27.506 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 17:06:31.067 AO runner (script) (AUDUSD,M5)  Макс: 60.22000000
2016.11.26 17:06:31.067 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 17:06:31.067 AO runner (script) (AUDUSD,M5)  Время: 387644 мкс; 0.38764400 c
2016.11.26 17:06:31.067 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 17:06:35.111 AO runner (script) (AUDUSD,M5)  Макс: 60.22000000
2016.11.26 17:06:35.111 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 17:06:35.111 AO runner (script) (AUDUSD,M5)  Время: 438752 мкс; 0.43875200 c
2016.11.26 17:06:35.111 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 17:06:38.183 AO runner (script) (AUDUSD,M5)  Макс: 61.23000000
2016.11.26 17:06:38.183 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 17:06:38.183 AO runner (script) (AUDUSD,M5)  Время: 373958 мкс; 0.37395800 c
2016.11.26 17:06:38.183 AO runner (script) (AUDUSD,M5)  ---------------------------------
2016.11.26 17:06:41.676 AO runner (script) (AUDUSD,M5)  Макс: 56.71000000
2016.11.26 17:06:41.677 AO runner (script) (AUDUSD,M5)  Запусков ФФ: 20000
2016.11.26 17:06:41.677 AO runner (script) (AUDUSD,M5)  Время: 374096 мкс; 0.37409600 c
2016.11.26 17:06:41.677 AO runner (script) (AUDUSD,M5)  ---------------------------------

Средний результат (61.12+60.22+60.12+60.22+60+57.42+60.22+60.22+61.23+56.71=597,48)/10=59,75 при в среднем 20000 обращений к ФФ.

 

Итак, во втором тесте с слегка изменённой ФФ результаты такие: у алгоритма от MQ 50.2 при среднем вызове ФФ 21760, у алгоритма от Joo 59.75 при ровно 20000 вызовов. 


Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MetaTrader 5 Strategy Tester!

Renat Fatkhullin, 2016.11.26 01:41

Поставим задачу просто и чисто для проверки способностей тестера подбирать целевую функцию:

  • 50 оптимизируемых переменных, которые являются символами от 'a' до 'z' английского алфавита (от 97 до 122 с шагом 1)
  • нужно получить целевую строку "millionsxofxresidentsxchinasxnorthwesternxregionsx" в 50 символов. чтобы упростить перебор, пробелы заменены на x. на суть это не влияет
  • исходная рандомная строка не нужна - она всегда заполняется входными параметрами

В первую очередь надо понять область просчета - это 26(сколько символов в алфавите) в степени 50(символов в тексте). Это 5.6061+e70 вариантов переборов - такое безумное число в реальности.

Генетическому алгоритму нужно умудриться в пределах 1-2 десятков тысяч попыток уложиться и найти приемлемые результаты. Я бы сказал четче - задача экстремально сложна(безнадежна) и все зависит от функции фитнеса.


1) Шаг первый, вот исходный эксперт (TestFitness.mq5) с простейшей фитнес-функцией, предложенной @Andrey Dik:

double OnTester()
  {
   double ffValue=0;
//---
   for(int i=0;i<ArraySize(ExtTarget);i++)
      if(ExtTarget[i]==ExtOriginal[i])
         ffValue++;
//--- вернем результат
   return(ffValue);
  }

TestFitness.set файл приложен в аттачах, его надо положить в каталог /%datafolder%/tester до запуска терминала.

Так как фитнесс функция простая и содержит ряд проблем(малый размах дискретных результатов 0-50, нет мелких приращений, постоянный обман генетического тестера за счет срыва результатов, когда 1 и 10 совпавший символ равнозначны для оптимизатора), то тестер смог достичь результатов 39 подобранных результатов из 50:


В системе с локальными 8 ядрами тест проходит за 57 секунд:

2016.11.26 01:48:19    Statistics    local 14665 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2016.11.26 01:48:19    Statistics    optimization done in 0 minutes 57 seconds
2016.11.26 01:48:19    Tester    genetic optimization finished on pass 21760
2016.11.26 01:48:19    Tester    result cache used 7095 times
2016.11.26 01:48:18    Tester    14491 records written to file cache C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\tester\cache\TestFitness.3.xml
2016.11.26 01:48:18    Tester    genetic calculation is over
2016.11.26 01:48:17    Tester    Best result 39 produced at generation 72. Next generation 83

Результат в 39 найденных символов из 50 означает 78% точность. Не так плохо в процентах, как заявлял Андрей ранее. Чтобы увидеть вывод лучшего результата, надо запустить одиночный тест лучшего результата и посмотреть в логи  первого агента по пути ...\Roaming\MetaQuotes\Tester\...Agent-127.0.0.1-3000\logs:
TestFitness (EURUSD,H1)    Result: miltsoisxoqxresfdeltgschinasxworghwebternxregionsx percent: 78.0%%

оригинал:                          millions of residents chinas northwestern regions

жирным выделено 11 ошибок из 50 позиций, это 22%. не забывайте, что вместо пробелов поставлены x.


2) Шаг второй, пробуем исправить проблему с исходной фитнес функцией.

Как я и предложил выше на уровне теоретического рассуждения, сделаем зависимость угадывания символа зависимо от позиции символа:

double OnTester()
  {
   double ffValue=0;
//---
   for(int i=0;i<ArraySize(ExtTarget);i++)
      if(ExtTarget[i]==ExtOriginal[i])
         ffValue+= 1 + i * 0.01;
//--- вернем результат
   return(ffValue);
  }


Тем самым мы избавляемся от чудовищно дискретного результата и делаем результирующую кривую более гладкой. Это приводит нас к результату 86%.

Использованный коэффициент i * 0.01 хотя очень мал, но оказался очень важным - он дал слабое направление оптимизации генетическому алгоритму, а не заставил его кружиться в цикле самообмана как в исходной формуле.


2016.11.26 02:26:56    Statistics    local 16026 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2016.11.26 02:26:56    Statistics    optimization done in 0 minutes 56 seconds
2016.11.26 02:26:56    Tester    genetic optimization finished on pass 22272
2016.11.26 02:26:56    Tester    result cache used 6246 times
2016.11.26 02:26:55    Tester    15779 records written to file cache C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\tester\cache\TestFitnessBetter.3.xml
2016.11.26 02:26:55    Tester    genetic calculation is over
2016.11.26 02:26:55    Tester    Best result 54.03999999999999 produced at generation 74. Next generation 85
TestFitnessBetter (EURUSD,H1)    Result: millcoqsxofxdekgdentsxchifasxnorthwesternxreguonsx percent: 86.0%%

оригинал:                                millions of residents chinas northwestern regions

жирным выделено 7 ошибок из 50 позиций, это 14%.


В чем проблемы и что я показал:

  1. Область поиска чудовищная
  2. В ее рамках MQL5 генетический тестер находит меньше чем за минуту результаты с долей результата до 86% (я не ковырял до упора, просто потратил 1 час)
  3. Предложенная Андреем фитнес функция явно проигрывает более разумной - 78% против 86% с модифицированной и более логичной
  4. Непонятно, что насчитал Андрей, представляя, что штатный генетик кратно слабее других(его)


Я выполнил главные требования к замерам тестов:

  1. представил полные и конечные исходники, которые любой может запустить и проверить результаты
  2. технически корректно описал вводные и приложил все данные начала прямого теста (set файлы в %terminal_data%\tester, исходники в %terminal_data%\mql5\experts)
  3. представил скрины, логи и объяснения что есть что

 
Andrey Dik:

Вот результаты тестов которые провел я. И пару страниц назад результаты, которые получил Ренат.



опять сотня строк пурги.
а где ответ на вопрос:

кто же все-таки впереди? 

 
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MetaTrader 5 Strategy Tester!

Renat Fatkhullin, 2016.11.25 22:43

Андрей, вы идиот? Про самообман я ошибся.

У вас есть рандомная строка. Вам нужно привести ее с помощью генетики до расшифрованного до человеческого восприятия(чтоб каждый мог сравнить и сказать - да, получилось!) результата.

Где целевая строка? Или вы хотите сказать, что настолько запутали вопрос, что вообще задача не ставится про расшифровку строки?



В вашем коде есть исходная строка на 1000 символов. Почему вы тут вдруг прыгаете и заявляете про нечеловеческий рандом "SptstmLEjXhdESqotbRQbmsYKkJTZiOHBEenIbGqLHwxqfWTok" как целевую строку?


Я присоединяюсь к первой строке)
Вы не можете прямо сказать?

кто же все-таки впереди?  

 
Event:

Я присоединяюсь к первой строке)
Вы не можете прямо сказать?

кто же все-таки впереди?  

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

И не имейте привычку выдирать посты из контекста, это не красиво. Тогда Ренат не совсем понял суть теста, поэтому такие слова. Кроме того, нужно смотреть предысторию, почему строка стала такой а не какой то другой. 

Причина обращения: