ArrayMaximum & ArrayMinimum Работает быстрее в тестере чем iHighest & iLowest ПОЧЕМУ?

 

Приветсвую программисты MQL4 давно не был здесь, надеюсь все здоровы, и в здравии.

Вопрос в принципе написан в самой шапке темы, я конечно не ас в тестировании, но тест уменьшился в разы после замены iHighest & iLowest на ArrayMaximum & ArrayMinimum.

Никогда не применял такую конструкцию раньше попробовал работает, МТ4 не перестает удивлять. Кто нибудь пробовал применять ее вот так?

double H=iHigh(_Symbol,PERIOD_H1,iHighest(_Symbol,PERIOD_H1,MODE_HIGH,Bar,i)); 
double L=iLow(_Symbol,PERIOD_H1,iLowest(_Symbol,PERIOD_H1,MODE_LOW,Bar,i));      

Вот эта конструкция работает быстрее с ArrayMaximum & ArrayMinimum

double H=iHigh(_Symbol,PERIOD_H1,ArrayMaximum(High,Bar,i)); 
double L=iLow(_Symbol,PERIOD_H1,ArrayMinimum(Low,Bar,i));

Вопрос почему быстрее, и нет ли подводных камешков в этой конструкции?

Или я что то не понимаю.....

Документация по MQL5: Операции с массивами / ArrayMinimum
Документация по MQL5: Операции с массивами / ArrayMinimum
  • www.mql5.com
ArrayMinimum - Операции с массивами - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Раз массивы High[]/Low[] уже есть, ускорьте еще - откажитесь от iHigh()/iLow().
 
fxsaber #:
Раз массивы High[]/Low[] уже есть, ускорьте еще - откажитесь от iHigh()/iLow().
так High[]/Low[] хранят только текущий период, а он вызывает не текущий период а Н1
 
Aleksey Semenov #:
так High[]/Low[] хранят только текущий период, а он вызывает не текущий период а Н1

во первых, CopyHigh и CopyLow на что?
а во-вторых имелось в виду, что вместо этого:

double H=iHigh(_Symbol,PERIOD_H1,ArrayMaximum(High,Bar,i)); 
double L=iLow(_Symbol,PERIOD_H1,ArrayMinimum(Low,Bar,i));

проще записать:

double H=High[ArrayMaximum(High,Bar,i)]; 
double L=Low[ArrayMinimum(Low,Bar,i)];
Причина обращения: