Поставьте в функцию init() блок увеличения счетчика в Глобальной переменной и увидите точно. Мое мнение - инициализация происходит при каждом запуске тестирования.
да, переинициализации не происходит, а хотелось бы
есть ли варианты запуска одной функции за один прогон без использования внешних файлов ?
Поставьте в функцию init() блок увеличения счетчика в Глобальной переменной и увидите точно. Мое мнение - инициализация происходит при каждом запуске тестирования.
да, переинициализации не происходит, а хотелось бы
есть ли варианты запуска одной функции за один прогон без использования внешних файлов ?
Наверно Вы неправильно смотрите, должна происходить. М.б. Вы глобальную переменную объявляете внутри эксперта, соответственно она переобъявляется при каждом запуске?
extern int B=1; int A=10; int init() { A+=20; return(0); } int start() { if (TimeMonth(TimeCurrent())==1 && TimeDay(TimeCurrent())==1) OrderSend(Symbol(), OP_BUY, 0.1, Ask, 10, Ask-A*Point, Ask+A*Point, "N3", 111, 0); return(0); }
Я вот так сделал - прибыль остается одной и той же.
Наверное вместо задания int A=10; надо писать что-то другое ? с совсем глобальными просто не работал..
//+------------------------------------------------------------------+ //| CheckInitialization.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ru/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/ru/" //---- input parameters extern int ExtParam1=1; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- int p=0; if (GlobalVariableCheck("pass")) p=GlobalVariableGet("pass"); p++; GlobalVariableSet("pass",p); //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- //---- return(0); } //+------------------------------------------------------------------+
и укажите такие параметры оптимизации
После прогона оптимизации нажмите F3 и найдите глобальную переменную с именем "pass". Посмотрите ее значение. Прогоните еще раз оптимизацию, опять посмотрите ее значение. Удалите ее, опять прогоните оптимизацию, посмотрите. Делайте выводы.
Скомпилируйте этого советника:
После прогона оптимизации нажмите F3 и найдите глобальную переменную с именем "pass". Посмотрите ее значение. Прогоните еще раз оптимизацию, опять посмотрите ее значение. Удалите ее, опять прогоните оптимизацию, посмотрите. Делайте выводы.
Спасибо Rosh.
Выводы такие что переинициализируется все ж. Другой вопрос что после рестарта переоптимизации этого не происходит :) Хотя если убрать галочку оптимизации, пронать раз без нее, затем снова ее включить - снова переинициализируется :) Чудеса...
Еще вопрос не по теме - почему в истории более 56000 баров, а при запуске тестера он видит только 1002 бара ? (Print(Bars);) Бары часовые, их же и выбираю в качестве ТФ для теста
Вы знаете, очень трудно отвечать на одни и те же вопросы. Только недавно это обсуждалось на форуме, пользуйтесь поиском.
полазил по последним темам за два месяца (поиск по "история котировок тестирование") - ничего не нашел на мой вопрос
полазил по последним темам за два месяца (поиск по "история котировок тестирование") - ничего не нашел на мой вопрос
2. 2-я страничка
3. Странное поведение переменной Bars в тестере.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования