iOpen

対応するチャートのバー( 'shift'パラメータで示される)の始値を返します。

double  iOpen(
  const string        symbol,         // 銘柄
  ENUM_TIMEFRAMES     timeframe,      // 期間
  int                shift           // シフト
  );

パラメータ

symbol

[in]  金融商品の名前です。NULL は現在のシンボルです。

timeframe

[in]  期間です。ENUM_TIMEFRAMES列挙体の値の1つです。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"
          );
 }

参照

CopyOpenCopyRates