Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Много экспериментируя, я пришел к аналогичным выводам. Не знаю, почему я так долго не мог найти эту статью и обсуждение.
Я начал с проблемы, когда мои стратегии прорыва и движения по тренду имели тенденцию подстраиваться под несколько сверхприбыльных сделок. Прибыль от этих нескольких сделок была настолько велика, что оптимизатор "заботился" только об этих нескольких сделках и использовал широкие стопы и дальние тейк-профиты, а также следил за тем, чтобы его сигнал ловил и доил эти несколько сделок по максимуму. Это происходило даже на 20-летних выборках со 100's сделок. Даже при оптимизации по соотношению dd и прибыли он все равно стремился к прогонам с этими сделками любой ценой, потому что прогоны составляли 90% его прибыли. Я хотел каким-то образом ограничить это поведение, не отрезая голову страту прорыва/опережения тренда. Я обнаружил, что оптимизация для относительного процента дд (НЕ отношение дд к прибыли, только относительный процент дд и ничего больше) дает хорошие результаты при условии, что соблюдается минимум сделок и минимальный коэффициент прибыли (около 1,3).
Кажется неправильным не учитывать прибыль, но благодаря минимальному критерию pf в верхней части появляются в основном довольно прибыльные прогоны. Отсечение dd из прибыльных прогонов обычно увеличивает прибыль. В любом случае, отбирая более прибыльные сделки и тщательно дорабатывая их вручную (как, например, в конце этой замечательной статьи https://www.mql5.com/ru/articles/156), я могу позволить оптимизатору сделать большую часть первоначальной работы, избегая при этом подгонки кривых. Я экспериментировал и получил смешанные результаты с таким кодом, как показано ниже. (Эксперименты должны включать изменение риска и начального баланса, как только вы начнете вводить дополнительные весовые коэффициенты поверх процентной оценки)
Кто может подсказать будет ли эта статья применима для МТ4? Вроде бы он уже многие свойства перенял от МТ5.
В общем моя задача стоит в получение просто значений LR Correlation и LR Standard Error в тестере МТ4, как это возможно легко видеть в тестере МТ5.
Хочу просто в функции deinit() по окончанию прогона в тесте считать эти же значения и записывать например в файл вместе со значением оптимизируемого параметра.
Может быть кто-то подобные вещи уже делал и поделится со мной готовым результатом (необходимой функцией расчёта значений LR Correlation и LR Standard Error), чтобы не изобретать велосипед?
Кто может подсказать будет ли эта статья применима для МТ4? Вроде бы он уже многие свойства перенял от МТ5.
В общем моя задача стоит в получение просто значений LR Correlation и LR Standard Error в тестере МТ4, как это возможно легко видеть в тестере МТ5.
Хочу просто в функции deinit() по окончанию прогона в тесте считать эти же значения и записывать например в файл вместе со значением оптимизируемого параметра.
Может быть кто-то подобные вещи уже делал и поделится со мной готовым результатом (необходимой функцией расчёта значений LR Correlation и LR Standard Error ), чтобы не изобретать велосипед?
Пример расчета LR Correlation и LR Standard Error по сделкам в истории есть в AlgLib (MQL4\Scripts\Alglib\UseAlglib.mq4).
Спасибо! Буду разбираться.
Разобрался. Вроде корреляция рассчитывается.
Единственный момент, над которым пришлось подумать, это тот факт, что в тестере МТ4 Build 670 не работает вот этот момент:
В тестере просто нет ордеров с типом 6.
То есть на прогоне в тестере МТ4 и использовании кода из UseAlglib.mq4, входящего в состав скачиваемого zip файла, через вызов из функции deinit()
balance остаётся равен 0. И далее печатается ошибка "Торговые операции при нулевом балансе".
Пришлось просто вставить в сам код необходимое значение начального баланса в тестере МТ4 и тогда всё прекрасно стало считаться.
Возможно разработчики смогут этот момент учесть в дальнейших версиях библиотеки.
Я протестировал Kelly Criterion (стратегию), используя следующий код:
Я не уверен, что Metatrader Strategy Tester считает 0 (нулевые) сделки с прибылью как сделки с прибылью. Кто-нибудь знает?
Ну, вот и я снова здесь, одинокий волк в этой вселенной :-)
Я пробовал критерии прямолинейности Custom Criteria, пытаясь подставить в уравнение наклон рассчитанной прямой. В таком виде он может дать вам очень высокий рейтинг при очень слабой прибыли. Просто добавляю конечную прибыль
в расчет не делает его лучше В попытке добавить фактический наклон в уравнение я изменил код, как показано ниже.
Это не идеальное решение, но оно ближе к тому, что я хочу видеть. Использование результата вместе с балансом или прибылью отлично работает для меня с этим кодом
Я знаю, что прошло столько времени с тех пор, как вы это опубликовали, но на случай, если вы все еще играете с этим или кто-то еще ищет ту же реализацию критерия прямолинейности.
Я нашел рабочее публичное решение здесь https://community.darwinex.com/t/equity-curve-straigthness-optimization-with-metatrader/3976
В соответствующем руководстве слишком много информации, например, о программировании советника, которая есть в других руководствах, и неприменима для среднего игрока, который, купив советник, имеет минимальные способности к программированию.
Я обнаружил, что по умолчанию единственным полезным критерием для MT5 в генетическом algo является "баланс макс", затем приходится повторять это несколько раз, и рыться в результатах, чтобы найти низкую просадку, как для использования на нескольких парах.
Какие критерии мне нужны :- Max balance with <20 Drawdown, MaxBalance with <10 Drawdown
Всем "одиноким волкам": вы на правильном пути, создавая строгие критерии тестирования и автоматизируя их. Конечно, есть несколько разных способов взглянуть на одну и ту же задачу, и, читая комментарии здесь, кажется, что консенсус заключается в компромиссе между балансом, просадкой, RRR и некоторой мерой прибыли (фактор прибыли, критерий Келли и т.д.).
Я пришел к этой статье, пытаясь сделать то же самое, и желая, чтобы Тестер Стратегий сделал это за меня; рад, что я не одинок :)