全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
已解决
跨周期程序序列变量引发的交易信号混乱
HNCC927 分享到
2023-09-10 14:43

If(data1.MACDDiff>data1.AvgMACD)//第一句

   {

    buySetup=True;

   }

Bool macdxc4=data0.MACDDiff>data0.AvgMACD and data0.MACDDiff[1]<data0.MACDDiff;

If(MarketPosition ==0 and macdxc4 and buySetup)

   {

    buy(1,Close);

buySetup=False;  

   }

Bool macdxc5=data0.MACDDiff[1]>data0.MACDDiff;

If(MarketPosition<>0 And BarsSinceEntry >1 and macdxc5)

   {

    Sell(0,Open);

}

 

(1) 上述程序执行正常,在一分钟图层产生正确交易信号,五分钟图层没有出现交易信号。

(2) 但是把第一句改成if(data1.MACDDiff[1]<data1.MACDDiff)后,程序发生了重大的变化,在一分钟图层上原来存在的交易信号消失,而五分钟图层新产生了交易信号。

(3) 此外,buy(1,Close);此语句前面加上data0.后,出现开仓信号完全突破MarketPosition ==0,原本只能开仓一手,变成开仓很多手。

(4) 似乎跨周期策略存在序列变量,就容易出现问题。

请问老师,这是什么原因造成的?

wangkaiming

哪个图层是几分钟

不要贴部分代码,没办法调试

(2)你都改了条件 程序为什么不能发生变化

(3) 非全局,图层变量都是独立的,系统marketposition也是

2023-09-11 08:17
您未登录,请先 登录注册 后发表评论
顶部