Я так понимаю все тестируют по параметру "Balance"
Ну тогда не буду заморачиваться и продолжу в том же стиле тесты.
Много кто OnTester() использует. Но альтруистов мало наверное ))
Я только OnTester() и пользуюсь. "Формулы счастья" у меня нет, но функция эта позволяет решить много проблем и недостатков стандартных вариантов, сделать очень гибкие настройки и возможности. Ещё через неё можно вывести специфическую статистику в журнал, я так и делаю.
В общем, начинайте изобретать и делиться кодом, народ подтянется ))
Например, мне оптимизация по такому критерию часто нужна:
return(NormalizeDouble((TesterStatistics(STAT_PROFIT) / TesterStatistics(STAT_EQUITY_DD)), 2));
Если ближе к Вашему примеру, то так полезно будет:
extern int TesterMinPercentProfitTrades = 66; double OnTester() { double PercentProfitTrades = 0; if (TesterStatistics(STAT_PROFIT_TRADES) > 0) PercentProfitTrades = TesterStatistics(STAT_PROFIT_TRADES) / TesterStatistics(STAT_TRADES) * 100; if (PercentProfitTrades >= TesterMinPercentProfitTrades) return(NormalizeDouble((TesterStatistics(STAT_PROFIT) / TesterStatistics(STAT_EQUITY_DD)), 2)); else return(0); }
И это только примитивный пример.
Или такой вариант:
double OnTester() { double PercentProfitTrades = 0; if (TesterStatistics(STAT_PROFIT_TRADES) > 0) PercentProfitTrades = TesterStatistics(STAT_PROFIT_TRADES) / TesterStatistics(STAT_TRADES) * 100; return(NormalizeDouble((TesterStatistics(STAT_PROFIT) / TesterStatistics(STAT_EQUITY_DD) * PercentProfitTrades / 100), 2)); }
Много чего придумать можно, было бы время на все эти эксперименты.
Много кто OnTester() использует.
Что то не заметно, ни одного предложения или рассуждения кроме вас))
Я только OnTester() и пользуюсь. "Формулы счастья" у меня нет, но функция эта позволяет решить много проблем и недостатков стандартных вариантов, сделать очень гибкие настройки и возможности.
А как всё это подбирать для себя по нужным критериям?
Где можно увидеть итог составленной формулы?
Например, если что то мне нужно сложить, получить итог, то я смотрю по Comment или Print полученные результаты.
Много чего придумать можно, было бы время на все эти эксперименты.
Это точно, времени не хватает.
https://www.mql5.com/ru/articles/2358
- 2017.10.24
- Vasiliy Sokolov
- www.mql5.com
Что то не заметно, ни одного предложения или рассуждения кроме вас))
Подозреваю, что тем, кто добрался до OnTester(), уже некогда на форуме болтать ))
Natalya Dzerzhinskaya:
А как всё это подбирать для себя по нужным критериям?
Где можно увидеть итог составленной формулы?
Например, если что то мне нужно сложить, получить итог, то я смотрю по Comment или Print полученные результаты.
Не очень понял вопрос. Итог составленной формулы на вкладке "Результаты оптимизации" видно:
А через Print() специфическую статистику только вывожу из OnTester(). Всё просто. Результат OnTester() одиночного прогона тоже в журнале видно.
Кстати, если торговая система изначально плоха, то никакая оптимизация всё равно не поможет, подгонка будет. Но я думаю, Вы уже об этом знаете.
- www.metatrader5.com
Подозреваю, что тем, кто добрался до OnTester(), уже некогда на форуме болтать ))
На столько всё серьёзно?))
Не очень понял вопрос. Итог составленной формулы на вкладке "Результаты оптимизации" видно:
Это я знаю, что в графе видно. Я имею ввиду составленную формулу как проверить? Как её вообще составлять?))
Кстати, если торговая система изначально плоха, то никакая оптимизация всё равно не поможет, подгонка будет. Но я думаю, Вы уже об этом знаете.
Это точно.
Перед началом изобретения сначала включается воображение.
Женское счастье был бы милый pядом
Hу, а больше ничего не надо...
Я так составил для себя, показывает % прибыльных трейдов по отношению к убыточным.
Рассматриваю параметры те у которых показатель 80% и выше.
//+------------------------------------------------------------------+ //| Tester function | //+------------------------------------------------------------------+ double OnTester(){//Процент(%) прибыльных трейдов int AllTrades=0,ProfitTrades=0,LossTrades=0,ProfitPercent=0,SeriesPrfOrd=0; SeriesPrfOrd=TesterStatistics(STAT_MAX_CONPROFIT_TRADES); if(TesterStatistics(STAT_TRADES)>0)AllTrades=TesterStatistics(STAT_TRADES); if(TesterStatistics(STAT_PROFIT_TRADES)>0)ProfitTrades=TesterStatistics(STAT_TRADES)-TesterStatistics(STAT_LOSS_TRADES); if(TesterStatistics(STAT_LOSS_TRADES)>0)LossTrades=TesterStatistics(STAT_TRADES)-TesterStatistics(STAT_PROFIT_TRADES); if(ProfitTrades!=0 && ProfitTrades>=LossTrades)ProfitPercent=((ProfitTrades*100)/((AllTrades*100)/100)); if((ProfitPercent>=60 && AllTrades>15)||SeriesPrfOrd>=8) return(ProfitPercent); else return(0);}
Раньше в онтестере у меня считалось - Баланс/Просадку * Количество сделок ведь чем больше количество сделок тем меньше шансов попасть на переоптимизацию.
Но потом я стал умножать на Квадратный корень из количества сделок, а не просто на количество. Мне так кажется более правильным. Зависимость уменьшилась от количества сделок но все равно влияние на результат остался.
Правда должен отметить, что у меня скальпинговая система.Я так понимаю все тестируют по параметру "Balance"
Ну тогда не буду заморачиваться и продолжу в том же стиле тесты.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Если использовать для тестирования советника оптимизируемый параметр Custom
Что лучше применить в OnTester()?
Например мне надо подобрать параметр где в приоритете будет максимальное кол-во прибыльных сделок не зависимо от прибыли. Как это организовать?
Кто как тестирует? Поделитесь))