解決済み

取引時間制限の決済バージョン

2025/07/23 22:14
18

オプションにて「エントリーの取引時間制限」を設定できますが、決済の取引時間制限を設定することはできませんか?

コメント

GogoJungle
2025/07/24 11:39

EAつくーるの機能のみではご設定いただけませんが、コードの修正により、比較的簡単に実現できると存じます。
改造方法を考えてみましたので、ご提案させていただきます。

準備

(エントリーの)「取引時間制限」オプションを設定し、コードをダウンロードします。

時間制限を行うコードをコピペ

isTimeFilterで検索し、次のような行を見つけます。

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

これは、2つの時間帯(指定する時間は4つ)を設定した場合の例です。
signal = 0;の部分が、「取引のシグナルを0にする」すなわち「取引しない」とさせる処理です。
これを、

  • 決済時刻の制限にも使用する場合→コピペ
  • 決済時刻の制限のみに使用する場合→カット&ペースト

します。

closePositionで検索して次の【修正前】のような決済処理を探し、その直前に【修正後】のように1行追加します。

【修正前】

   if(signal != 0 && getOpenLots(Magic1, OP_BUY) != 0) {
      closePosition(Magic1, OP_BUY);
   }

【修正後】

   if(isTimeFilter == true && TimeFilter(signal, TimeFilterStartTime1, TimeFilterEndTime1) == false && TimeFilter(signal, TimeFilterStartTime2, TimeFilterEndTime2) == false) signal = 0; // ここにペースト
   if(signal != 0 && getOpenLots(Magic1, OP_BUY) != 0) {
      closePosition(Magic1, OP_BUY);
   }

注意点

  • 決済処理が複数存在する場合は、適用したい箇所全てにペーストしてください。
  • SL・TPによる決済は時間制限が行えません。これはMT4/5自体の仕様です。

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

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。