見出し画像

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ライフを!

いいなと思ったら応援しよう!