欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → [求助]百分比开仓记录了手数,但是平仓时数量不正确

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2116人关注过本帖树形打印复制链接

主题:[求助]百分比开仓记录了手数,但是平仓时数量不正确

帅哥哟,离线,有人找我吗?
wonggoo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2017/10/16 13:39:50
[求助]百分比开仓记录了手数,但是平仓时数量不正确  发帖心情 Post By:2017/10/16 14:04:31 [只看该作者]

同一框架下有两个窗口,分别运行两个策略,交易标的是相同的;
用资金百分比进行了开仓,并且记录了开仓手数,代码如下:
LastLots:=GETINIFILE( 'D:\Weisoft Stock(x64)\开仓.ini',FORMULANAME ,'最近开仓手数');
Lots:=IF(开仓百分数=0,手数,if(LastLots>0,LastLots,INTPART(INTPART(vAsset/(MULTIPLIER*Close*TACCOUNT(41)))*开仓百分数/100)));

………………
…………
……

if ISLASTBAR then 
begin
平多:SELL(平多条件,NUMLOTS,marketR);
平空:SELLSHORT(平空条件 ,NUMLOTS,marketR);
end

Lots:=IF(开仓百分数=0,手数,INTPART(INTPART(vAsset/(MULTIPLIER*Close*TACCOUNT(41)))*开仓百分数/100));
if islastbar then 
    begin       
     开多:BUY(开多条件 ,Lots,MARKETR);
     开空:BUYSHORT(开空条件,Lots,MARKETR);
   if 开多 then 
begin
NumLots:=Abs(holding);
WRITEINIFILE( 'D:\Weisoft Stock(x64)\开仓.ini',FORMULANAME ,'最近开仓手数' ,NumLots);
end
end 


总持仓6手,其中一个策略触发平仓条件,且记录上一单的开仓数量为4手,因此,平仓应该只平4手(另外的2手是另一个策略开的单),交易日志显示,平仓手数也是4手,但检测到实际持仓为6手,结果发出了平6手的指令。最终的实际结果是6手全部平了。
交易日志内容如下:
--------------------------------------------------------------

09:30:01.862    2017.10.16 09:30:01【图表】框架:Frame 触发下单 SELL 品种 RB00 下单K线 2017.10.16 13:35:00 公式:2.AMA.R.Update 窗格ID:3 代码行:203
2017-10-16 09:30:01.863    【图表】模型下单 4      -----------------------【这里手数为4】
2017-10-16 09:30:01.864    【图表】下单系数调整后 手数:4       ----------------【这里手数也是4】
2017-10-16 09:30:01.865    【图表】实际持仓 6                    -----------------------【但这里却调整成了账户实际总的持仓】
2017-10-16 09:30:01.866    【图表】直接下单
2017-10-16 09:30:01.868    2017.10.16 09:30:01【图表】框架:Frame 触发下单 BUYSHORT 品种 RB00 下单K线 
2017.10.16 13:35:00            公式:2.R.Update 窗格ID:3 代码行:207
2017-10-16 09:30:01.869    【图表】模型下单 3
2017-10-16 09:30:01.870    【图表】下单系数调整后 手数:3
2017-10-16 09:30:01.872    【图表】直接下单
2017-10-16 09:30:01.875    【图表】RB00 运行完毕
2017-10-16 09:30:01.875    【图表】RB00 运行完毕
2017-10-16 09:30:01.875    【图表】I00 运行完毕
2017-10-16 09:30:01.876    【图表】RB01 运行完毕
2017-10-16 09:30:01.876    【下单】已经调整为 实际持仓为 6 
2017-10-16 09:30:01.877    【下单】RB01 价0.000000 量6 买卖1 类型1 开平1 账户30001670 Formula 1
2017-10-16 09:30:01.878    【下单】确认报单已发送 ID=-32820017 RefID = 6720
2017-10-16 09:30:01.879    【下单】RB01 价0.000000 量3 买卖1 类型1 开平0 账户30001670 Formula 1
2017-10-16 09:30:01.880    【下单】确认报单已发送 ID=-32820007 RefID = 6730
2017-10-16 09:30:01.910    【指令】收到回报指令 ID = -32820017 RefID = 6720
2017-10-16 09:30:01.937    【指令】收到回报指令 ID = -32820017 RefID = 6720
2017-10-16 09:30:01.938    【回报】30001670 : rb1801 - 已报单 6 价格:3773 平 卖
2017-10-16 09:30:02.012    【指令】收到回报指令 ID = -32820017 RefID = 6720
2017-10-16 09:30:02.016    【指令】收到成交回报指令 REFID = 6720 vol = 6
2017-10-16 09:30:02.032    【指令】收到回报指令 ID = -32820007 RefID = 6730
2017-10-16 09:30:02.049    【指令】收到回报指令 ID = -32820007 RefID = 6730
2017-10-16 09:30:02.050    【指令】收到回报指令 ID = -32820007 RefID = 6730
2017-10-16 09:30:02.053    【指令】收到成交回报指令 REFID = 6730 vol = 3
2017-10-16 09:30:02.085    【回报】30001670 : rb1801 - 已成交 6 价格:3776 平 卖
2017-10-16 09:30:02.086    【回报】30001670 : rb1801 - 已报单 3 价格:3773 开 卖
2017-10-16 09:30:02.087    【回报】30001670 : rb1801 - 已成交 3 价格:3776 开 卖
2017-10-16 09:30:02.302    【图表】RB00 运行完毕

--------------------------------------------------------------

图片点击可在新窗口打开查看

图片点击可在新窗口打开查看
请教,应该如何修改代码

 回到顶部
帅哥哟,离线,有人找我吗?
gxx978
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2017/10/16 15:03:42 [只看该作者]

可以输出下NUMLOTS的值是多少,如果这个为0,那表示全平,实际交易中会检测下实际账户中的持仓是多少,再全部平仓的。

 回到顶部
帅哥哟,离线,有人找我吗?
wonggoo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2017/10/16 13:39:50
  发帖心情 Post By:2017/11/6 21:23:55 [只看该作者]

谢谢,明白了

 回到顶部