작업 종료됨
명시
Есть готовый советник, в советнике есть переменная OnTester, которая показывает фактор восстановления по формуле - чистая прибыль деленная на максимальную просадку в $, в виде целого числа. У этой переменной есть два фильтра. Первый фильтр, это контроль прибыли по годам/полугодиям, советник считает прибыль с 1 января по 31 декабря каждого года по отдельности, учитывая при этом весь период оптимизации заданный в тестере стратегий МТ4, если хотя бы один год убыточный, то есть с отрицательной прибылью, то OnTester показывает значение "0", с полугодиями все тоже самое, только в расчет берутся первые 6 месяцев каждого года и вторые 6 месяцев. Второй фильтр, это количество сделок, если количество сделок меньше заданного, то OnTester показывает значение "0"
Что нужно сделать?
1. Добавить в советник дату, которая бы разбивала весь период оптимизации на До и После и в поле OnTester выводилось уже не одно число, а два, через точку, по тем же правилам. Как это все должно выглядеть на практике? Задаем дату в тестере стратегий, для простоты 2000-2010, запускаем оптимизацию, определенный проход к примеру дал прибыль в 1000$ и просадку в 100$, 1000/100=10, Ontester=10, сейчас это работает так. Теперь, после добавления даты должно работать так, период оптимизации у нас тот же, в параметрах советника мы задаем дату, например 2007, это дата разбивает весь период оптимизации на 2 части, это 2000-2007 и 2007-2010, OnTester должен показывать 2 цифры через точку по той же формуле. Итак за период 2000-2007 прибыль 700$, при просадке 100$, 700/100=7, OnTester=7. За период 2007-2010 прибыль 300$, при просадке 100$, 300/100=3, OnTester=3. В конечном вариате это должно выглядеть так - OnTester=7.3, первое и второе значение через точку и возможность менять их местами в трех возможных комбинациях - OnTester=7.3, OnTester=3.7, OnTester=10. Забыл сказать, просадка в расчетах должна учитываться максимальная, то есть самая большая просадка за оба временных периода, просадку за каждый период в отдельности считать не нужно.
2. Если включен фильтр контроль прибыли по годам/полугодиям (как он работает писал выше), советник в ходе оптимизации должен прерывать проход после первого же убыточного года/полугодия, не доводя его до конечной даты и переходить к следующему проходу