ENUM_DAY_OF_WEEKとは
ENUM_DAY_OF_WEEKはMQL5で事前に定義されているenum列挙型です。
※enum列挙型についての詳細は↓の記事をご参照ください
に設定されている識別子は以下の通りです。
SUNDAY
日曜日を表します
定数値は「0」が割り当てられています
MONDAY
月曜日を表します。
定数値は「1」が割り当てられています
※定数についての詳細は↓の記事をご参照ください
TUESDAY
火曜日を表します。
定数値は「2」が割り当てられています
WEDNESDAY
水曜日を表します。
定数値は「3」が割り当てられています
THURSDAY
木曜日を表します。
定数値は「4」が割り当てられています
FRIDAY
金曜日を表します。
定数値は「5」が割り当てられています
SATURDAY
土曜日を表します。
定数値は「6」が割り当てられています
ENUM_DAY_OF_WEEKを使ったMQL5のサンプルコード
ENUM_DAY_OF_WEEKを使ったMQL5のサンプルコードは以下の通りです
// UNIX時間を基に曜日を計算する関数
int CustomDayOfWeek(datetime time)
{
// 1970年1月1日からの経過日数を計算
int days = (int)(time / 86400);
// 1970年1月1日は木曜日だったので、4を足して7で割った余りを計算
int dayOfWeek = (days + 4) % 7;
// MQL5の曜日に合わせて、日曜日を0として調整
if(dayOfWeek == 6) // UNIX時間の計算では日曜日が6
{
return 0; // MQL5では日曜日を0とする
}
else
{
return dayOfWeek + 1; // 他の曜日は1を足して調整
}
}
// スクリプトのメイン関数
void OnStart()
{
// 現在時刻を基に曜日を計算し、ENUM_DAY_OF_WEEK型にキャスト
ENUM_DAY_OF_WEEK dayOfWeek = (ENUM_DAY_OF_WEEK)CustomDayOfWeek(TimeCurrent());
// 計算された曜日を文字列に変換して表示
Print("現在の曜日(0=日曜、6=土曜): ", EnumToString(dayOfWeek));
}
このサンプルコードは、MQL5で現在の曜日を計算し、それを文字列で出力するスクリプトです
CustomDayOfWeek関数は、引数としてUNIXタイム(dateTime型)を受け取り、1970年1月1日からの経過日数をもとに現在の曜日を計算します。(86400という数字は1日=24時間を秒換算した値になります)
※UNIXタイムとは1970年1月1日 00:00:00 UTCを起点として秒数で時間を数え、それを表示する形式です。UNIXタイムについては↓の記事をご参照ください
※dateTime型についての詳細は↓の記事をご参照ください
UNIXタイムでは1970年1月1日が木曜日(4
)であるため、これを考慮して曜日を計算しています。
OnStart関数では、TimeCurrent関数を使用して現在の時刻を取得し、CustomDayOfWeek関数を通じて曜日を計算します。その結果をENUM_DAY_OF_WEEK型にタイプキャストし、EnumToString関数を用いて曜日の名前を文字列として出力しています。
※OnStart関数についての詳細は↓の記事をご参照ください
※TimeCurrent関数についての詳細は↓の記事をご参照ください
※タイプキャスト(型変換)とは、あるデータ型の値を、異なるデータ型に変換するプロセスのことです。タイプキャストについての詳細は↓の記事をご参照ください
※EnumToString関数はenum列挙型を文字列型にタイプキャストする関数です。
EnumToString関数についての詳細は↓の記事をご参照ください
<参照>
EnumToString関数/ENUM_TIMEFRAMES/TimeCurrent関数/TimeToString関数/UNIXタイム/タイムスタンプ/datetime型/iTime関数/StringToTime関数/TimeToStruct関数/GetTickCount関数/MqlDateTime構造体/タイムゾーン/TimeDaylightSavings関数/TimeGMT関数/TimeGMTOffset関数/TimeLocal関数/夏時間
————————————————————————————–
※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる
をメインコンテンツとして展開しています。
第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。