hxh989898 发表于 2016-5-30 21:46:13

同一秒内既开仓又平仓的问题

老师。我的公式出现同一秒既卖出开仓又平空仓(买入开仓与平多没问题)。请问问题在哪?

----------------------------
                malong=Average(close,longlen);  //计算长均线
                mashort=Average(close,shortlen);  //计算短均线
                conCrossOver=CrossOver(mashort,malong);  //金叉
                conCrossUnder=CrossUnder(mashort,malong);  //死叉
            …………
       if(A_TotalPosition()==0)
        {
                if(buycondition  and GetGlobalVar(2) == 0)
                {
                SetGlobalVar(0,2);
                A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
                SetGlobalVar(2,1);
                SetGlobalVar(1,CurrentTime);
                Return;
                }

                if(sellcondition and GetGlobalVar(2) == 0)
                {
                 SetGlobalVar(0,3);
                A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice);                    

                 SetGlobalVar(2,1);
                SetGlobalVar(1,CurrentTime);
                Return;
                }


        }

               
        if(A_SellPosition()>0  and GetGlobalVar(0) == 3  and  GetGlobalVar(3) == 0)
        {
               

                If(conCrossOver)   
                {
                               
               
                A_SendOrder(Enum_Buy,Enum_Exit,1,Q_AskPrice);
                SetGlobalVar(3,1);
                SetGlobalVar(1,CurrentTime);
                  Return;
                }
                               
                               
                               
                if(High-EntryPrice>=i_reverse)
                {

                A_SendOrder(Enum_Buy,Enum_Exit,1,Q_AskPrice);
                SetGlobalVar(3,1);
                SetGlobalVar(1,CurrentTime);
                  Return;
                }
        }

        if(A_BuyPosition()>0  and GetGlobalVar(0) == 2 and  GetGlobalVar(3) == 0)
        {
            

              If(conCrossUnder )
                {
                               
                A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
                SetGlobalVar(3,1);
                SetGlobalVar(1,CurrentTime);
                Return;
                }

                 
                if(EntryPrice-Low>=i_reverse)
                {
               A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
                SetGlobalVar(3,1);
                SetGlobalVar(1,CurrentTime);
                 Return;
                }
        }  


hxh989898 发表于 2016-5-31 09:13:59

已经解决

小米 发表于 2016-5-31 09:15:34

concrossover,与concorssunder声明的是bool  还是boolseries?

hxh989898 发表于 2016-6-1 14:49:42

在这里,
concrossover,与concorssunder声明的是bool  还是boolseries,会有区别吗?我声明的是bool,但没有发现问题.

我发现同一秒既开仓又平仓,是因为EntryPrice用的不对.这是一个超级图表信号,而我用的是A函数发单,结果EntryPrice每次估计都为0

hxh989898 发表于 2016-6-1 14:50:48

后来,我将EntryPrice改为A_SellAvgPrice,就正常了
页: [1]
查看完整版本: 同一秒内既开仓又平仓的问题