MQL4の日付と時刻操作のまとめ

2024年10月1日

執筆者

佐川直弘(株式会社トリロジー取締役)

まとめ

日付と時刻操作の重要なポイントの再確認

1. 現在の日時を取得する方法
TimeCurrent():サーバー時間を取得する。
TimeLocal():ローカル時間を取得する。
2. 年、月、日、時、分、秒の取得
Year(), Month(), Day(), Hour(), Minute(), Seconds():現在の年、月、日、時、分、秒をそれぞれ取得する。
3. 日時型から特定の値を取り出す
TimeYear(), TimeMonth(), TimeDay(), TimeHour(), TimeMinute(), TimeSeconds():日時型から年、月、日、時、分、秒を取り出す。
4. 日時の比較
比較演算子(==, !=, <, <=, >, >=)を使って2つの日時を比較する。
5. 日時の演算
四則演算子(+、-)を使って日時に対して時間を足す、引く。
6. 年の中の何日目かを取得する
DayOfYear(), TimeDayOfYear():現在の日数と指定した日時の日数を取得する。
7. 曜日の取得
DayOfWeek():特定の日付の曜日を取得する。

応用例と実際のトレーディングへの活用方法

これらの機能を活用することで、以下のような応用が可能になります:

1. 特定の時間帯でのトレード
TimeCurrent() や TimeLocal() を使って特定の時間帯でトレードを開始・終了することができます。例えば、午前9時から午後5時の間だけトレードを行う設定が可能です。
2. 過去データの分析
TimeYear(), TimeMonth(), TimeDay()などを使って過去データを分析し、特定の期間のパフォーマンスを評価することができます。
3. 曜日に基づく戦略
DayOfWeek() を使って、特定の曜日にのみトレードを行う戦略を設定できます。例えば、月曜日と金曜日にはトレードを避けるといった設定が考えられます。
4. 時間経過によるイベントの設定
DayOfYear() や TimeDayOfYear() を使って、特定の日数後にイベントを設定することができます。例えば、1年間で特定の日数が経過した後に自動的にリバランスを行うといった設定が可能です。

使用例とサンプルコード

以下に、特定の時間帯でトレードを行う簡単なサンプルコードを示します。

サンプルコード
void OnTick()
{
  // 現在のサーバー時間を取得
  datetime currentTime = TimeCurrent();
  int hour = Hour(currentTime);

  // 午前9時から午後5時の間だけトレードを行う
  if(hour >= 9 && hour <= 17)
  {
      // トレードロジックをここに記述
      Print(“トレード時間内です。");
  }
  else
  {
      Print(“トレード時間外です。");
  }
}

このコードを実行すると、指定された時間帯にのみトレードロジックが実行されます。

MQL4

Posted by 佐川直弘