私は1つ以上の通貨を取引するEAに取り組んでいます、そして、すべては注文を出すことに問題がありません、しかし、私がすべての注文を閉じることを試みるときそれはEAが付く通貨の注文だけを閉じるようです。私はこのコードを使います:
void CloseAll()
{
int total = OrdersTotal();
for(int cnt = 0; cnt <total; cnt )
{
OrderSelect(cnt、SELECT_BY_POS、MODE_TRADES);
OrderClose(OrderTicket()、OrderLots()、Bid、3、Violet);
}
}
私も試してみました
void CloseAll()
{
for(int trade = OrdersTotal() – 1; trade> = 0; trade – ){
OrderSelect(trade、SELECT_BY_POS);
if(OrderType()== OP_BUY){
if( 舵黌鱇粤糟跫繖()){
OrderClose(OrderTicket()、OrderLots()、入札、3、青);
}
}
if(OrderType()== OP_SELL){
if(IsTradeAllowed()){
OrderClose(OrderTicket()、OrderLots()、Ask、3、Blue);
}
}
if(OrderType()== OP_BUYSTOP || OrderType()== OP_BUYLIMIT || OrderType()== OP_SELLSTOP || OrderType()== OP_SELLLIMIT){
if(IsTradeAllowed()){
OrderDelete(OrderTicket());
}
}
}
}
しかし、どの機能もすべての注文をクローズしません。他の通貨の注文を閉じるには、シンボルまたは何かを使用しなければなりませんか。その後、EAは添付されます。
Bidは現在のチャート通貨のみのため、閉じるときはBidを使用できません。
代わりにMarketInfo(OrderSymbol()、MODE_BID、またはMODE_ASK)を使用して ださい。これにより、各ペアに対する正しい入札が得られます。
1442: https://www.mql5.com/en/forum/100496
Originally posted 2019-08-02 23:03:49.