iOpen

Возвращает значение цены открытия бара (указанного параметром shift) соответствующего графика.

double  iOpen(
   const string        symbol,          // символ
   ENUM_TIMEFRAMES     timeframe,       // период
   int                 shift            // сдвиг
   );

Параметры

symbol

[in]  Символьное имя инструмента. NULL означает текущий символ.

timeframe

[in]  Период. Может быть одним из значений перечисления ENUM_TIMEFRAMES. 0 означает период текущего графика.

shift

[in]  Индекс получаемого значения из таймсерии (сдвиг относительно текущего бара на указанное количество баров назад).

Возвращаемое значение

Значение цены открытия бара (указанного параметром shift) соответствующего графика или 0 в случае ошибки. Для получения дополнительной информации об ошибке необходимо вызвать функцию GetLastError().

Примечание

Функция всегда возвращает актуальные данные, для этого она при каждом вызове делает запрос к таймсерии по указанным символу/периоду. Это означает, что при отсутствии готовых данных на первом вызове функции может понадобиться некоторое время для подготовки результата выполнения.

Функция не хранит результатов предыдущих вызовов, локального кеша для быстрого возврата значения нет.

Пример:

input int shift=0;
//+------------------------------------------------------------------+
//| Function-event handler "tick"                                    |
//+------------------------------------------------------------------+
void OnTick()
  {
   datetime time  = iTime(Symbol(),Period(),shift);
   double   open  = iOpen(Symbol(),Period(),shift);
   double   high  = iHigh(Symbol(),Period(),shift);
   double   low   = iLow(Symbol(),Period(),shift);
   double   close = iClose(NULL,PERIOD_CURRENT,shift);
   long     volume= iVolume(Symbol(),0,shift);
   int      bars  = iBars(NULL,0);
 
   Comment(Symbol(),",",EnumToString(Period()),"\n",
           "Time: "  ,TimeToString(time,TIME_DATE|TIME_SECONDS),"\n",
           "Open: "  ,DoubleToString(open,Digits()),"\n",
           "High: "  ,DoubleToString(high,Digits()),"\n",
           "Low: "   ,DoubleToString(low,Digits()),"\n",
           "Close: " ,DoubleToString(close,Digits()),"\n",
           "Volume: ",IntegerToString(volume),"\n",
           "Bars: "  ,IntegerToString(bars),"\n"
           );
  }

Смотри также

CopyOpen, CopyRates