交易信号发生改变,可能是个bug

/* -------------------------------------------------------------------------------------------------------------------------------------- 简称: Demo_20230515 名称: 测试交易信号的影响 周期: 日线 简介: 关于函数 CoefficientR 可能对交易信号的影响 -------------------------------------------------------------------------------------------------------------------------------------- */ // -- 以下为测试代码 -- // Params Numeric entryBarDate(20230516); // 入场时间(YYYYMMDD) Events OnInit() { SubscribeBar(FG309.CZCE, 1d, DateAdd(SystemDateTime, -30), 0); SubscribeBar(FG401.CZCE, 1d, DateAdd(SystemDateTime, -30), 0); } OnBar(ArrayRef<Integer> indexs) { Numeric corData = Round(CoefficientR(Data[0].Close, Data[1].Close, 20), 2); // <---重点:有这句信号不正常,注释掉这句信号就正常了 If(Data[0].MarketPosition ==0 && Data[1].MarketPosition ==0 && Date ==entryBarDate) { Bool retLeft = Data[0].Buy(1, Open, Enum_Signal_NotSend); Bool retRight = Data[1].SellShort(1, Open, Enum_Signal_NotSend); } } 以上代码包含CoefficientR函数时交易信号只显示1个,注释掉这句信号显示正常。

问题还没有解决

因为你上下两个不同的合约,盘中行情tick不是同时来的,如果某个图层先出现了一根新bar,那你的close指向就不对了

回复:那Open就不会有问题吧? 使用Open问题依旧 而且这个是日线bar,应该不存在盘中出现一根新bar

回复:open一样会有问题出现新bar以后 open也变化了你完全没有看懂我说的什么意思你这个问题归根结底是bar对齐的问题

回复:还是没明白,这个是日线级别,怎会出现新的bar?要说不同tick接收时间不一致我理解;分钟级别的bar数据因不同合约接收时间不同,会有不一致我也理解;但日线级别bar的Open数据是不应该变化的,另外我使用了Open[1],问题依旧出现可能您这边理解的是多数据源多周期,可能存在bar对齐问题,但案例中是同品种不同合约之间,周期相同且为日线级别。