それで、私は、同時に動かすことができたり、オン/オフを切り替えることができる、異なる取引パラメータを持つモジュールを同時に処理できるEAを作成することができました。私は注文数の扱いで壁に突っ込んでいますが。
私は、ModuleAの総ポジションとModuleBの総ポジションに対するEAカウントMaxTotalPositionsを取得したいと思います。 EAはMax Total(A = B)を超えてはいけませんが、TotalforModuleAとBを超えてはいけません。たとえば、MaxTotalが2で、ModuleAとBの合計がそれぞれ1である場合、2を超えることはできません。この部分は簡単です。しかし、Maxが2でModuleAが1の場合、それは最大2まで取引されています。私は魔法で注文を呼び出して数えやすくしましたが、どこかMaxPerModuleを超過しています。誰にどのようにこれにアプローチする考えを持っていますか?コードは正しくコンパイルされているので、構文エラーはありません。コードの部分は次のとおりです。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
TotalMaxPositionsは、EAの先頭でextern変数としてグローバルに宣言されます
extern double TotalMaxPositions = 2;
///////////////////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------ -
//MAX POSITIONSオーダーカウント
//------------------------------------------------ -
int TotalCurrentOrders;
int count = 0; int count = 0; int total; int totalB;
TotalCurrentOrders = OrdersTotal();
if(TotalCurrentOrders gt; = TotalMaxPositions)return(0);
else
if(TotalCurrentOrders lt; TotalMaxPositions)
{
if(countA gt; = MaxPositionsA)return(0);
if(countA lt; MaxPositionsA)
for(int posA = 0; posA lt; totalA; posA )
{
if(OrderSelect(posA、SELECT_BY_POS)== false)続行します。
if(OrderMagicNumber()== MagicA)countA ;
}
if(countB gt; = MaxPositionsB)return(0);
if(countB lt; MaxPositionsB)
for(int posB = 0; posB lt; totalB; posB )
{
if(OrderSelect(posB、SELECT_BY_POS)== false)続行します。
if(OrderMagicNumber()== MagicB)countB ;
}
if(TotalCurrentOrders gt; = TotalMaxPositions)return(0);
}