全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
已解决
交易信号发生改变,可能是个bug
2023-05-16 12:22
/* 
--------------------------------------------------------------------------------------------------------------------------------------
 简称: 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);
		}
	}


data-href=data-href=

以上代码包含CoefficientR函数时交易信号只显示1个,注释掉这句信号显示正常。

kyover

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

2023-05-16 13:02
timinginfo
@kyover

那Open就不会有问题吧? 使用Open问题依旧  

而且这个是日线bar,应该不存在盘中出现一根新bar

2023-05-16 13:37
kyover
@timinginfo

open一样会有问题

出现新bar以后 open也变化了

你完全没有看懂我说的什么意思

你这个问题归根结底是bar对齐的问题

2023-05-17 09:39
timinginfo
@kyover

还是没明白,这个是日线级别,怎会出现新的bar?

要说不同tick接收时间不一致我理解;分钟级别的bar数据因不同合约接收时间不同,会有不一致我也理解;

但日线级别bar的Open数据是不应该变化的,另外我使用了Open[1],问题依旧出现

可能您这边理解的是多数据源多周期,可能存在bar对齐问题,

但案例中是同品种不同合约之间,周期相同且为日线级别。

2023-05-17 12:13
timinginfo

问题还没有解决

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