净持仓限制进出场代码问题

以下为三均线策略,首先计算均线没有用到序列变量回溯close[1]是因为成本会变大很多。

疑问1:假如按我下面的代码,进出场会出现很多信号闪烁,但我如果限制净持仓条件,只有净持仓为0才可以开多或开空,净持仓为1或-1才能平多或平空。这种我今天模拟交易实测后,居然也有出现净持仓出现2、3、4(-2、-3、-4)的现象,不知道为什么请老师给指点一下。

疑问2:对于我这种策略,进行模拟策略交易会出现多次的信号闪烁,如果是实盘的话是信号闪烁否就会变成发单、成交?

疑问3:如何避免信号闪烁这种情况的发生,有没有更好的进出场代码参考呢?

疑问4:我这个代码有哪里不足的地方可以优化改进?


       //多单开仓:当MA10上穿MA20时开多1手单;

       //平仓:如果MA5下穿MA10时平仓。

       //如果保持MA10和MA20金叉时,MA5再次上穿MA10时继续开1手多单,同样当MA5再次下穿MA10时平仓。

       //(注:如果MA10和MA20不满足金叉,MA5和MA10金叉时不开仓)

Params

   Numeric length1(5);     // 短期均线周期

   Numeric length2(10);    // 中期均线周期

   Numeric length3(20);    // 长期均线周期


Vars

   Series<Numeric> ma1;    // 短期均线

   Series<Numeric> ma2;    // 中期均线

   Series<Numeric> ma3;    // 长期均线


Events


   //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组

   OnBar(ArrayRef<Integer> indexs)

   {

       ma1 = XAverage(close,length1);//5

       ma2 = XAverage(close,length2);//10

       ma3 = XAverage(close,length3);//20

       PlotNumeric("ma1",ma1);

       PlotNumeric("ma2",ma2);

       PlotNumeric("ma3",ma3);

       If(MarketPosition==0 and ma2[1]<ma3[1] and ma2>ma3)

       {

           buy(1, open);

           Commentary("首次入场");

       }

        If(MarketPosition==0 and ma1[1]<ma2[1] and ma1>ma2 and ma2>ma3)

       {

           Buy(1,open);

           Commentary("再入场");

       }

       If(MarketPosition==1 and ma1[1]>ma2[1] and ma1<ma2)

       {

           sell(1, open);

       }

       

//------------------------------------------------------- ------------------------                

       If(MarketPosition==0 and ma2[1]>ma3[1] and ma2<ma3)

       {

           SellShort(1, open);

           Commentary("首次入场");

       }

        If(MarketPosition==0 and ma1[1]>ma2[1] and ma1<ma2 and ma2<ma3)

       {

           SellShort(1,open);

           Commentary("再入场");

       }

       If(MarketPosition==-1 and ma1[1]<ma2[1] and ma1>ma2)

       {

           BuyToCover(1, open);

       }

   }




模拟测试获取净持仓
请问下,期货主力净持仓的数据怎么写入到策略里面呀,代码是什么的?
导进
按时间出场问题
指令价模型命令(盘中价)出条件延迟几分钟就下单导致账号净持仓和信号净持仓不一样,一般怎么处理?
为什么净持仓是3,但是可平多可平空是0呢
K线图交易成交了,但交易连级和净持仓不更新问题
旗舰版如何导进备份
净头寸同步?
帐户净仓与信号净仓数量明显不匹配

你提到了用净持仓控制,但代码里也没看到净持仓的内容

MarketPosition表示持仓方向

哦,明白了,请问是用CurrentContracts()这个函数对吗