ChartOpen

指定された銘柄と期間で新しいチャートを開きます。

long  ChartOpen(
  string          symbol,    // 銘柄名
  ENUM_TIMEFRAMES  period      // 期間
  );

パラメータ

symbol

[in]  チャートシンボル( NULL はエキスパートアドバイザーがに接続されている現在のチャートのシンボル)

period

[in]  チャート期間(時間軸)。ENUM_TIMEFRAMES のいずれかの値。(0 は現在のチャート期間)

戻り値

成功した場合は開かれたチャートのID、その他の場合は 0 。

注意事項

端末内に同時に開いているチャートの数は CHARTS_MAXを 超えることは出来ません。

例:

#define CHART_SYMBOL NULL
#define CHART_PERIOD PERIOD_CURRENT
 
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                              |
//+------------------------------------------------------------------+
void OnStart()
 {
//--- 新しいチャートシンボルと時間枠を設定する
  string symbol=CHART_SYMBOL;
  if(symbol==NULL)
    symbol=Symbol();
  ENUM_TIMEFRAMES timeframe = (CHART_PERIOD==PERIOD_CURRENT ? Period() : CHART_PERIOD);
 
//--- 指定された銘柄と期間で新しいチャートを開く
  long chart_id=ChartOpen(symbol, timeframe);
  if(chart_id==0)
    {
    Print("ChartOpen() failed. Error ", GetLastError());
    return;
    }
 
//--- 開いているチャートのパラメータを操作ログにプリントする
  PrintFormat("A new chart of the %s symbol has been opened with a period of %s and ChartID %I64u",
              symbol, StringSubstr(EnumToString(timeframe), 7), chart_id);
  /*
   結果:
  A new chart of the GBPUSD symbol has been opened with a period of M1 and ChartID 133346697706632016
  */
 }