解決済み

エントリー回数制限

EAつくーる
はやうち太郎
2025/03/15 18:34
39

教えてください。2:00-17:00の間でのみエントリーかつ1回しかエントリーしないという制限をつくることはできますか?次の日も同じ時間でエントリーできるようにしたいです。以前は8-17時の間で1回のみしかエントリーしない制限をかけるため、43200秒連続エントリー制限使ってましたが、エントリー時間の範囲を広げると次の日の2時からエントリーできなくなる可能性があるので困ってます。

コメント

GogoJungle
2025/03/19 19:14

コードの修正方法を考えてみましたので、提案させていただきます。
方針としては、

  • エントリーを許可するフラグisEntryを用意し、これがtrueのときのみエントリーさせる
  • エントリーしたらフラグをfalseにする
  • 日付が変わるタイミングでフラグをtrueに戻す

としています。
「取引時間制限」オプションでご希望の時間帯をご設定いただいて出力したコードに対して、次の修正をお試しください。

変数の定義

【修正前】

input int Magic1 = 1;

【修正後】

input int Magic1 = 1;
bool isEntry = true; // このフラグを追加

フラグのリセット

【修正前】

void OnTick()
{
   int signal = 0;

【修正後】

void OnTick()
{
   if(Hour() == 0 && Minute() == 0) isEntry = true; // 時刻が00:00になったらエントリー許可フラグを立てる
   int signal = 0;

エントリー時にフラグを確認&エントリーしたらfalseに変更

openPositionで検索し、エントリー処理が複数存在する場合は全ての箇所を修正してください。

【修正前】

   if(signal != 0 && getOpenLots(Magic1) == 0) {

      if(openPosition(signal, lots, take_profit, stop_loss, Magic1)) {
         bars1 = Bars;
      }
   }

【修正後】

   if(signal != 0 && getOpenLots(Magic1) == 0 && isEntry == true) {

      if(openPosition(signal, lots, take_profit, stop_loss, Magic1)) {
         bars1 = Bars;
         isEntry = false; // エントリーしたらエントリー許可フラグを降ろす
      }
   }

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

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。