![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Что касается критерия оптимизации?
Только, что вывел для себя оценочный коэффициент... Может кому сгодится...
После оптимизации получаем выборку вариантов... Все варианты отличаются друг от друга, например, количеством сделок на оптимизируемом периоде...
Мысль такая, привести к общему числу количество сделок для всех прогонов, например, к оптимальному количеству сделок по критерию Neutron...
N(i) / N(op)
Полученное значение умножаем на соответствющее матожидание для i-го прогона...
N(i) / N(op) * Expected payoff (i)
Т.о получаем прибыль на каждом прогоне. Эту величину уже можно сравнивать с другими вариантами выборки...
Что-то не хватает в этой формуле? А как же учесть риски? Очень просто...
Определяемся со значением наибольшей возможной просадки и делим ее на максимальную просадку прогона...
Это коэффициент увеличения постоянного лота..
DropDown(max) / DropDown(i)
Окончательная формула коэффициента
К(оц) = N(i) / N(op) * Expected payoff (i) * DropDown(max) / DropDown(i)
Если N(op) = 1, то N(i) * Expected payoff (i) - это прибыль на i-ом прогоне.... Думаю, что N(op) должен быть равен максимальному значению количества сделок из выборки прогонов после оптимизации...
Вы утверждаете, что существует некое оптимальное количество сделок, зависящее от количества подгоночных параметров...
Упростим задачу.... Оставим постоянный временной интервал...
Вывод: предложенный метод оптимизации утопия.
kharko, то, что Вы получили, не имеет отношения к задаче в той постановке, ответ к которой был приведён выше.
Центральным моментом является утверждение о существовании пологого оптимума по количеству трансакций для наперёд заданного в тестере числа подгоночных параметров. Показано, что оптимизированный именно на прогоне такой длины (и где последняя сделка состыкована с текущим временем), даст статистически наилучший эффект оптимизации. Это, конечно, не значит, что войдя в рынок вы озолотитесь - возможно наступит серия убытков и вы всё сольёте! Зато это значит, что поступая так каждый раз перед выходом в рынок, вы за много раз, получите наибольшой из возможных доходов.
Стратегия тут такая: в самом тестере должен быть виртуальный эмулятор торгов идентичный тому, на основе которого создана ТС. Этот эмулятор постоянно держит в памяти историю торгов длинной, равной оптимальной и после каждой реальной сделки, так оптимизирует свои параметры, чтобы виртуальная эквити была максимальна. Затем, найденые параметры передаются реальной МТС и по ним она входит очередной раз в рынок. Операция с виртуальной оптимизацией повторяется. Цикл.
По поводу количества сделок еще одно замечание: У меня в советнике есть такой параметр как максимальное количество ордеров и при правильно подобранных параметрах увеличение одновременного количества сделок которые делает советник увеличивает полученную прибыль, но с другой стороны, мы получаем неоптимальное количество сделок на данном временном диапазоне по соотношению к количеству входных параметров советника, как с этим быть?
ITeXPert, полученные результаты верны только для работы на одном инструменте, и в каждый момент времени может быть открыта только одна позиция. Как обобщить на общий случай, нужно думать.
Мысль такая, привести к общему числу количество сделок для всех прогонов, например, к оптимальному количеству сделок по критерию Neutron...
N(i) / N(op)
Полученное значение умножаем на соответствющее матожидание для i-го прогона...
N(i) / N(op) * Expected payoff (i)
Изощрённый ум!
kharko, боюсь, что такая военная хитрость может не прокатить... и вот почему. Дело в том, что ошибка обобщения тестера не опирается на Expected payoff, т.е не рассматривает доходность как параметр при максимизации которого была получена оценка. В основу положен Байесовский классификатор и нормирование доходности в задачу не входит. Прочитайте абзац в статье которую я выложил выше(стр.56).
kharko, то, что Вы получили, не имеет отношения к задаче в той постановке, ответ к которой был приведён выше.
Центральным моментом является утверждение о существовании пологого оптимума по количеству трансакций для наперёд заданного в тестере числа подгоночных параметров. Показано, что оптимизированный именно на прогоне тоакой длинны (и где последняя сделка состыкована с текущим временем), даст статистически наилучший эффект оптимизации. Это, конечно, не значит, что войдя в рынок вы озолотитесь, возможно, что наступит серия убытков и вы всё сольёте! Зато это значит, что поступая так каждый раз перед выходом в рынок вы за много раз, получите наибольшой из возможных доходов.
Стратегия тут такая: в самом тестере должен быть виртуальный эмулятор торгов идентичный тому, на основе которого создана ТС. Этот эмулятор постоянно держит в памяти историю торгов длинной равной оптимальной и после каждой реальной сделки, так оптимизирует свои параметры, что бы виртуальная эквити была максимальна. Затем, найденый параметры передаются реальной МТС и по ним она входит очередной раз в рынок. Операция с виртуальной оптимизацией повторяется. Цикл.
kharko, боюсь, что такая военная хитрость может не прокатить... и вот почему. Дело в том, что ошибка обобщения тестера не опирается на Expected payoff, т.е не рассматривает доходность как параметр при минимизации которого была получена оценка. В основу положен Байесовский классификатор и нормирование доходности в задачу не входит. Прочитайте абзац в статье которую я выложил выше(стр.56).
Объясните, что такое статистически наилучший эффект оптимизации? Как вы его понимаете?
Свое понимание наилучшего оптимизируемого варианта я привел выше... Прежде чем что-то сравнивать и говорить это лучше, а это хуже, необходимо привести сравниваемые величины к единому знаменателю... В данном случаи, таким знаменателем является обобщенное количество сделок... Критерий предложен в отрыве от вашего... Просто попутно, мысли вслух... )))
Возьмем за критерий наилучшего оптимального варианта, например, фактор восстановления... Какой вариант предпочтильнее, если фактор восстановления приблизительно равен, а количество сделок отличается на порядок.
Я выберу с большим количеством.. Почему? Потому,что такой вариант показал большую стабильность на периоде оптимизации... Вариант с меньшим количеством сделок более подвержен случайности... Иначе говоря, чтобы существенно снизить значение критерия фактора восстановления в будущем для варианта с большим количеством сделок понадобится и более длиная серия неудач, чем для варианта с меньшим количеством сделок...
Статью еще не читал...
Мне нужно звать на помощь Mathemat-a.
Никто лучше и грамотнее его не объяснит, что значит "статистически наилучший эффект". Но, если говорить по-понятиям, то я его понимаю так: на достаточно большой серии (n>100) возможны различные исходы для какого-то процесса, в нашем случае рассматривается исход следующей после оптимизации сделки. Так вот, хоть и исходы различны, но можно найти наиболее вероятный (процедура поиска описана в учебнике по матстатистике) и оценить характерный разброс для других вариантов. Этот, наиболее вероятный, и бдет максимально возможным при таком способе оптимизации параметров в тестере.
Что касается критерия оптимизации?
Только, что вывел для себя оценочный коэффициент... Может кому сгодится...
После оптимизации получаем выборку вариантов... Все варианты отличаются друг от друга, например, количеством сделок на оптимизируемом периоде...
Мысль такая, привести к общему числу количество сделок для всех прогонов, например, к оптимальному количеству сделок по критерию Neutron...
N(i) / N(op)
Полученное значение умножаем на соответствющее матожидание для i-го прогона...
N(i) / N(op) * Expected payoff (i)
Т.о получаем прибыль на каждом прогоне. Эту величину уже можно сравнивать с другими вариантами выборки...
Что-то не хватает в этой формуле? А как же учесть риски? Очень просто...
Определяемся со значением наибольшей возможной просадки и делим ее на максимальную просадку прогона...
Это коэффициент увеличения постоянного лота..
DropDown(max) / DropDown(i)
Окончательная формула коэффициента
К(оц) = N(i) / N(op) * Expected payoff (i) * DropDown(max) / DropDown(i)
Если N(op) = 1, то N(i) * Expected payoff (i) - это прибыль на i-ом прогоне.... Думаю, что N(op) должен быть равен максимальному значению количества сделок из выборки прогонов после оптимизации...
есть немного другой вариант...... давайте от исходного оттолкнемся - кривая баланса должна постоянно стремиться вверх (априори).... чем более она ровная, тем лучше.... так вот (это не новость - где-то здесь в многочисленных постах это было):
- проводим подгонку-оптмизацию на некотором периоде год-два-три.....
- используем полученные параметры для 2-3-4 форвардов по полгода, к примеру,
- отрицательные отбрасываем
- с остальными, как с врагами: в алгоритм не вписываются (количество сделок, прибыль, просадка и т.д. не пропорциальны) - выбрасываем
- остается 1-2-3 варианта параметров - вот их уже и оптимизтруем, по максимуму ))))..... гайки закручиваем т.с.
- выбираем лучший (лучшие 1-2) - ставим на демку - месяц-два (это мой вариант - когда не пипсовка, то за меньший период вряд ли вразумительный результат, котороый оценить можно, получишь)...... и только после этого торги
......
остается вопрос с периодом переоптимизации.......
скажете, что рутина - соглашусь, автоматизации подчиняется лишь частично... или "тямы" у меня не хватает )))).... так об этом и говорил в самом начале - эксперта написать просто, с любым алгоритмом обработки сделок, а вот что-то стоящее из него получить, не просто машинный ресурс нужен, но еще и готовность ручками и мозгами (что важнее) поработать )))
Что вы будете делать, если откините все варианты? ТС в топку... Но ведь ТС работает на каком-то временном интервале с одними параметрами, а на другом с другими...
Вариант Neutron, подставлять после каждой сделки наиболее оптимальные параметры, идеален, но трудно реализуем.
Более простой и легко реализуемый - это, например, при выполнении некоего критерия (например, просадка больше критического значения) остонавливаем торговлю (новые позиции не открываются, а старые ведутся советником до их закрытия) для проведения новой оптиизации, а затем запуск советника с новыми параметрами... Такой процесс можно автоматизировать...
вот тут статья про автооптимизацию есть - 'Статья "Автоматическая оптимизация торгового робота в процессе реальной торговли"'
Что вы будете делать, если откините все варианты? ТС в топку... Но ведь ТС работает на каком-то временном интервале с одними параметрами, а на другом с другими...
Вариант Neutron, подставлять после каждой сделки наиболее оптимальные параметры, идеален, но трудно реализуем.
Более простой и легко реализуемый - это, например, при выполнении некоего критерия (например, просадка больше критического значения) остонавливаем торговлю (новые позиции не открываются, а старые ведутся советником до их закрытия) для проведения новой оптиизации, а затем запуск советника с новыми параметрами... Такой процесс можно автоматизировать...
в топку :)))....... вы одно учтите, что ТС оптимизируется на каждом (приемлемом для него, конечно) временном интервале и инструменте соответственно. Причем, согласитесь, что комбинация "Эксперт-ТФ-Инструмент" - это уже совершенно другой эксперт...... вариации посчитайте - "объять необъятное" получиться........
Более простой и легко реализуемый - это, например, при выполнении некоего критерия (например, просадка больше критического значения) остонавливаем торговлю (новые позиции не открываются, а старые ведутся советником до их закрытия) для проведения новой оптиизации, а затем запуск советника с новыми параметрами... Такой процесс можно автоматизировать...
мы про оптимизацию, не про торговлю, разговариваем - правда?...... в торговле свои правила, у каждого СВОИ, и автооптимизация здесь мало чем поможет...... разубедите, плз, - только благодарен буду )
мы про оптимизацию, не про торговлю, разговариваем - правда?...... в торговле свои правила, у каждого СВОИ, и автооптимизация здесь мало чем поможет...... разубедите, плз, - только благодарен буду )
Тейк профит, стоплосс или трейлмнг - этими методами в своей торговле пользуется, практически, каждый трейдер... Почему бы тоже самое не вести для параметров ТС?....
Конечно, можно отсиживаться, пережидать просадку. а потом демонстрировать ГРААЛИ... Надеясь на авось пронесет...