曜日の定数
曜日の定数は、3倍スワップが執行される日を調べるときに使用されます。
主に、SymbolInfoInteger関数で使用されます。
それぞれ、SymbolInfoInteger関数の SYMBOL_SWAP_ROLLOVER3DAYSの返り値として使用されます。
曜日の定数(ENUM_DAY_OF_WEEK)
| 定数 | 値 | 説明 |
| SUNDAY | 0 | 日曜日 |
| MONDAY | 1 | 月曜日 |
| TUESDAY | 2 | 火曜日 |
| WEDNESDAY | 3 | 水曜日 |
| THURSDAY | 4 | 木曜日 |
| FRIDAY | 5 | 金曜日 |
| SATURDAY | 6 | 土曜日 |
曜日の定数の使い方
主に、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)が代入されます。





