开盘那两分钟不确定性太大,想避开开仓,是否有个“不等于"的函数,用来避开一定的时间
在期货上怎么写时间呢,用金字塔时间还是北京时间,因为有日盘夜盘。
你设置的是金字塔时间还是北京时间,默认应该是金字塔时间。还有就是这个代码用到了time函数,所以需要知道你交易周期是什么周期。
金字塔时间。
周期的话,之后应该会有很多不同的吧,包括tick在内。不能指定一个时间不开仓吗,比如090000-090300不开仓
能做时间判断。但是time函数返回的是K线时间。所以和周期挂钩。
比如 1分钟周期下,判断是否在白盘开盘2分钟后。
tcd:time>130200;
如果是五分钟周期,则是无法精确判断是否在开盘2分钟之后了,因为你五分钟一个K就是五分钟。time返回的又是K线结束时间。所以最多能判断是否开盘5分钟,10分钟,15分钟。其他周期以此类推。
所以使用time函数可以判断时间范围,但是这个和周期选择是关联的。
应该没问题啊,比如5分钟,今天收盘最后一根k有信号,根据逐k机制,会在明早一开盘下单,明早的k线肯定在090300之内啊,所以可以禁止开仓不对吗,换成15,30一样的,即便tick应该也行啊,准备开仓k的时间在090300之内就不开
先纠正下这里:“明早的k线肯定在090300” 五分钟周期下K线时间没有和9点03分对应的K的。没有的。你判断不了,你只能判断当前K时间在9点05分之前,是否在9点03之前,根本不知道。 图表上进行时间判断都是依赖于K线时间,而K线时间又是和周期挂钩的。
另外就是你这个信号是在前一个收盘K上,这个信号已经出来了,你在次根K上信号执行的时候,你再也无法用代码逻辑限制它了。
所以你这个需求,我还是建议你用后台程序化做比较好。 用后台程序化,直接用北京时间判断,不用管其他的。
“应该没问题啊,比如5分钟,今天收盘最后一根k有信号,根据逐k机制,会在明早一开盘下单,明早的k线肯定在090300之内啊,所以可以禁止开仓不对吗,换成15,30一样的,即便tick应该也行啊,准备开仓k的时间在090300之内就不开”
你说的是走完K的机制和逐K模式没关系的。
你这个需求呢,用固定轮训模式,是可以尝试下的。方法就是原本走完K下单模式先改成固定轮训模式。
原先是当前K满足条件A则下单,现在改成判断上一个K是否满足条件A。
tcd:(CURRENTTIME>=090300 and ISLASTBAR) or (not(ISLASTBAR));//时间判断。最新K和历史K 区分处理。
if tcd and ref(a,1) then buy(holding=0,1,market);
但是也有不好的地方,回测和之前不太一样了,因为信号位置偏移了。纯指标的开平仓几乎没区别,一旦有涉及止盈止损之类的,就不行了,信号可能会有些偏移。