//+------------------------------------------------------------------+ //| Закрыть все позиции начиная с первых | //+------------------------------------------------------------------+
double CloseOrders()
{ for(int i=0; i<OrdersTotal(); ) { if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderMagicNumber() != mn) break;
int type = OrderType();
bool result = false;
switch(type) { //Close opened long positions caseOP_BUY : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, CloseColor ); break;
//Close opened short positions caseOP_SELL : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, CloseColor ); break; }
皆さん、こんにちは。このコードを変更する方法を教えてください for(int i=OrdersTotal()-1;i>=0;i--){ このコードを変更する方法について教えてください。
皆さん、こんにちは。このコードを変更する方法を教えてください for(int i=OrdersTotal()-1;i>=0;i--){ このコードを変更する方法を教えてください for(int i=OrdersTotal()-1;i>=0;i--){ このコードを変更する方法を教えてください。
{
if( /*Функция закрытия. Если вернула истину*/ )
i--;
}
この方法で試してみてください。コメントではなく、関数を使用して注文をクローズする必要があります。機能の確認はしていません。で、ここで、注文数が減るので、その都度、注文量を計算する関数を呼び出す ことになると思うのです。
そのようなバリエーションも試してみてはいかがでしょうか。
/*Функция закрытия ордера*/
ふところがわるい)
は正しくありませんが、今のところ (あるビルドまでは) 動作します:i-- のクローズに成功すると
皆さん、こんにちは。このコードを変更する方法を教えてください for(int i=OrdersTotal()-1;i>=0;i--){ このコードを変更する方法について教えてください。
//| Закрыть все позиции начиная с первых |
//+------------------------------------------------------------------+
double CloseOrders()
{
for(int i=0; i<OrdersTotal(); )
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
break;
if (OrderMagicNumber() != mn)
break;
int type = OrderType();
bool result = false;
switch(type)
{
//Close opened long positions
case OP_BUY : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, CloseColor );
break;
//Close opened short positions
case OP_SELL : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, CloseColor );
break;
}
if(result == false)
{
Print("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
i++;
}
}
return (True);
}
// End
不格好な閉じ方をしている)