稼働時間の設定について

EAつくーる
ただの24歳
2025/01/08 11:34
21

お世話になります。

パラメータ項目に以下の内容を追加する場合のコードをご教授いただければと思います。

・経済指標停止機能の利用(true/false)
・停止する経済指標のレート(A~SS)羊飼いFXサイト参照
・指標前エントリー停止(分)
・指標後エントリー再開(分)

・時間設定【日本時間】
・月曜日の取引(true/false)
・月曜日の取引開始時間
・月曜日の取引終了時間
…以下、金曜日まで同様のパラメータ項目にする

よろしくお願いいたします。

コメント

GogoJungle
2025/01/09 12:44

経済指標を参照して停止・再開する機能のご提供にはテストも含めかなりの工数がかかりますため、弊社からの回答は控えさせていただきます。

代わりに、過去のQAにて指定した日付と時刻で取引を停止・再開するためのコードの修正例がございますので共有させていただきます。

https://labo.gogojungle.co.jp/articles/2039

時間設定はMT4のサーバー時間となりますので、夏時間の場合は日本時間-6, 冬時間の場合は日本時間-7してください。

曜日ごとのエントリー可能時間の制限は、「取引時間制限」オプションにチェックを入れ、「追加」ボタンを押して作成したEAのソースコードを、下記を参考にご修正ください。

変数の定義

曜日ごとの取引の可否を決める変数、曜日ごとの取引の開始・終了時刻を表す変数を定義します。

【修正前】

input bool isTimeFilter = true;
input string TimeFilterStartTime1 = "00:00";
input string TimeFilterEndTime1 = "00:00";

【修正後】

input bool isEntrySun = true;
input bool isEntryMon = true;
input bool isEntryTue = true;
input bool isEntryWed = true;
input bool isEntryThu = true;
input bool isEntryFri = true;
input bool isEntrySat = true;

input srting TimeFilterStartSun = "00:00";
input srting TimeFilterEndSun   = "23:59";
input srting TimeFilterStartMon = "00:00";
input srting TimeFilterEndMon   = "23:59";
input srting TimeFilterStartTue = "00:00";
input srting TimeFilterEndTue   = "23:59";
input srting TimeFilterStartWed = "00:00";
input srting TimeFilterEndWed   = "23:59";
input srting TimeFilterStartThu = "00:00";
input srting TimeFilterEndThu   = "23:59";
input srting TimeFilterStartFri = "00:00";
input srting TimeFilterEndFri   = "23:59";
input srting TimeFilterStartSat = "00:00";
input srting TimeFilterEndSat   = "23:59";

フィルタの修正

時間によってフィルタリングする処理を、下記のように修正します。
(複数個所存在する場合がございます。)

【修正前】

   if(isTimeFilter == true && TimeFilter(signal, TimeFilterStartTime1, TimeFilterEndTime1) == false) signal = 0;

【修正後】

   if(IsTradeSun == true && DayOfWeek() == 0 && TimeFilter(signal, TimeFilterStartSun, TimeFilterEndSun) == false) signal = 0;
   if(IsTradeMon == true && DayOfWeek() == 1 && TimeFilter(signal, TimeFilterStartMon, TimeFilterEndMon) == false) signal = 0;
   if(IsTradeTue == true && DayOfWeek() == 2 && TimeFilter(signal, TimeFilterStartTue, TimeFilterEndTue) == false) signal = 0;
   if(IsTradeWed == true && DayOfWeek() == 3 && TimeFilter(signal, TimeFilterStartWed, TimeFilterEndWed) == false) signal = 0;
   if(IsTradeThu == true && DayOfWeek() == 4 && TimeFilter(signal, TimeFilterStartThu, TimeFilterEndThu) == false) signal = 0;
   if(IsTradeFri == true && DayOfWeek() == 5 && TimeFilter(signal, TimeFilterStartFri, TimeFilterEndFri) == false) signal = 0;
   if(IsTradeSat == true && DayOfWeek() == 6 && TimeFilter(signal, TimeFilterStartSat, TimeFilterEndSat) == false) signal = 0;

以上でございます。
ご参考になりましたら幸いでございます。

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。