比如
If(固定条件 and abs(CurrentContracts)<10)
{ SellShort(10-abs(CurrentContracts),open); }
最后开仓出来后,abs(CurrentContracts)=10,那么IF里面的条件理应消失了,为什么却没有闪烁?
有一种容器,bar内根据tick驱动的时候,每次初值都是上一根bar的结果。
举个例子,这种容器第一根bar运算完结果是1,第二根bar执行了自加一运算,无论在第二根bar上来多少根tick,这个容器运算结果都是2。因为每次执行自加一运算的时候,都是以第一根bar的结果1为基础进行加一。
这种容器在tb语言里被称为序列类型,currentcontracts就是序列类型。还有开高低收的关键字也是,比如如果去收盘价回溯一根close[1],这个取值是上一根bar的值,而不是当前bar上一tick的值。
也就是说:不管这个CurrentContracts是否变化,用他来做判定条件,就类似于marketpotion一样,是不会出现信号闪烁的。
print(事前CurrentContracts
If(固定条件 and abs(CurrentContracts)<10)
{ SellShort(10-abs(CurrentContracts),open); }
print(事后CurrentContracts
你输出看一下
图表系统每次以上一根结束状态开始
全局变量才是永久独立
CurrentContracts显示是一直变化的,但信号并没有闪烁。