SymbolInfoSessionTrade

指定された銘柄と曜日での指定された相場セッションの開始と終了の時間を受け取ることができます。

bool  SymbolInfoSessionTrade(
  string            name,                // 銘柄名
  ENUM_DAY_OF_WEEK  day_of_week,         // 曜日
  uint              session_index,      // セッションインデックス
  datetime&        from,                // セッション開始時刻
  datetime&        to                  // セッション終了時刻
  );

パラメータ

name

[in]  銘柄名

ENUM_DAY_OF_WEEK

[in]  曜日。ENUM_DAY_OF_WEEK 列挙の値

uint

[in]  開始と終了時刻を受け取りたいセッションの序数。セッションの番号付けは 0 から始まります。

from

[out]  00 時 00 分から経過した秒数でのセッション開始時刻。戻り値の date は無効。

to

[out]  00 時 00 分から経過した秒数でのセッション終了時刻。戻り値の date は無効。

戻り値

指定されたセッションのデータ、銘柄と曜日が受信された場合は true、それ以外の場合は false

例:

#define SYMBOL_NAME   Symbol()
#define SESSION_INDEX 0
 
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                              |
//+------------------------------------------------------------------+
void OnStart()
 {
//--- シンボルとSESSION_INDEXを含むヘッダーを出力し、
//--- 月曜日から金曜日までの曜日ごとのループで、取引セッションの開始時刻と終了時刻を操作ログに出力する
  PrintFormat("Symbol %s, Trade session %d:", SYMBOL_NAME, SESSION_INDEX);
  for(int i=MONDAY; i<SATURDAY; i++)
    SymbolInfoSessionTradePrint(SYMBOL_NAME, (ENUM_DAY_OF_WEEK)i, SESSION_INDEX);
  /*
  結果:
  Symbol GBPUSD, Trade session 0:
  - Monday     00:15 - 23:55
  - Tuesday   00:15 - 23:55
  - Wednesday 00:15 - 23:55
  - Thursday   00:15 - 23:55
  - Friday     00:15 - 23:55
  */
 }
//+------------------------------------------------------------------+
//| 指定された取引セッションの開始時刻と終了時刻を送信する                         |
//| 開始時刻と終了時刻を操作ログに送信する                                    |
//+------------------------------------------------------------------+
void SymbolInfoSessionTradePrint(const string symbol, const ENUM_DAY_OF_WEEK day_of_week, const uint session_index)
 {
//--- 取引セッションの開始と終了を記録する変数を宣言する
  datetime date_from; // セッションの開始時刻
  datetime date_to;   // セッションnお終了時刻
 
//--- 銘柄と曜日別に取引セッションからデータを取得する
  if(!SymbolInfoSessionTrade(symbol, day_of_week, session_index, date_from, date_to))
    {
    Print("SymbolInfoSessionTrade() failed. Error ", GetLastError());
    return;
    }
   
//--- 列挙定数から曜日名を作成する
  string week_day=EnumToString(day_of_week);
  if(week_day.Lower())
    week_day.SetChar(0, ushort(week_day.GetChar(0)-32));
 
//--- 指定された取引セッションのデータを操作ログに送信する
  PrintFormat("- %-10s %s - %s", week_day, TimeToString(date_from, TIME_MINUTES), TimeToString(date_to, TIME_MINUTES));
 }

参照

シンボルプロパティTimeToStructデータ構造体