不用marketposition,自己用标识开仓,会出现自动修改标识数值的问题,导致交易错误

代码如下,不使用marketposition开仓,会出现错误。均线1用小数,均线2用大数 在K线前的十几根K线就会改变我的upflag,dnflag的值,就象已经交易一样。实际上均线都没画出来。这个问题能否解决,否则会影响我多次开仓的代码编写。

Params

Numeric lots(1);

Numeric length1(3);

Numeric length2(30);

Vars

Global Bool upflag(false);

Global Bool  dnflag(false);

Series<bool> upcross;

Series<bool> dncross;

Series<Numeric> MA1;

Series<Numeric> MA2;

Events

OnBar(ArrayRef<Integer> indexs)

{

Commentary(barcount: + Text(CurrentBar));

ma1 = Average(Close,length1);

ma2 = Average(close,length2);

PlotNumeric(ma1,ma1);

PlotNumeric(ma2,ma2);


upcross =  CrossOver(ma1[1],ma2[1]);

dncross = CrossUnder(ma1[1],ma2[1]);

if(MarketPosition == 1){

if(dncross){

Sell(0,Open);

upflag = False;

}

}

if(MarketPosition == -1){

if(upcross){

BuyToCover(0,Open);

dnflag = False;

}

}

if(upflag == False and upcross ){

upflag = true;

Buy(1,Open);

}

if(dnflag == False and dncross ){

dnflag = true;

SellShort(1,Open);

}

Commentary(upflag: + IIFString(upflag,true,false));

Commentary(dnflag: + IIFString(dnflag,true,false));

}

data-href=

提问关于交易信号的标识问题
奇怪的问题 策略单元有信号,而K线没显示出信号标识
如何在策略交易中的K线页面,实时显示成交标识?
如何在主图中 醒目标识显示每个交易日第一根K线,或分割标识
后复权会导致的错误
反馈一个会导致BUG的问题
空头仓位没有自动化平掉,哪里查看可能出现的问题
K线图上的开平仓箭头标识位置与代码里写的意思不一致呢
策略公式的参数修改后自动发单的问题
数据缺失导致的错误

您好,这个问题是因为系统在K线根数不足以输出均线指标时,做了一些特殊处理,但只是对指标和交易信号进行了特殊处理,对其它序列变量的计算没有进行特殊处理。我建议您在所有序列变量的计算之后,交易指令执行之前,做一个人为的判断,K线不足时直接Return,这样就不会发出交易指令,也不会修改upflag和dnflag的值。

修改的代码如下,供您参考:

data-href=