iOpen

返回对应的图表上柱形图的开盘价(通过'shift'参数表示)。

double  iOpen(
   const string        symbol,          // 交易品种
   ENUM_TIMEFRAMES     timeframe,       // 周期
   int                 shift            // 转移
   );

参数

交易品种

[in]  金融工具的交易品种名称。NULL表示当前交易品种。

timeframe

[in]  周期。它可以是ENUM_TIMEFRAMES其中一个枚举值。0表示当前图表周期。

shift

[in]  来自时间序列返回值的指数(相对于当前柱形图的指定柱形图数量的向后偏移)。

返回值

对应的图表上柱形图的开盘价(通过'shift'参数表示)或者错误情况下为0。错误详情,请调用GetLastError()函数。

注意

这个函数始终返回实际数据。为此,它对每次调用期间指定交易品种/周期的时间序列执行请求。这意味着如果第一次函数调用时没有准备好的数据,则可能需要一些时间来准备结果。

这个函数不会存储之前的调用结果,也没有快速返回值的本地缓存。

例如:

input int shift=0;
//+------------------------------------------------------------------+
//| 函数-事件处理程序"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