【MQL5】定義済み列挙型のENUM_DAY_OF_WEEKについて

MQL5リファレンス
スポンサーリンク
スポンサーリンク

ENUM_DAY_OF_WEEKとは

ENUM_DAY_OF_WEEKMQL5で事前に定義されている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関数/夏時間

————————————————————————————–

※当サイトでは、プログラミング経験ゼロの方でも、プログラミングの基礎から学べる

<MQL5でEAを作ろう講座>

をメインコンテンツとして展開しています。

【言語基礎編】

【中級実際にEAを作ろう編】

【発展編・MT5用EAを作る工程をカスタマイズしていく】

第0回から、順を追って勉強していけばプログラミングの経験がなくてもMQL5を使って、MT5用のEAが作れるように書いています。最初は難しいと感じるかもしれませんが、繰り返し勉強していく事で自然とスキルが身についていくはずです。興味ある方は是非ご覧ください。

タイトルとURLをコピーしました