Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 38

 
Вот пример использоания мной индикатора, они у миня все однотипные.
double  iMAf( string symbol, ENUM_TIMEFRAMES timeframe, int period, int ma_shift, ENUM_MA_METHOD ma_method, int applied_price, int shift){
 
 
 
                   int handle=iMA(symbol,timeframe,periodd(period),ma_shift, ma_method,applied_price);Sleep(2000);
                    CopyBuffer(handle,0,0,100,MA);
                    ArraySetAsSeries(MA,true);
    return( (MA[shift])); } 
                   

Прописано вне всех функций

 double MA[]; 
//---- handles for indicators
int MA_handle;

   Я в целом что-то не так прописал, или где в общем смотреть, что ему не так? 

 

Хендлы создаются в OnInit()

void OnInit()
  {
   ma_h=iMA(_Symbol,_Period,MA_Period,0,MODE_SMA,PRICE_CLOSE);
  }

 Данные получаем в OnTick () 

void OnTick()
  {
   CopyBuffer(ma_h,0,1,2,ma);
  }

 Это пример стандартной конструкции.

 
Щас, я конкретно эти индикаторы найду с помощью нотепада
 
Спасибо!!!!
 
Он инит срабатывает лиш раз, при пуске, а потом??
 
Один раз создали индикаторы,а потом ,в процессе работы,получаете с них значения.
 
Извиняюсь, а что заставит хендл перерисовываться с приходом новых тиков или хотя бы баров, если он создается в он инит? Правда, просто хочу понять.
 
Dimka-novitsek:
Извиняюсь, а что заставит хендл перерисовываться с приходом новых тиков или хотя бы баров, если он создается в он инит? Правда, просто хочу понять.
хендл это id, ссылка на индикатор. один раз получили, а потом CopyBuffer( хендл,....)
 
Dimka-novitsek:
 Четыри тысячи триста два-это же не строка, и вообще что не так?

Когда компилятор выдаёт ошибку, он указывает номер строки и номер позиции курсора.

Когда терминал выдаёт ошибку, он указывает номер ошибки. См. в Справочнике раздел "Ошибки времени выполнения", и какая ошибка соответствует значению "4302". Место создания хендлов - это уже попутный вопрос :)

 
СПАСИБО!!
Причина обращения: