Код выкладываю, а тестер всё равно тормозит! - страница 3

 
Небольшое отступление - а зачем гонять в режиме Еври Тик или Контрол Пойнтс?
Единственно , что в немного не понравилось в коде - сравнение типов double и int.
 
Ну и проверка нового бара по времени - я так тоже не делаю.
 

Небольшое отступление - а зачем гонять в режиме Еври Тик или Контрол Пойнтс?
Единственно , что в немного не понравилось в коде - сравнение типов double и int.
Ну и проверка нового бара по времени - я так тоже не делаю.


В режиме КаждыйТик гоняется, потому как так и работает основной эксперт, по другому как же он ордера отслеживать будет? ;)
Сравнение дабли и инта убрал, оставил чистый дабл - на результат всё равно не повлияло, всё теже тормоза на билдах старше 179-го...
Проверка же нового бара по времени, по НЕМОЕМУ мнению, самая что ни на есть простая и надежная :) А моего мнения всё равно никто не спрашивал... :)
Нет, ну если честно, нормальная проверка, чем оно вам не нравится то? Работает и работает... Корректно...
А вот что с тормозами делать - кто б объяснил...
 
Если идет проверка значений индикатора на последнем завершенном баре - зачем в нулевом баре все это проверять? Вот в чем вопрос. То есть хачем режимы Эври Тик и другие? Только для ловли стопов внутри бара и перезарядки лотов при получении стопа или тейк-профита?
 
Если идет проверка значений индикатора на последнем завершенном баре - зачем в нулевом баре все это проверять? Вот в чем вопрос. То есть хачем режимы Эври Тик и другие? Только для ловли стопов внутри бара и перезарядки лотов при получении стопа или тейк-профита?

Да, для двигания трейлинга по алгоритму. Без него никак. А в нулевом баре эта проверка идет толкьо один раз, сами видите, при открытии бара.
 
прогнал твой код у себя модель - 2, AMD 2700+, WinXP SP2, RAM 512Mb
Баров в истории	57060
Смоделировано тиков	586272


14:13:47 test inputs: ADX=18; ADXPM=18; ADXPer=10; 
...
14:31:21 2005.07.29 21:30  test GBPUSD,M30: Покупка!


итого 18 минут 26 секунд!!!
заменил принт на присваивание значение временной переменной

Баров в истории	57061           <- период теста не менял , а кол-во баров увеличилось ?
Смоделировано тиков	586273         <- период теста не менял , а смоделированных тиков увеличилось ?


14:37:13 test GBPUSD,M30: loaded successfully
14:37:15 test inputs: ADX=18; ADXPM=18; ADXPer=10; 
закончил примерно 14:56 я думал что он в лог запишет , но обратил внимание на таймер


т.е. время опять более 18 минут!!!
перенес код использования индикаторов в старт

2005.08.29 14:58:47	test inputs: ADX=18; ADXPM=18; ADXPer=10; 
2005.08.29 14:58:46	test GBPUSD,M30: loaded successfully
на этот раз посмотрел на часы специально закончил в 15:13


т.е. примерное затраченное время 15 мин.
теперь сокращу число обращений к индикатору (функции) за отработку старт

 
Всё это познавательно, но вот почему он НЕ тормозит в 178 билде? а в 181, 182 - тормозит?.......
 
прогнал твой код у себя модель - 2, AMD 2700+, WinXP SP2, RAM 512Mb
Баров в истории	57060
Смоделировано тиков	586272


14:13:47 test inputs: ADX=18; ADXPM=18; ADXPer=10; 
...
14:31:21 2005.07.29 21:30  test GBPUSD,M30: Покупка!


итого 18 минут 26 секунд!!!
заменил принт на присваивание значение временной переменной

Баров в истории	57061           <- период теста не менял , а кол-во баров увеличилось ?
Смоделировано тиков	586273         <- период теста не менял , а смоделированных тиков увеличилось ?


14:37:13 test GBPUSD,M30: loaded successfully
14:37:15 test inputs: ADX=18; ADXPM=18; ADXPer=10; 
закончил примерно 14:56 я думал что он в лог запишет , но обратил внимание на таймер


т.е. время опять более 18 минут!!!
перенес код использования индикаторов в старт

2005.08.29 14:58:47	test inputs: ADX=18; ADXPM=18; ADXPer=10; 
2005.08.29 14:58:46	test GBPUSD,M30: loaded successfully
на этот раз посмотрел на часы специально закончил в 15:13


т.е. примерное затраченное время 15 мин.
теперь сокращу число обращений к индикатору (функции) за отработку старт

2005.08.29 15:16:15	test inputs: ADX=18; ADXPM=18; ADXPer=10; 
2005.08.29 15:16:14	test GBPUSD,M30: loaded successfully
время окончания теста - 15:31:12
Баров в истории	57062                <-как ни странно количество баров и смоделированных тиков опять 
Смоделировано тиков	586274      <- увеличилось


чуть меньше 15 минут
и на конец без проверки на "новый бар" с одним обращением к индикатору (просто одино обращение к функции)

а вот без проверки на новый бар, пролетело даже глазом моргнуть не успел, потому результатов нет :)

 
это что-то глюкануло (отправлял один раз)
Всё это познавательно, но вот почему он НЕ тормозит в 178 билде? а в 181, 182 - тормозит?.......

а вот без проверки на новый бар, пролетело даже глазом моргнуть не успел, потому результатов нет :)

выходит вся проблема в
   //if(prevtime!=Time[0])
   //{
      //prevtime = Time[0];



??? а вроде как нацелено на оптимизацию работы кода :)

 
а вот без проверки на новый бар, пролетело даже глазом моргнуть не успел, потому результатов нет :)
выходит вся проблема в
   //if(prevtime!=Time[0])
   //{
      //prevtime = Time[0];



??? а вроде как нацелено на оптимизацию работы кода :)



А вот и нет. Запускаем "чистый" код:
extern double ADX=18, ADXPM=18;
extern int ADXPer=10;
datetime prevtime;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//---- 

//----------------------------------------------------------------------------------/
 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- 

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
 
if(prevtime != Time[0])
   {
   prevtime = Time[0];

   int znak=0;

} // Закрыли проверку на новый ли это бар

//----

   return(0);
  }


Летает, как из пушки.

Причина обращения: