Использование Ask/Bid в OnCalculate

 

Написал простенький индикатор, весь код всунул B OnCalculate, я немного совершенствую индикатор. Пришёл к тому что в условии выявления сделки нужно использовать цену Bid. Смотрел примеры.

Это вставил в глобальные данные:

  bool  SymbolInfoTick(string symbol,MqlTick&  last_tick);
         MqlTick last_tick;

 а в самом условии(к примеру):

(last_tick.bid<open[0])

Он как-то перестал выдавать оповещения, решил написать:

Comment ("bid =",last_tick.bid);

и постоянно выдает 0.0. В примерах это используется в OnTick, а можно как-то использовать в OnCalculate?

 

А чем не устраивают стандартные таймсерии индикатора:

int OnCalculate (const int rates_total,      // размер входных таймсерий 
                 const int prev_calculated,  // обработано баров на предыдущем вызове 
                 const datetime& time[],     // Time 
                 const double& open[],       // Open 
                 const double& high[],       // High 
                 const double& low[],        // Low 
                 const double& close[],      // Close 
                 const long& tick_volume[],  // Tick Volume 
                 const long& volume[],       // Real Volume 
                 const int& spread[]         // Spread 
   )

В массиве close[индекс] будет самая последняя цена. "индекс" равен или "rates_total-1" или "0" - это смотря какая индексация в массиве close[].

 
ddras2:

Это вставил в глобальные данные:

 bool  SymbolInfoTick(string symbol,MqlTick&  last_tick);
         MqlTick last_tick;
Это полностью убрать и в начале OnCalculate написать
MqlTick last_tick; 
SymbolInfoTick(Symbol(), last_tick);
Причина обращения: