以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  有关程序化运行问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=183868)

--  作者:yzg512999
--  发布时间:2021/1/12 11:29:02
--  有关程序化运行问题
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手,后面剩下的仓位即使已经满足平仓信号了,也不平仓了,
这是怎么回事啊?上次说这个策略这样写,当满足平仓信号时是可以把全部单子全部平仓的呀?








--  作者:FireScript
--  发布时间:2021/1/12 12:15:21
--  
 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是全平模型虚拟持仓。

--  作者:yzg512999
--  发布时间:2021/1/12 13:24:57
--  
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 开 卖


软件下的。

什么原因导致的



--  作者:FireScript
--  发布时间:2021/1/12 13:47:03
--  
 原因不复杂。
是因为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编辑过]

--  作者:yzg512999
--  发布时间:2021/1/12 14:07:32
--  
原来如此,按照你说的改了,确实全平了,多谢大神