// retrieving info from trade historyint i,accTotal=OrdersHistoryTotal();
for(i=0;i<accTotal;i++)
{
//---- check selection resultif(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
{
Print("Ошибка при доступе к исторической базе (",GetLastError(),")");
break;
}
// работа с ордером ...
}
我写了代码,当任何订单关闭所有其他挂单,但问题是我写了4个订单2,3,4,5。因此,当接下来的挂单6、7、8等被打开时,它们不应该被关闭。红色突出显示的订单数量应改为所有挂单将被关闭的订单。
空白启动(){
//----
double Take1 = Ask+20 *Point;
double Take2 = Ask+0 *Point;
double Take3 = Ask-20 *Point;
double Take4 = Ask-40 *Point;
double Take5 = Ask-60 *Point;
double Stop = Bid-StopLoss *Point;
如果(OrdersTotal()==0){
OrderSend(Symbol(),0,0.01,Ask,30,Stop,Take1,",0,0,CLR_NONE) 。
OrderSend(Symbol(),2,0.02,Ask-20*Point,30,Stop,Take2,"",0,0,CLR_NONE) 。
OrderSend(Symbol(),2,0.04,Ask-40*Point,30,Stop,Take3,",0,0,CLR_NONE) 。
OrderSend(Symbol(),2,0.08,Ask-60*Point,30,Stop,Take4,",0,0,CLR_NONE) 。
OrderSend(Symbol(),2,0.16,Ask-80*Point,30,Stop,Take5,"",0,0,CLR_NONE) 。
}
如果(OrdersTotal()==4)
{
OrderDelete(2)。
}
如果(OrdersTotal()==3)
{
OrderDelete(3)。
}
如果(OrdersTotal()==2)
{
OrderDelete(4)。
}
如果(OrdersTotal()==1)
{
OrderDelete(5)。
return(0);
}
我写了代码,当任何订单关闭所有其他挂单,但问题是我写了4个订单2,3,4,5。因此,当接下来的挂单6、7、8等被打开时,它们不应该被关闭。红色显示的订单号应改为所有待处理订单将被关闭的那些订单。
首先,我们在循环中检查该仓位最近是否被关闭,为此我们需要OrdersHistoryTotal。我们检查关闭头寸的时间OrderCloseTime,如果它高于变量中的最后一个,那么我们就循环查看所有未平仓的OrdersTotal。并关闭它们。
P.S. 使用Alt+S 或...插入代码。
例如:这个
这里是条件if(OrdersTotal()==0).但是如果有零个托盘,我们应该怎么写条件?
如果(OP_BUY==0)
如果(OP_BUY==0)