无法平仓

 

大家好,我是新学的,通过网上的入门教程,开仓思路我都理解了,我想弄个简单的思路,请各位老师指点下。
开仓: 1.    5、10、20均线全部朝上时,开多单

           2.    5、10、20均线全部朝下时,开空单

代码如下:

 if(

      OrdersTotal()==0

      && Time[0]

      && iMA(Symbol(),0,5,0,0,PRICE_CLOSE,1)>iMA(Symbol(),0,5,0,0,PRICE_CLOSE,2)

      &&iMA(Symbol(),0,10,0,0,PRICE_CLOSE,1)>iMA(Symbol(),0,10,0,0,PRICE_CLOSE,2)

      &&iMA(Symbol(),0,20,0,0,PRICE_CLOSE,1)>iMA(Symbol(),0,20,0,0,PRICE_CLOSE,2)

      )

     {

      OrderSend(Symbol(),OP_BUY,1,Ask,3,Ask-200*Point,Ask+200*Point,"macd sample",16384,0,Green);

      PlaySound("Conditions.wav");

      Time[0];

     }


   if(

      OrdersTotal()==0

      && Time[0]

      && iMA(Symbol(),0,5,0,0,PRICE_CLOSE,1)<iMA(Symbol(),0,5,0,0,PRICE_CLOSE,2)

      &&iMA(Symbol(),0,10,0,0,PRICE_CLOSE,1)<iMA(Symbol(),0,10,0,0,PRICE_CLOSE,2)

      &&iMA(Symbol(),0,20,0,0,PRICE_CLOSE,1)<iMA(Symbol(),0,20,0,0,PRICE_CLOSE,2)

      )

     {

      OrderSend(Symbol(),OP_SELL,1,Bid,3,Bid+200*Point,Bid-200*Point,"macd sample",16384,0,Red);

      PlaySound("Conditions.wav");     

      Time[0];

     }


平仓思路是这样子的:  有多单的情况下,5日均线下穿10日均线时平多单。    有空单的情况下,5日均线上穿10日均线时平空单。

       条件应该是这样编写:

              5日均线上穿10日均线

    iMA(Symbol(),0,5,0,0,PRICE_CLOSE,1)>iMA(Symbol(),0,10,0,0,PRICE_CLOSE,1)

    &&iMA(Symbol(),0,5,0,0,PRICE_CLOSE,2)<iMA(Symbol(),0,10,0,0,PRICE_CLOSE,2)

              5日均线下穿10日均线

   iMA(Symbol(),0,5,0,0,PRICE_CLOSE,1)<iMA(Symbol(),0,10,0,0,PRICE_CLOSE,1)

    &&iMA(Symbol(),0,5,0,0,PRICE_CLOSE,2)>iMA(Symbol(),0,10,0,0,PRICE_CLOSE,2)


但是问题来了,我不怎么编写平掉所有多单,平掉所有空单这2个指令


    哪位老师能帮帮我吗?不甚感谢!

 
PositionGetInteger这个函数了解一下
 
long19940101:
PositionGetInteger这个函数了解一下 

谢谢,我去百度下,我是小白。

 
在其它平仓条件被执行后  结算无条件数据成立  以数据溢出位-+ 结算所有  1. sell 寄存器数据  2.buy寄存器数据
 
niubee:
void  CloseSomeOrders()
{
    for(i=OrdersTotal()-1; i>0; i--)
    {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
          if(OrderType()=OP_BUY && 5日均线下穿10日均线)
             ret=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slip);
          if(OrderType()=OP_SELL && 5日均线上穿10日均线)
             ret=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slip);  
      }
    }  
}//程序从N开始 一个个关闭交易
原因: