全注文のクローズに問題がある

私は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は添付されます。


あなたはSymbolの選択された順番をチェックする必要があります。 OrderSymbol( )がSymbol()と異なる場合は、closeprice = MarketInfo(OrderSymbol()、MODE_ASK)(またはMODE_BID)を使用してください。

答えstringoのおかげで、それは今正常に動作します…しかし、まだ1つの問題だけがあります。ただ止まるだけで他は遅れました、そして私はより少ない利益を与えます。取引を閉じる前に確認することは可能ですか?

こんにちはNebex、私は一度にすべての取引を閉じるのは難しいと思っています、あなたがこれを行うために使用する完全な完全なコードを教えてください。それを実装する方法を説明し、必要なときにそれを呼び出すことができれば、私はとても素晴らしいでしょう。ありがとう。あよ

Bidは現在のチャート通貨のみのため、閉じるときはBidを使用できません。

代わりにMarketInfo(OrderSymbol()、MODE_BID、またはMODE_ASK)を使用して ださい。これにより、各ペアに対する正しい入札が得られます。




1442: https://www.mql5.com/en/forum/100496


Originally posted 2019-08-02 23:03:49.

Translate »