【MQL4定数】曜日の定数(ENUM_DAY_OF_WEEK)

【辞書】MQLリファレンス

曜日の定数

曜日の定数は、3倍スワップが執行される日を調べるときに使用されます。

主に、SymbolInfoInteger関数で使用されます。

それぞれ、SymbolInfoInteger関数の SYMBOL_SWAP_ROLLOVER3DAYSの返り値として使用されます。

 

曜日の定数(ENUM_DAY_OF_WEEK)

 

定数説明
SUNDAY0日曜日
MONDAY1月曜日
TUESDAY2火曜日
WEDNESDAY3水曜日
THURSDAY4木曜日
FRIDAY5金曜日
SATURDAY6土曜日

曜日の定数の使い方

主に、SymbolInfoInteger関数で使用されます。

それぞれ、SymbolInfoInteger関数の SYMBOL_SWAP_ROLLOVER3DAYSの返り値として使用されます。

ENUM_DAY_OF_WEEK型の変数を作り、その変数にSymbolInfoIntegerの返り値を代入しましょう。

例えば、以下のように使用します。

SymbolInfoIntegerの返り値を ENUM_DAY_OF_WEEK型にキャスト(型変換)し、変数に代入しています。

  //SymbolInfoInteger関数
  //3倍スワップが執行される曜日を取得
  ENUM_DAY_OF_WEEK dayOfWeek = (ENUM_DAY_OF_WEEK)SymbolInfoInteger(_Symbol, SYMBOL_SWAP_ROLLOVER3DAYS);

 

返り値は ENUM_DAY_OF_WEEK型です。

 

プログラム例

以下は、現在のチャートの通貨ペアについて、3倍スワップが執行される曜日を取得し、エキスパートログに出力するプログラム例です。

//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                        |
//+------------------------------------------------------------------+
void OnStart()
{
   // 3倍スワップが執行される曜日を取得
   ENUM_DAY_OF_WEEK dayOfWeek = (ENUM_DAY_OF_WEEK)SymbolInfoInteger(_Symbol, SYMBOL_SWAP_ROLLOVER3DAYS);

   // 曜日名を格納する変数
   string dayName = "";

   // 曜日の定数に応じて曜日名を設定
   switch(dayOfWeek)
   {
      case SUNDAY:    dayName = "日曜日"; break;
      case MONDAY:    dayName = "月曜日"; break;
      case TUESDAY:   dayName = "火曜日"; break;
      case WEDNESDAY: dayName = "水曜日"; break;
      case THURSDAY:  dayName = "木曜日"; break;
      case FRIDAY:    dayName = "金曜日"; break;
      case SATURDAY:  dayName = "土曜日"; break;
      default:        dayName = "不明";   break;
   }

   // 結果をエキスパートログに出力
   Print(_Symbol + " の3倍スワップ執行曜日: " + dayName + "(値: " + IntegerToString(dayOfWeek) + ")");
}

 

多くのFXブローカーでは、水曜日(WEDNESDAY)に3倍スワップが適用されます。これは土日分のスワップをまとめて付与するためです。

 

【補足】曜日の定数の列挙型(ENUM_DAY_OF_WEEK)

曜日の定数は、ENUM_DAY_OF_WEEK​という列挙型に含まれています。

列挙型は、定数群をひとまとめにしたものです。

以下のように使います。

ENUM_DAY_OF_WEEK dayOfWeek = SUNDAY;

上記のようにプログラムすると、dayOfWeek変数に SUNDAYの数値(0)が代入されます。