为何信号始终为FASLE

Params

Numeric FastLength(12);

Numeric SlowLength(26);

Numeric MACDLength(9);

Vars

Numeric MACDDiff;

Numeric AvgMACD;

Numeric MACDValue;

   Series<Bool>     upcross(False);

 

Events

OnBar(ArrayRef<Integer> indexs)

{

MACDDiff = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;

AvgMACD = XAverage(MACDDiff,MACDLength);

           if (CrossOver(MACDDiff,AvgMACD))

              {

               upcross=True;

              }Else

                  {

                   upcross=upcross[1];

                   

                  }

          if (CrossUnder(MACDDiff,AvgMACD))

              {

               upcross=false;

              }Else

                  {

                   upcross=upcross[1];

                   

                  }

     

           

       Commentary(\"upcross = \" + IIFString(upcross,\"True\",\"False\"));

     

}

//为何向上突破成功,但信号始终为false?

为何信号闪烁?
MarketPosition在onbar里始终为0是怎么回事?
tbpy 的 tbpy.get_current_tick(symbol) 函数始终返回 None
FileAppend输出的数据显示满足开仓条件,为何还是信号闪烁?
AverageFC 计算均值为0
编译时始终提示程序体不存在
A_Sendorderex函数信号净仓为0,账户净仓为2,why,谢谢!
为何商城购买的本地模拟账号初始市值为0,是否需要申请开通?
输出为何是0
请教为何我的性能测试成交手数只有两百多?我已经把范围的样本设置为8万根了

你自己的逻辑错误

data-href=

下半部分,你的逻辑是,如果死叉,upcross就是false。如果不死叉,upcross就是上一根bar的值。

注意,金叉也属于没有死叉,那么金叉的bar上就会进入else分支执行upcross=upcross[1];

那么上一根bar的upcross是false,自然就被crossunder这分支重新洗回false状态了

本来crossover分支已经判断成功了,upcross已经是true了

结果又被你下半部分crossunder分支给洗回false状态了