![見出し画像](https://assets.st-note.com/production/uploads/images/158233009/rectangle_large_type_2_7f6d39918d5efab2a96768ced5e97b6c.png?width=1200)
2つのEAを共存させる
Hiroです。
EA使っていると、”このEAとこのEA同じ口座で動かせたらなぁ”なんて思うことありますよね?
今回はそんな時に使えるソースコードのテクニックです。
概要
概要というかこれが全てですが、”EA内に共存させるEAがポジションを持っているかどうかのフラグを建て、フラグが立っている時はエントリーしない”これだけです。
手順
ここではEA "A" (magic:1234)と "B"(magic:9876)を共存させる場合を想定します。
1.共存させるEAのマジックナンバーを設定する。
EA"A"のパラメータに
input int MagicB = 9876;
のようにEA"B"を認識させるためのパラメータを追加します。
2.共存するEAがポジションを持っている場合のフラグを立てる
まずフラグ用の変数を定義します。
bool B_Check;
変数の型はbool型としてEA"B"がポジションを持っている場合"true"とします。
次にEA”B"がポジションを持っている場合、ポジションチェック時にフラグを立てます。
B_Check = false;
for(int i = 0; i < OrdersTotal(); i++)
{
if(OrderMagicNumber() == MagicB)
B_Check = true;
}
3.エントリーロジックにフラグ判定を追加する
上記で立てたフラグをエントリーロジックに反映します。
if(B_Check == false)
{
//ここにエントリーロジック
}
以上でEA"B"がポジションを持っている場合にEA"A"はポジションを持たなくなりEA"A"と"B"が証拠金を食い合うことがなくなり、共存させることが可能になります。
決済ロジックなどもコンフリクトが起こる可能性がある場合は"3."を決済ロジックにも適用することで対応できますね!
以上、皆様良きEAライフを!