取引時間について

EAつくーる
れんくん
2024/09/06 12:41
135

EAつくーるで取引時間の設定がありますが、曜日ごとに細かく取引時間の設定をするにはどんなコードを書けばいいでしょうか?

コメント

GogoJungle
2024/09/09 16:56

「取引時間制限」オプションにチェックを入れ、適当な時刻を設定した状態のmq4ファイルをダウンロードしていただいた後、if(isTimeFilter == true ~中略~) signal = 0;と記載されている 全ての 行を下記のように書き換えることで実装可能です。

例:新規エントリーについて、

  • 月曜日の09:00~12:00,13:00~15:00
  • 火曜日の09:00~15:00
  • 金曜日の15:00~19:00

のみを許可する場合

   if(isTimeFilter == true){
      if(DayOfWeek() == 0) { // 日曜日
         signal = 0;
      }
      if(DayOfWeek() == 1) { // 月曜日
         if(TimeFilter(signal, "09:00", "12:00") == false && TimeFilter(signal, "13:00", "15:00") == false) signal = 0;
      }
      if(DayOfWeek() == 2) { // 火曜日
         if(TimeFilter(signal, "09:00", "15:00") == false) signal = 0;
      }
      if(DayOfWeek() == 3) { // 水曜日
         signal = 0;
      }
      if(DayOfWeek() == 4) { // 木曜日
         signal = 0;
      }
      if(DayOfWeek() == 5) { // 金曜日
         if(TimeFilter(signal, "15:00", "19:00") == false) signal = 0;
      }
      if(DayOfWeek() == 6) { // 土曜日
         signal = 0;
      }
   }
れんくん
2024/09/19 21:54

こちらはロットやナンピン数みたいに設定?で簡単に変えれるようにするにはどうしたらよいでしょうか??

GogoJungle
2024/09/24 18:32

パラメーターを変更できるようにするということですね。
「取引時間制限」オプションにチェックを入れ、適当な時刻を設定した状態のmq4ファイルをダウンロードしていただいた後、下記の通りに書き換えてみてください。

1. 変数の定義

input bool isTimeFilter = true;と書いてある行の下に、下記のように記述します。

input string SunStartTime1 = "09:00"; // 日曜日の取引開始時間1
input string SunEndTime1   = "12:00"; // 日曜日の取引終了時間1
input string SunStartTime2 = "13:00"; // 日曜日の取引開始時間2
input string SunEndTime2   = "16:00"; // 日曜日の取引終了時間2
input string MonStartTime1 = "09:00"; // 月曜日の取引開始時間1
input string MonEndTime1   = "12:00"; // 月曜日の取引終了時間1
input string MonStartTime2 = "13:00"; // 月曜日の取引開始時間2
input string MonEndTime2   = "16:00"; // 月曜日の取引終了時間2
input string TueStartTime1 = "09:00"; // 火曜日の取引開始時間1
input string TueEndTime1   = "12:00"; // 火曜日の取引終了時間1
input string TueStartTime2 = "13:00"; // 火曜日の取引開始時間2
input string TueEndTime2   = "16:00"; // 火曜日の取引終了時間2
input string WedStartTime1 = "09:00"; // 水曜日の取引開始時間1
input string WedEndTime1   = "12:00"; // 水曜日の取引終了時間1
input string WedStartTime2 = "13:00"; // 水曜日の取引開始時間2
input string WedEndTime2   = "16:00"; // 水曜日の取引終了時間2
input string ThuStartTime1 = "09:00"; // 木曜日の取引開始時間1
input string ThuEndTime1   = "12:00"; // 木曜日の取引終了時間1
input string ThuStartTime2 = "13:00"; // 木曜日の取引開始時間2
input string ThuEndTime2   = "16:00"; // 木曜日の取引終了時間2
input string FriStartTime1 = "09:00"; // 金曜日の取引開始時間1
input string FriEndTime1   = "12:00"; // 金曜日の取引終了時間1
input string FriStartTime2 = "13:00"; // 金曜日の取引開始時間2
input string FriEndTime2   = "16:00"; // 金曜日の取引終了時間2
input string SatStartTime1 = "09:00"; // 土曜日の取引開始時間1
input string SatEndTime1   = "12:00"; // 土曜日の取引終了時間1
input string SatStartTime2 = "13:00"; // 土曜日の取引開始時間2
input string SatEndTime2   = "16:00"; // 土曜日の取引終了時間2

2. 取引時間のチェック

if(isTimeFilter == true ~中略~) signal = 0;と記載されている 全ての 行を下記のように書き換えます。

   if(isTimeFilter == true){
      if(DayOfWeek() == 0) { // 日曜日
         if(TimeFilter(signal, SunStartTime1, SunEndTime1) == false && TimeFilter(signal, SunStartTime2, SunEndTime2) == false) signal = 0;
      }
      if(DayOfWeek() == 1) { // 月曜日
         if(TimeFilter(signal, MonStartTime1, MonEndTime1) == false && TimeFilter(signal, MonStartTime2, MonEndTime2) == false) signal = 0;
      }
      if(DayOfWeek() == 2) { // 火曜日
         if(TimeFilter(signal, TueStartTime1, TueEndTime1) == false && TimeFilter(signal, TueStartTime2, TueEndTime2) == false) signal = 0;
      }
      if(DayOfWeek() == 3) { // 水曜日
         if(TimeFilter(signal, WedStartTime1, WedEndTime1) == false && TimeFilter(signal, WedStartTime2, WedEndTime2) == false) signal = 0;
      }
      if(DayOfWeek() == 4) { // 木曜日
         if(TimeFilter(signal, ThuStartTime1, ThuEndTime1) == false && TimeFilter(signal, ThuStartTime2, ThuEndTime2) == false) signal = 0;
      }
      if(DayOfWeek() == 5) { // 金曜日
         if(TimeFilter(signal, FriStartTime1, FriEndTime1) == false && TimeFilter(signal, FriStartTime2, FriEndTime2) == false) signal = 0;
      }
      if(DayOfWeek() == 6) { // 土曜日
         if(TimeFilter(signal, SatStartTime1, SatEndTime1) == false && TimeFilter(signal, SatStartTime2, SatEndTime2) == false) signal = 0;
      }
   }

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。