お世話になります。
建値ストップについての質問です。
ポジション1、ロング
ポジション2、ショート
ポジション3、ロング追加ポジション
ポジション4、ショート追加ポジション
の設定で作成しています。ポジション1,2はナンピンシステム
ポジション3,4はカスタム設定でロット、SLは設定しています。
ここで建値ストップをポジション3,4だけ設定したいのですが、設定するとナンピンしているポジション1,2も中途半端なところで建値が入ってしまいます。
ポジション3,4だけ建値ストップさせる方法はありますか?
仕様でできないようでしたら追加コードなど教えていただけると幸いです。
| 検索結果がありません。 |
| 検索結果がありません。 |
建値ストップを「ポジション3・4だけ」に効かせたい、というご質問ですね。
結論からお伝えすると、現在のEAつくーるの仕様上、
「建値ストップ」オプションを特定のポジション(例:ポジション3・4)だけに限定して適用することはできません。
建値ストップを有効にすると、同じEAが持っている全ポジション(全マジックナンバー)が対象になります。
そのため、ナンピン用のポジション1・2にも建値が入ってしまう挙動は、仕様通りの動きになります。
なぜポジション1・2にも建値が入ってしまうのか
ご質問の設定は次のようなイメージだと思います。
EAつくーるの「オプション」で設定する建値ストップは、
(ポジション1〜4をまとめて対象にする)
という作りになっており、
一定の利益が出たタイミングでSLが建値に移動してしまう
という挙動になります。
「ポジションごとに建値ストップのON/OFFを切り替える項目」は、現状の設定画面には用意されていません。
EAつくーるだけでできる回避策
EAつくーるの機能だけでできる現実的な回避策としては、
「EAを役割ごとに分割する」方法がいちばんシンプルです。
1. EAを2つに分ける
1つ目のEA(ナンピン専用)
ポジション1:ロング(ナンピン)
ポジション2:ショート(ナンピン)
「オプション」では「建値ストップ」を使わない
ナンピンオプションのみ使用
2つ目のEA(追加ポジション+建値専用)
ポジション1:ロング(※ここで、元のポジション3のロジックを再現)
ポジション2:ショート(※ここで、元のポジション4のロジックを再現)
必要に応じてナンピンは使わず、カスタムロットとSLを設定
「オプション」で「建値ストップ」にチェックを入れる
この2つのEAを、同じ通貨ペア・同じ時間足のチャートにそれぞれ適用します。
EAつくーるでは、
EA内の「ポジション番号」と「マジックナンバー」が1対1で対応しています
という形になるため、EAを分けることで、
というように役割を分けて運用できます。
(EAごとにマジックナンバーが独立しているため、互いに干渉しません。)
※「同じチャートに複数EAを載せると不安」という場合は、
同一通貨ペアで時間足を分ける(例:ナンピンEAはM15、建値EAはM5)という運用も一案ですが、
その場合はロジックの前提が変わってしまう点に注意が必要です。
MQLでの補足(カスタム編集)について
もしどうしても「1つのEAの中で、ポジション3・4にだけ建値ストップをかけたい」という場合は、
EAつくーるで生成されたmq4/mq5ファイルをMetaEditorで開き、
建値ストップの処理部分をマジックナンバーで絞り込む必要があります。
イメージとしては、EAのコードの中で
注文やポジションをループしている「建値ストップ」用のブロックを探す
そのループの中で
「マジックナンバーが3または4のポジションだけ処理する」
という条件を追加する
という形です。
MT4のイメージ(概念図・擬似コード):
MT5でも考え方は同じで、「PositionGetInteger(POSITION_MAGIC)」などでマジックを取得して
3と4だけを対象に建値処理を行う形になります。
ただし、
といった点があるため、初心者〜中級者の方には、
をおすすめします。
まとめ
建値ストップはEAつくーるの「オプション」で一括設定する仕様のため、
「ポジション3・4だけ建値ストップを適用し、ポジション1・2(ナンピン)には適用しない」という制御は、
EAつくーるの設定画面だけでは行えません。
EAつくーるだけで対応する場合は
の2つにロジックを分けて運用する方法が現実的です。
1つのEA内でどうしても実現したい場合は、
生成されたmq4/mq5をMetaEditorで開き、建値ストップ処理に
「マジックナンバー3・4のみ対象」という条件を追加する必要があります。