Советники: Использование функции ExpertRemove() значительно уменьшает время тестирования

 

Использование функции ExpertRemove() значительно уменьшает время тестирования:

Использование функции ExpertRemove() значительно уменьшает время тестирования

Использование функции ExpertRemove() значительно уменьшает время тестирования

Автор: lucik

 
Доброго дня. Спасибо. Полезный хак.
 
Специально проверил с секундомером.Вывод неутешительный-любой доп. код     типа проверки маржи спреда и т .д увеличивают время тестирование и чтобы 1-2 реально отработала функция ExpertRemove на вашем периоде времени теста сов должен постоянно отслеживать изменения маржи спреда и т.д. Все это тормозит скорость тестирования.        
 
jensen11 #:
Специально проверил с секундомером.Вывод неутешительный-любой доп. код     типа проверки маржи спреда и т .д увеличивают время тестирование и чтобы 1-2 реально отработала функция ExpertRemove на вашем периоде времени теста сов должен постоянно отслеживать изменения маржи спреда и т.д. Все это тормозит скорость тестирования.        

не совсем понятна ваша методика тестирования и поэтому трудно вам возразить, возможно, при тестировании в ваших условиях вы и правы, но сколько раз я не делал эти тесты, во всех своих идеях я применяю эту функцию и результаты её работы действительно экономят огромное количество часов тестирования. использование AccountInfoDouble(ACCOUNT_MARGIN_FREE) в тестере занимает микросекунды, а продолжение прогона при нулевом депозите (или меньшим изначального) и достаточно большом временном интервале занимает минуты! потеря нескольких секунд на один проход в обмен на экономию нескольких минут кажется очевидно эффективной. пока я пишу этот текст тестируется одна идея с ограничением 800 (от изначального депозита в 1000) и длительностью 19 дней (с начала месяца по текущее число). то есть, в тестере я вижу много отрицательных результатов от проходов, которые заканчиваются сразу же как только ACCOUNT_MARGIN_FREE станет меньше 800, тестер не продолжает этот проход до минимально возможной маржи для инструмента, потому что зачем? убедиться что этот проход сливает депозит в ноль? :) слишком много таких проходов будет и слишком много времени это займет. можно было вообще задать ограничение 999, но я добрый, допускаю некоторую просадку, поэтому 800. есть проходы с 1-2 сделками, есть проходы с 38-42 сделками, но результат один - просадка на 200+ и вылет из тестирования. мы все тут вроде про "заработать денежек, а не потерять" :) я понимаю, что вряд ли мой ответ вас в чем-то переубедит, но как мне кажется, использование связки  AccountInfoDouble(ACCOUNT_MARGIN_FREE)<=FreeMargin (или любого другого условия) и ExpertRemove() способно в разы уменьшить время на тестирование. даже в примере из статьи можно посмотреть на скриншоты с расчетным временем и увидеть что без функции 1 проход тестирования проходил тест за 20 секунд, а с функцией за 3 секунды пробежало 52 прохода, потому что все из них сливали депозит до нужного условия (<=90).

 
jensen11 #:
Специально проверил с секундомером.Вывод неутешительный-любой доп. код     типа проверки маржи спреда и т .д увеличивают время тестирование и чтобы 1-2 реально отработала функция ExpertRemove на вашем периоде времени теста сов должен постоянно отслеживать изменения маржи спреда и т.д. Все это тормозит скорость тестирования.        

без контроля маржи


с контролем свободной маржи


как видно из скриншотов, контроль за свободной маржей (депозитом) очень-очень сильно-сильно ускоряет тестирование!