Инициализация эксперта при тестировании

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Igor
247
Igor  
Проходит ли переинициализация эксперта при каждом прогоне тестера ?
Rashid Umarov
Админ
16669
Rashid Umarov  
Поставьте в функцию init() блок увеличения счетчика в Глобальной переменной и увидите точно. Мое мнение - инициализация происходит при каждом запуске тестирования.
Igor
247
Igor  
Rosh:
Поставьте в функцию init() блок увеличения счетчика в Глобальной переменной и увидите точно. Мое мнение - инициализация происходит при каждом запуске тестирования.


да, переинициализации не происходит, а хотелось бы


есть ли варианты запуска одной функции за один прогон без использования внешних файлов ?

Figar0
5201
Figar0  
Loknar:
Rosh:
Поставьте в функцию init() блок увеличения счетчика в Глобальной переменной и увидите точно. Мое мнение - инициализация происходит при каждом запуске тестирования.


да, переинициализации не происходит, а хотелось бы


есть ли варианты запуска одной функции за один прогон без использования внешних файлов ?


Наверно Вы неправильно смотрите, должна происходить. М.б. Вы глобальную переменную объявляете внутри эксперта, соответственно она переобъявляется при каждом запуске?
Igor
247
Igor  
Figar0:
Наверно Вы неправильно смотрите, должна происходить. М.б. Вы глобальную переменную объявляете внутри эксперта, соответственно она переобъявляется при каждом запуске?

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; надо писать что-то другое ? с совсем глобальными просто не работал..

Rashid Umarov
Админ
16669
Rashid Umarov  
Скомпилируйте этого советника:
//+------------------------------------------------------------------+
//|                                          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". Посмотрите ее значение. Прогоните еще раз оптимизацию, опять посмотрите ее значение. Удалите ее, опять прогоните оптимизацию, посмотрите. Делайте выводы.
Igor
247
Igor  
Rosh:
Скомпилируйте этого советника:

После прогона оптимизации нажмите F3 и найдите глобальную переменную с именем "pass". Посмотрите ее значение. Прогоните еще раз оптимизацию, опять посмотрите ее значение. Удалите ее, опять прогоните оптимизацию, посмотрите. Делайте выводы.


Спасибо Rosh.


Выводы такие что переинициализируется все ж. Другой вопрос что после рестарта переоптимизации этого не происходит :) Хотя если убрать галочку оптимизации, пронать раз без нее, затем снова ее включить - снова переинициализируется :) Чудеса...


Еще вопрос не по теме - почему в истории более 56000 баров, а при запуске тестера он видит только 1002 бара ? (Print(Bars);) Бары часовые, их же и выбираю в качестве ТФ для теста

Rashid Umarov
Админ
16669
Rashid Umarov  
Вы знаете, очень трудно отвечать на одни и те же вопросы. Только недавно это обсуждалось на форуме, пользуйтесь поиском.
Igor
247
Igor  
Rosh:
Вы знаете, очень трудно отвечать на одни и те же вопросы. Только недавно это обсуждалось на форуме, пользуйтесь поиском.

полазил по последним темам за два месяца (поиск по "история котировок тестирование") - ничего не нашел на мой вопрос
Rashid Umarov
Админ
16669
Rashid Umarov  
Странное поведение переменной Bars в тестере.
Andrey Khatimlianskii
56042
Andrey Khatimlianskii  
Loknar:
полазил по последним темам за два месяца (поиск по "история котировок тестирование") - ничего не нашел на мой вопрос
1. Поиск
2. 2-я страничка
3. Странное поведение переменной Bars в тестере.
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий