我学了一个移动止损的代码,但是空单却不进行移动止损,只有多单正常运行,请教为什么

 
void yidong()
  {
    for(int i=0;i<OrdersTotal();i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
          {
            if(OrderType()==0  &&  OrderSymbol()==Symbol()  &&  OrderMagicNumber()==123456)
              {
                if((Bid-OrderOpenPrice())>=Point*移动止损点数)
                  {
                    if(OrderStopLoss()<(Bid-Point*移动止损点数)  ||  (OrderStopLoss()==0))
                      {
                        OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*移动止损点数,OrderTakeProfit(),0,clrYellow);
                      }
                  }
              }
            if(OrderType()==1  &&  OrderSymbol()==Symbol()  &&  OrderMagicNumber()==123456)
              {
                if((OrderOpenPrice()-Ask)>=Point*移动止损点数)
                  {
                    if(OrderStopLoss()<(Ask+Point*移动止损点数)  ||  (OrderStopLoss()==0))
                      {
                        OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*移动止损点数,OrderTakeProfit(),0,clrPeru);
                      }
                  }
              }
          }
      }

  }

这个是移动止损的源代码,请教大神原因

 

OrderType()==0

你的这个函数返回值,0是空单吗,建议用MQL5标准语言类型,ENUM_ORDER_TYPE 

 
Wen Tao Xiong:

OrderType()==0

你的这个函数返回值,0是空单吗,建议用MQL5标准语言类型,ENUM_ORDER_TYPE 

0是多单,找到问题了,下方空单的移动止损条件>敲错了

原因: