- Тестирование стратегий
- Как ускорить оптимизация советника в мт5
- Отличный советник в бэктесте!
Нужно оптимизировать робота так, чтобы сразу два результата были наиболее оптимальными, а не только один из них. В качестве этих результатов у меня выступают, количество выигрышей из 100 сделок и отношение выигрыша к проигрышу. Когда хорошим является один из них, например профит/убыток равен 2 к 1, в то же время, количество выигрышей из 100 составляет только 44, что очень плохо. Повышаю количество выигрышей из 100 больше 50, падает прибыль/убыток. Все это на форвард тесте дает не очень хороший результат. Как оптимизировать эксперта, чтобы оба результата являлись оптимальными, то есть, выбрать золотую середину? Возможно, есть известные способы?
Изложенная вами задача получила название "Многокритериальная оптимизация". Одноименная статья в ВИКИ вполне дает представление о том, какие способы известны. Можно еще посмотреть и "парето оптимизация".
Изложенная вами задача получила название "Многокритериальная оптимизация". Одноименная статья в ВИКИ вполне дает представление о том, какие способы известны. Можно еще посмотреть и "парето оптимизац
вот вы и замудрили)))))
у меня подобный вопрос, и той же области, в тестере не работает генетический алгоритм, ссылается на функцию онТестер, которой в коде нет.
задача, оптимизировать значения индюков. есть ли на форуме обсуждение данного вопроса? просто я новичёк. написал советник на мт4, потом изза оптимизации переписал его на мт5. и решение новой задачи, которая посложнее, извините, сначала гуглю, потом у людей спрашиваю... что примерно должно быть в коде? и как онТестер расположен в советнике? или для тестера отдельный советник надо написать?
Mihail Matkovskij:
Как оптимизировать эксперта, чтобы оба результата являлись оптимальными, то есть, выбрать золотую середину? Возможно, есть известные способы?
Так ведь этой "золотой середины" - может и не быть. Представь себе "седловую точку" - по одной оси - это максимум, а по другой - минимум. Бывает и такое.
А "способ" - только один, создаешь интегральную оценку. Скажем, произведение доли выигрышей на профит фактор. И именно эту оценку и оптимизируешь, максимально ее повышая.
вот вы и замудрили)))))
у меня подобный вопрос, и той же области, в тестере не работает генетический алгоритм, ссылается на функцию онТестер, которой в коде нет.
задача, оптимизировать значения индюков. есть ли на форуме обсуждение данного вопроса? просто я новичёк. написал советник на мт4, потом изза оптимизации переписал его на мт5. и решение новой задачи, которая посложнее, извините, сначала гуглю, потом у людей спрашиваю... что примерно должно быть в коде? и как онТестер расположен в советнике? или для тестера отдельный советник надо написать?
Ты почитай документацию. OnTester() - это как раз та функция, которая позволяет тебе задавать любые критерии оптимизации, а не только стандартные. Вон, выше я дал пример такого критерия - произведения доли выигрышей на профит фактор. Как раз вот эта самая величина должна рассчитываться в этой функции, и возвращаться.
Ты почитай документацию. OnTester()
...
Как раз вот эта самая величина должна рассчитываться в этой функции, и возвращаться.
У вас нигде не завалялось банального примера, ну с той же машкой, как к ней обращаться в онТестере, по хенду? или фунция соответствующая для обращения?
ААААаааааа,... погодите, так можно же код советника в терминале той же МА посмотреть)))))
спасибо)))
А.. нет))) во встроенном советнике нет онТестер
зато на глобальном уровне ещё до онИнит есть: double TradeSizeOptimized(void)
и прочее бла бла бла
мужчины наимудрейшие, подскажите пожалуйста, почему оптимизатор не запускается? говорит шо не выбраны параметры или критерии оптимизации
дословно: "FS 2 23:37:09.668 Tester no optimized parameter selected, please check input(s) to be optimized and set start, step and stop values"
в онТестер я забил все параметры которые хочу перетрясти, компилятор не ругается
double OnTester() { double ret1 = MA_1_Period ; double ret2 = MA_1_Shift ; double ret3 = MA_2_Period ; double ret4 = MA_2_Shift ; double ret5 = Stoch_K ; double ret6 = Stoch_D ; double ret7 = Stoch_Slow ; return ret1 && ret2 &&ret3 && ret4 && ret5 && ret6 && ret7; }
пробовал возвращать другим способом
return (ret1+ret2+ret3+ret4+ret5+ret6+ret7);
так компилятор тоже не ругается, но ругается тестер стратегии, не запускает оптимизер
ах да, кстати, если я правильно понял, то эксперт повешанный на график, в своих свойствах, должен иметь вкладку оптимизируемого параметра.
так вот, там такой вкладки не появилось когда я добавил онТестер
я понимаю, мои вопросы могут звучать для вас несколько диковато, ибо я ведь действительно ничего не понимаю,
но у меня постепенно появляются подозрения о том что все эти параметры, которые я вынес, нужно оптимизировать относительно тех критериев, которые представлены в тестере: максимальный баланс+профит, баланс+просадка... и тд.
допустим, вы так и посоветуете, но как мне привести мои параметры к соотношению этих критериев? из справки всё очень непрозрачно, такое ощущение, что справка это такая же номинализация как слово УЮТ или КОМФОРТ, понятно что это термины из позитивного мироощущения, но для каждого ума это лишь оболочка... пустая... для наполнения собственным смыслом.
вот и фигачу я в эту оболочку из справки всё что ни попадя, только всё это не работает за частую. это ж компьютер, которому нужно объяснять на конкретном языке, ты туда, а ты вот сюда.
за какойнибудь конкретикой я и обращаюсь, это может быть функция, которую вы обычно используете, или формула, преобразование типов может быть...
в онТестер я забил все параметры которые хочу перетрясти, компилятор не ругается
а этого не нужно было делать. в онтестер пишутся алгоримты и формулы которые на основе анализа списка закрытых ордеров и результатов тестера вернут терминалу одно единственное дробное число. для этого нужно минимально знать язык mql.
а дале уже терминал исходя из величины этого числа будет понимать этот прогон лучше или хуже другого (если использовался генетический алгоритмы) или просто запишет этот результат в итоговую табличку чтобы вы могли по нему отсортировать результаты оптимизации.
А выбор параметров которые оптимизатору следует прооптимизировать и в каких диапазонах делаются непосретсвденно в параметрах советника прямо в тестере.
Для этого и есть галочкао слевать от параметра, а также столбцы "старт" "шаг" и "стоп"
- www.metatrader5.com
блин, ребята, виноват, реально больше так не буду, я ж в параметры и не смотрел, галочки за меня никто не выставлял )))))
я извиняюсь))))
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования