老师:
我在夜间启用走完一根K线模式执行,当夜间按信号开仓,第二天早盘我再用轮询固定间隔执行信号,产生平仓不执行的问题。
这里是不是逻辑有问题?
谢谢!
有交易日志吗?看下交易日志。不执行是指没发委托吗?另外如果是固定轮询的话,信号检测是有周期性的。如果刚好卡在时间间隔之内的话,是可能检测不到这个信号的。
2019-01-23 09:00:04.710 【下单】已经调整为 实际持仓为 3
2019-01-23 09:00:04.710 【下单】SC1903 价427.449402 量3 买卖0 类型0 开平1 账户626811 Formula 1
2019-01-23 09:00:04.710 【下单】已提交,订单ID :428851308
2019-01-23 09:00:04.726 【指令】收到回报指令 ID = 428851308
2019-01-23 09:00:04.742 【回报】626811 : SC1903 - 已报单 3 价格:427.4 平 买
2019-01-23 09:00:04.773 【回报】626811 : SC1903 原油1903 - 已撤单 量:3
2019-01-23 09:00:04.773 【指令】收到回报指令 ID = 428851308
这是模拟柜台的问题。模拟柜台开盘比实际行情时间略慢一点,最初的一个很短时间内,可能会出现这种情况。另外实盘柜台不会这样。
哦,谢谢!
再请教之前的问题,假设我用走完K模式开仓,后转为轮询模式平仓可否?
这个是不可用的。但是可以用固定轮询下单,把开仓条件修改成判断上一个K是否满足某指定的条件就可以了。平仓条件不变,等于是间接实现你这个效果。
是不是将开仓改用MARKET,而平仓仍旧使用MARKETR?
不是这个意思哦。你看下这个指令说明, MARKET MARKETR的区别仅仅只在回测上有区分,实际下单是没区别的。能影响下单时机的除了下单条件就只能是你程序化下单的模式了。
我的意思是你开仓条件比如说是cond触发就开仓。
if cond then buy();
现在改成
if ref(cond,1) then buy(..);
然后使用固定轮询模式。