2021-01-12 11:19:22.747 【图表】AP13 运行完毕
2021-01-12 11:19:22.748 【下单】AP05 价0.000000 量49 买卖1 类型1 开平0 账户178730 Formula 1
2021-01-12 11:19:22.749 【下单】确认报单已发送 ID=335139060 RefID = 160
2021-01-12 11:19:22.761 【指令】收到回报指令 ID = 335139060 RefID = 160
2021-01-12 11:19:22.762 【回报】178730 : AP105 - 已报单 49 价格:6036 开 卖
2021-01-12 11:19:22.765 【指令】收到回报指令 ID = 335139060 RefID = 160
2021-01-12 11:19:22.768 【指令】收到成交回报指令 REFID = 160 vol = 49
2021-01-12 11:19:22.769 【回报】178730 : AP105 - 已成交 49 价格:6039 开 卖
2021-01-12 11:19:32.890 【图表】AP13 运行完毕
2021-01-12 11:20:12.445 【图表】框架:Technic 触发下单 SELLSHORT 品种 AP13 下单K线 2021.01.12 15:22:00 公式:期货交易系统 窗格ID:Main 代码行:40
2021-01-12 11:20:12.446 【图表】下单品种已由 AP13 更改为 AP00
2021-01-12 11:20:12.447 【图表】模型下单 23
2021-01-12 11:20:12.447 【图表】下单系数调整后 手数:23
2021-01-12 11:20:12.448 【图表】实际持仓 -53
2021-01-12 11:20:12.448 【图表】直接下单
2021-01-12 11:20:12.449 【图表】AP13 运行完毕
2021-01-12 11:20:12.450 【下单】AP05 价0.000000 量23 买卖0 类型1 开平1 账户178730 Formula 1
2021-01-12 11:20:12.450 【下单】确认报单已发送 ID=335139070 RefID = 170
2021-01-12 11:20:12.464 【指令】收到回报指令 ID = 335139070 RefID = 170
2021-01-12 11:20:12.464 【回报】178730 : AP105 - 已报单 23 价格:6045 平 买
2021-01-12 11:20:12.467 【指令】收到回报指令 ID = 335139070 RefID = 170
2021-01-12 11:20:12.467 【指令】收到成交回报指令 REFID = 170 vol = 23
2021-01-12 11:20:12.468 【回报】178730 : AP105 - 已成交 23 价格:6043 平 买
2021-01-12 11:20:22.567 【图表】AP13 运行完毕
2021-01-12 11:20:32.727 【图表】AP13 运行完毕
我加载到苹果指数的一分钟K线中,然后策略部分代码如下:
IF A AND AAA THEN BUY(HOLDING=0,15%,MARKET),PERTRADER;//无持仓返回0
IF B AND BBB THEN BUYSHORT(HOLDING=0,15%,MARKET),PERTRADER;//无持仓返回0
IF C<MA(C,10) THEN SELL(HOLDING>0,HOLDING,MARKET);//多仓返回正数
IF C>MA(C,10) THEN SELLSHORT(HOLDING<0,HOLDING,MARKET);//空仓返回负数
为什么软件自动帮我建仓49手苹果空单,可结果在出现平仓信号之后才给我平仓23手,后面剩下的仓位即使已经满足平仓信号了,也不平仓了,
这是怎么回事啊?上次说这个策略这样写,当满足平仓信号时是可以把全部单子全部平仓的呀?
49手是手工下的?日志没看到这49手是从什么信号来的,只有一个手工单。
如果要实际账号全平:
IF C<MA(C,10) THEN SELL(HOLDING>0,0,MARKET);//多仓返回正数
IF C>MA(C,10) THEN SELLSHORT(HOLDING<0,0,MARKET);//空仓返回负数
写holding是全平模型虚拟持仓。
2021-01-12 11:19:22.762 【回报】178730 : AP105 - 已报单 49 价格:6036 开 卖
2021-01-12 11:19:22.765 【指令】收到回报指令 ID = 335139060 RefID = 160
2021-01-12 11:19:22.768 【指令】收到成交回报指令 REFID = 160 vol = 49
2021-01-12 11:19:22.769 【回报】178730 : AP105 - 已成交 49 价格:6039 开 卖
软件下的。
什么原因导致的
原因不复杂。
是因为PERTRADER函数导致的。
IF A AND AAA THEN BUY(HOLDING=0,15%,MARKET),PERTRADER;//无持仓返回0
IF B AND BBB THEN BUYSHORT(HOLDING=0,15%,MARKET),PERTRADER;//无持仓返回0
上面代码 开仓用了PERTRADER 之后模型里面是按照百分比下单 实际账号也是按照百分比下单。但是实际账号的百分比和模型的百分比结果 肯定是不相同的。 所以实际下单下了49手,但是模型的虚拟信号不是这个手数。
IF C<MA(C,10) THEN SELL(HOLDING>0,HOLDING,MARKET);//多仓返回正数
IF C>MA(C,10) THEN SELLSHORT(HOLDING<0,HOLDING,MARKET);//空仓返回负数
这2句平仓的时候,这里平仓是按照模型的虚拟仓位来全平的。也就是holding的值。这个值是49 是不一定相等的。
所以你只需要按照前面2楼的方式改下就行了。 平仓地方直接填0 就行了。这样实际账号上也会全平了。而不是按照虚拟仓位的holding数值平仓了
[此贴子已经被作者于2021/1/12 13:47:59编辑过]