ドテンをポジション保有中のみにしたい

2026/04/14 09:29
44

◽️取引条件
●ポジション1
条件1—買い
条件2—売り

●ポジション2
条件1—売り
条件2—買い

◽️オプション
トレーリングストップ(固定幅) : 間隔5pips
最大ポジション数制限 : 1

ポジション1とポジション2に上記条件を設定

①条件1で買い or 売りエントリー
②買い or 売りポジション保有中に条件2が揃った場合のみドテンし利確 or 損切

①→②の順番で一連の動作としたEAを作成したいのですが、この場合どのように設定すればいいでしょうか?

連続エントリー制限を設定したらドテンは動作しないでしょうか?

よろしくお願いします。

コメント

GogoJungle
2026/04/23 18:30

ドテンを「ポジション保有中に反対条件が出たときだけ実行したい」というご質問ですね。

この動作であれば、ポジション1とポジション2を分けるより、1つのポジション内で買い条件・売り条件を持たせて、「ドテン機能」を使う形が基本になります。

現在のように

  • ポジション1

    • 条件1 → 買い
    • 条件2 → 売り
  • ポジション2

    • 条件1 → 売り
    • 条件2 → 買い

としてしまうと、「別ポジションの新規エントリー」として判定されやすく、保有中だけドテンしたい意図とズレやすいです。
特に「最大ポジション数制限: 1」を併用すると、反対側の条件が出ても新規エントリー側が止められて、期待どおりの流れにならないことがあります。

設定方法

基本項目

通常どおり設定してください。

  • ロット数:任意
  • 損切り:任意
  • 利食い:任意
  • スリッページ:任意

オプション

必要なのは主に以下です。

  • ドテン機能:チェックを入れる
  • トレーリングストップ(固定幅):間隔5pips
  • 最大ポジション数制限:通常は不要です

今回の用途では、ドテン機能を使うなら最大ポジション数制限は入れない方がわかりやすいです。
ドテン機能自体が「保有中の反対シグナルで決済して反対売買する」仕組みなので、最大ポジション数制限を重ねる必要はあまりありません。

取引条件

1つのポジションだけ作成して、その中に買い条件と売り条件を入れてください。

たとえば、

  • 条件1が買い条件
  • 条件2が売り条件

であれば、ポジション1を以下のようにします。

条件1
↓
買いエントリー

OR

条件2
↓
売りエントリー

これで動作は次のようになります。

  1. 条件1が成立したとき、買いエントリー
  2. 買いポジション保有中に条件2が成立したとき、ドテン機能で買いを決済して売りエントリー
  3. 逆に、条件2で売り保有中に条件1が成立したときも、売りを決済して買いへドテン

つまり、ご希望の

  • まず条件1または条件2で新規エントリー
  • その後、保有中にだけ反対条件が揃ったらドテン

という流れに近くなります。

今の設定で起きやすいこと

こうなっていませんか、という点を挙げます。

1. ポジションを2つに分けている

この場合、EAから見ると
「ポジション1の買い」
「ポジション2の売り」
別ロジックの新規注文として扱われやすいです。

そのため、
「保有中だけ反対に切り替える」
ではなく、
「別ポジションが新しく出ようとする」
動きになりやすいです。

2. 最大ポジション数制限: 1 を入れている

これを入れると、反対条件が出たときに
「先に決済してから新規で入り直す」
流れの途中で制限に引っかかる可能性があります。

ドテン用途では、まずは最大ポジション数制限を外してテストするのがおすすめです。

連続エントリー制限について

ご質問の
「連続エントリー制限を設定したらドテンは動作しないでしょうか?」
については、期待どおりに動かなくなる可能性が高いです。

理由は、連続エントリー制限が

  • 決済から一定時間
  • または一定本数

再エントリーを禁止する機能だからです。

ドテンは内部的には

  1. 今のポジションを決済
  2. すぐ反対方向へエントリー

という流れになりますので、連続エントリー制限があると「決済直後の再エントリー」とみなされて、反対売買が止まる可能性があります。

そのため、ドテンを優先したい場合は、連続エントリー制限は使わない方が安全です。

おすすめ構成

今回の目的なら、まずは以下の構成が最も素直です。

基本項目

  • ロット数:任意
  • 損切り:任意
  • 利食い:任意
  • スリッページ:任意

オプション

  • ドテン機能:チェックあり
  • トレーリングストップ(固定幅):5pips
  • 最大ポジション数制限:なし
  • 連続エントリー制限:なし

取引条件

条件1
↓
買いエントリー

OR

条件2
↓
売りエントリー
補足

もし「新規エントリーは1回だけ許可し、その後は保有中のドテンだけにしたい」というような、さらに細かい制御をしたい場合は、EAつくーるの機能だけでは厳密には難しい場合があります
ただ、今回のご要望であれば、まずは

  • 1つのポジションにまとめる
  • ドテン機能を使う
  • 最大ポジション数制限を外す
  • 連続エントリー制限を使わない

でかなり近い動作になります。

特に重要なのは、ポジション1とポジション2に分けず、1ポジションで買い・売りの両条件を持たせることです。

eclair3
2026/04/23 19:12

ご回答ありがとうございます。

最大ポジション数制限と連続エントリー制限は設定しない方がいいことは理解しました。

ただ、やりたいことの認識が違うようで、うまく説明できておらずすみません。
改めて説明します。


●ポジション1(買いのみ)
条件1—買い
条件2—売り

●ポジション2(売りのみ)
条件1—売り
条件2—買い

■EAの動き
①条件1で買い or 売りエントリー
②買い or 売りポジション保有中に条件2が揃った場合のみドテンしトレーリングストップ利確 or 損切

買いエントリーと売りエントリーである条件1のロジックは条件2とは違うロジックなので、ポジションを分けて設定しています。

①→②の順番を1セットとしてエントリーからトレーリングストップ利確(損切)を1つの動きとしたいです。
①→②、①→②、①→②の繰り返しにしたいです。

つまり、条件2→条件1の順番にはしたくないので質問させていただきました。

過去の質問を見たり実際にEAを作成して検証すると、条件2→条件1の順番でもエントリー、トレーリングストップ利確 or 損切となるので、それだとやりたいこととは違います。

この場合EAつくーるの機能だけでは難しいということでしょうか?

GogoJungle
2026/04/24 18:57

前回の内容を踏まえると、今回ご希望の動作は EAつくーるの機能のみでは厳密には難しい です。

理由は、今回のロジックでは単に「反対条件が出たらドテンする」だけでなく、

条件1でエントリー
↓
そのポジションを保有中だけ、条件2による反対方向エントリーを許可
↓
条件2でドテン
↓
その後はトレーリングストップまたは損切りで終了
↓
次回も必ず条件1から開始

というように、現在がどの段階なのかをEA内で記憶する必要があるためです。

EAつくーるの取引条件は、基本的に各ポジションごとに

条件を満たしたら
↓
買いエントリー / 売りエントリー / 買いポジション決済 / 売りポジション決済

を行う仕組みです。

そのため、

条件1 → 条件2 は許可
条件2 → 条件1 は禁止

というような、条件の成立順序までは標準機能だけでは管理できません。

現在のように、

ポジション1
条件1 → 買い
条件2 → 売り

ポジション2
条件1 → 売り
条件2 → 買い

と設定すると、ポジション1とポジション2は別のロジックとして判定されます。

そのため、条件2が先に成立した場合でも、EAから見ると「条件2による新規エントリー条件が成立した」と判断されるため、

条件2 → 条件1

の順番でも取引が始まってしまいます。

また、ドテン機能は「保有中のポジションと反対方向のエントリー条件を満たした場合に、現在のポジションを決済して反対方向へエントリーする」機能です。
そのため、「条件1で入った後だけ条件2を有効にする」「条件2でドテンした後は、次回必ず条件1待ちに戻す」といった履歴管理までは行えません。

EAつくーるで近づける場合

完全に同じ動作ではありませんが、条件2から新規エントリーしてしまう動きを避けたい場合は、条件2を新規エントリーではなく、決済条件として使う方法があります。

条件1
↓
買いエントリー または 売りエントリー

条件2
↓
買いポジション決済 または 売りポジション決済

この場合、条件2が先に出ても新規エントリーには使われないため、「条件2から始まる」動きは避けやすくなります。

ただし、この方法は ドテンではなく決済のみ になります。
条件2で反対ポジションまで持たせる動作にはなりません。

もう1つの方法として、条件2側に「条件1のあとに成立しやすい状態」を追加して、条件2から始まりにくくすることはできます。

例として、条件1で買い方向に入ったあとだけ条件2の売りを許可したい場合は、条件2に価格やインジケーターの位置関係などの追加条件を入れて絞り込む形です。

条件2
AND
現在価格 > 条件1で使った基準線
↓
売りエントリー

ただし、これはあくまで近似的な方法です。
EAが「条件1を先に通過した」と記憶しているわけではないため、完全な順番制御にはなりません。

連続エントリー制限について

連続エントリー制限を使っても、今回の目的は解決しにくいです。

連続エントリー制限は、

決済後、一定時間または一定本数は次のエントリーを止める

ための機能です。

今回必要な、

条件1の次だけ条件2を許可する
条件2の次は再び条件1待ちに戻す
条件2から始まる取引は禁止する

という順番管理を行う機能ではありません。

また、ドテンは内部的には「決済してすぐ反対方向へエントリーする」動きになるため、連続エントリー制限を設定すると、ドテン時の反対方向エントリーが止まる可能性があります。

MQLでの補足

ご希望の動作を厳密に実現する場合は、EAつくーるで作成したEAをベースにして、MQL側で状態管理を追加する必要があります。

考え方としては、EA内に次のような状態を持たせます。

今は条件1待ち
条件1でエントリー済み
条件2でドテン済み
決済後に初期状態へ戻す

そして、

条件1待ちのときだけ、条件1のエントリーを許可
条件1でエントリー済みのときだけ、条件2の反対方向エントリーを許可
条件2でドテンした後は、新規の条件1・条件2ではなく、トレーリングストップまたは損切りで終了
決済後は条件1待ちに戻す

という制御を追加します。

したがって、今回の

条件1 → 条件2 → トレーリングストップ利確または損切
条件1 → 条件2 → トレーリングストップ利確または損切
条件1 → 条件2 → トレーリングストップ利確または損切

という順番を固定し、

条件2 → 条件1

を禁止する動作は、EAつくーるの標準機能だけでは厳密には難しいです。

EAつくーる内で対応する場合は「条件2を決済条件にする」「条件2に追加条件を入れて絞り込む」といった近似対応になります。
条件2で必ずドテンまで行い、かつ次回も必ず条件1から開始したい場合は、MQL編集で状態管理を追加する形が現実的だと存じます。

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。