void OnStart()
{
//---
bool bOrderClose;
for (int i=OrdersTotal(); i>=0; i--)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if ( OrderSymbol() == Symbol() && OrderType() == OP_BUY )
bOrderClose = OrderClose(OrderTicket(),OrderLots(), Bid, 500);
if ( OrderSymbol() == Symbol() && OrderType() == OP_SELL )
bOrderClose = OrderClose(OrderTicket(),OrderLots(), Ask, 500);
RefreshRates();
}
ggcsky:
i=OrdersTotal() 改为i=OrdersTotal()-1。 应该是你疏忽大意了。
void OnStart()
{
//---
bool bOrderClose;
for (int i=OrdersTotal(); i>=0; i--)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if ( OrderSymbol() == Symbol() && OrderType() == OP_BUY )
bOrderClose = OrderClose(OrderTicket(),OrderLots(), Bid, 500);
if ( OrderSymbol() == Symbol() && OrderType() == OP_SELL )
bOrderClose = OrderClose(OrderTicket(),OrderLots(), Ask, 500);
RefreshRates();
}