Скачать MetaTrader 5

Вопрос о циклах советника вне функции start()

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Сергей
20
Сергей  

Здравствуйте,

Подскажите, пожалуйста как реализовать для советника(для использования на тестере стратегий) условное кол-во циклов? В каждом последующем цикле будет меняться значение переменной используемой внутри функции start().  Иными словами, чтобы советник на тестере исполнив операторы функции start() на временном отрезке повторил эти же операторы на этом же отрезке, но с другим значением переменной...

Буду очень признателен... и заранее благодарен) 

ktest0
629
ktest0  

Это очень просто - выведите эти переменные в extern и тестируйте в режиме оптимизации с указанием диапазона и шага изменения.

Сергей
20
Сергей  
Согласен, пробовал - работает, но в некоторых случаях, а именно в которых мне интересно, получается довольно большое кол-во циклов и данный способ оказывается чрезмерно долгим и трудоемким. По всей видимости возможно реализовать те же действия в программе с выводом только интересующих значений, что пока что у меня не получается...
ktest0
629
ktest0  

В extern укажите одну переменную int допустим 1,2,3,4,5, а внутри советника проверку если 1 - первый набор переменных, 2- второй набор и прочее...

Вызывайте с шагом 1 и так проверите .

Сергей
20
Сергей  
Мммм... да так получается быстрее чем в предыдущем случае... Спасибо за идею, пока буду действовать таким образом... и все таки остается вопрос о том, как это реализовать программно... очень уж засела эта конструкция, да и применимо к другим целям она окажется востребована... Есть мысли на этот счет? 
TarasBY
1740
TarasBY  
O.Sergey:
Мммм... да так получается быстрее чем в предыдущем случае... Спасибо за идею, пока буду действовать таким образом... и все таки остается вопрос о том, как это реализовать программно... очень уж засела эта конструкция, да и применимо к другим целям она окажется востребована... Есть мысли на этот счет? 
Когда мы имеем несколько значимых переменных, участвующих в формировании конечного результата, а не все комбинации их параметров (для процесса оптимизации) имеют "валидность" (например, когда в советнике есть и БУ и трал, то БУ должен быть меньше размера трала), то можно посмотреть такое решение. В частности функция fSet_Continue().
Сергей
20
Сергей  
TarasBY:
Когда мы имеем несколько значимых переменных, участвующих в формировании конечного результата, а не все комбинации их параметров (для процесса оптимизации) имеют "валидность" (например, когда в советнике есть и БУ и трал, то БУ должен быть меньше размера трала), то можно посмотреть такое решение. В частности функция fSet_Continue().

Спасибо, а не подскажете: есть ли решения для организации некого алгоритма как бы над функцией старт, т.е. чтобы результаты полученные после исполнения функции старт на временном отрезке можно было обработать и запустить снова функцию старт...(как бы для второго описанного вами условия)?
TarasBY
1740
TarasBY  
O.Sergey:

Спасибо, а не подскажете: есть ли решения для организации некого алгоритма как бы над функцией старт, т.е. чтобы результаты полученные после исполнения функции старт на временном отрезке можно было обработать и запустить снова функцию старт...(как бы для второго описанного вами условия)?
Я своё решение эффективно использую при оптимизации - т.е. у меня есть и формализация задачи и её решение, которое позволяет значительно уменьшить время оптимизации, "пропуская" "несущественные" комбинации оптимизируемых параметров. С Вашей формализацией мне не понятно.
Сергей
20
Сергей  
TarasBY:
Я своё решение эффективно использую при оптимизации - т.е. у меня есть и формализация задачи и её решение, которое позволяет значительно уменьшить время оптимизации, "пропуская" "несущественные" комбинации оптимизируемых параметров. С Вашей формализацией мне не понятно.
Прошу прощения - это наверное я чего то ни как не уловлю - не так давно занимаюсь программированием...) Эмм... не могли бы вы вкратце описать суть программного повторного запуска тестирования советника? Буду очень признателен)
TarasBY
1740
TarasBY  
O.Sergey:
Прошу прощения - это наверное я чего то ни как не уловлю - не так давно занимаюсь программированием...) Эмм... не могли бы вы вкратце описать суть программного повторного запуска тестирования советника? Буду очень признателен)
Сначала нужно уточнить, как происходит процесс оптимизации: тестер загружает комбинацию входных параметров (переменные extern) и прогоняет по всему отрезку заданной истории, затем загружает новую комбинацию входных параметров и процесс прогона по истории повторяется и так до тех пор, пока тестер не переберёт все возможные комбинации входных параметров. Так вот мой код анализирует загруженные входные параметры и, если конкретная комбинация попадает под понятие "несущественная", советник заканчивает работу функции start() после прохождения функции fSet_Continue(), которая расположена в самом её начале. Т.е. при такой комбинации параметров прогон осуществляется в "сокращённом" виде - очень быстро. Такая схема.
Сергей
20
Сергей  
TarasBY:
Сначала нужно уточнить, как происходит процесс оптимизации: тестер загружает комбинацию входных параметров (переменные extern) и прогоняет по всему отрезку заданной истории, затем загружает новую комбинацию входных параметров и процесс прогона по истории повторяется и так до тех пор, пока тестер не переберёт все возможные комбинации входных параметров. Так вот мой код анализирует загруженные входные параметры и, если конкретная комбинация попадает под понятие "несущественная", советник заканчивает работу функции start() после прохождения функции fSet_Continue(), которая расположена в самом её начале. Т.е. при такой комбинации параметров прогон осуществляется в "сокращённом" виде - очень быстро. Такая схема.


Большое спасибо - попробую разобраться)
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий