向各位老师和大佬求教!
我想让策略在任何节假日的时候都不隔夜,并做一下历史回测,所以需要在每个节假日的前1天或者2天平仓。比如我想在春节前每年的倒数第二个交易日平仓,但每年春节的日期又不是相同的,请问应该怎样实现??
仅作参考:DateDiff(Date,Date[-1])>=3
谢谢老师的提示,在上证指数(000001)图表历史K线上做了一下测试,发现如果在OnBar和OnBarOpen里打印Date[-1]可能会出现异常,
测试时间20250125(周六), 图标上最后一根日线Bar日期是20250124
代码如下图
OnBarOpen(ArrayRef<Integer> indexes)
{
Print("Date:" + Text(Date));
Print("Date[-1]:" + Text(Date[-1]));
}
输出结果
Date:20250121
Date[-1]:20250122
Date:20250122
Date[-1]:20250123
Date:20250123
Date[-1]:20250124
Date:20250124
Date[-1]:9223372036854775807
如果使用OnBar最后一根bar似乎不执行,结果如下
Date:20250121
Date[-1]:20250122
Date:20250122
Date[-1]:20250123
Date:20250123
Date[-1]:20250124
------------------------------------------------
但是如果换成期货商品合约,包括888,以包含夜盘的ag888或者主力合约ag2504为例
OnBar最后一根(20250127)会出现数据混乱
Date:20250124
Date[-1]:20250127
Date:20250127
Date[-1]:9223372036854775807
OnBarClose最后一根正常
Date:20250124
Date[-1]:20250127
OnBarOpen最后一根有问题
Date:20250127
Date[-1]:9223372036854775807
最后一个是无效数值,不能用这个方法