以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://www.weistock.com/bbs/list.asp?boardid=4) ---- 有关程序化运行问题 (http://www.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 -- 原来如此,按照你说的改了,确实全平了,多谢大神 |