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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件策略编写求助区 → [求助]请问如何用vba处理多账户同时加减仓问题?

   

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


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

主题:[求助]请问如何用vba处理多账户同时加减仓问题?

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


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
[求助]请问如何用vba处理多账户同时加减仓问题?  发帖心情 Post By:2017/2/16 15:56:51 [只看该作者]

机构版里面,同时挂着多个账户,如果想实现里面的单个品种或者多个品种持仓同时加减仓一定比例,例如1/3,1/2,要怎么用vba来做呢?

 

因为对vba不是很熟,请列出详细步骤跟vba代码,谢谢~~



查看使用道具详细信息
悬赏金币帖,要悬赏 10 个金币
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/2/22 14:31:36 [只看该作者]

代码范例编写中。。



金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
获得0个金币
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/2/22 18:21:59 [只看该作者]

 

帮你写了平仓的过程例子‘

使用方法例如你的账户登录ID为 8888,需要平仓一半

call PingCang("8888",0.5)

 

'平仓函数

 Sub PingCang(Account, CW)
 
  dim BuyHolding
  dim BuyCost
  dim BuyTodayHolding
  dim SellHolding
  dim SellCost
  dim SellTodayHolding
  dim PNL
  dim UseMargin
  dim Code
  dim Market

    Holding = Order.Holding2(Account)
    For I = 0 To Holding-1
     Result = Order.HoldingInfo2(i,BuyHolding,BuyCost,BuyTodayHolding,SellHolding,SellCost,SellTodayHolding,PNL,UseMargin ,Code,Market)
   If Result = 1 Then
          '成功得到仓位信息后进行平仓处理
          PingCangSS = BuyHolding * CW '计算要平仓的手数
          Application.MsgOut BuyHolding & "---"&SellHolding
          If PingCangSS > 0 Then
           call Order.Sell(1,PingCangSS,0,0,Code,Market,Account,0)
          End If
         
          PingCangSS = SellHolding * CW '计算要平仓的手数
          If PingCangSS > 0 Then
           call Order.SellShort(1,PingCangSS,0,0,Code,Market,Account,0)
          End If
   End If
    Next
 
 End Sub



金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
获得10个金币
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/2/22 18:23:49 [只看该作者]

对于多账户的遍历,参考

 

属性

CTPAcCount          当前已经登陆非IB外盘帐户数量(包含无效登陆等情况在内的)

 

方法

CTPAccountName       得到指定基于0索引的非IB外盘帐户名称(包含登陆未成功的),例如 CTPAccountName(0)表示取第一个登陆的用户名称注意:如果频繁调用该属性,请注意使用完毕后释放返回值



金字塔—专业程序化软件提供商

金字塔-技术部

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

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
获得0个金币
 回到顶部
帅哥哟,离线,有人找我吗?
saintlucifer
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:356 积分:767 威望:0 精华:0 注册:2011/9/5 10:51:56
  发帖心情 Post By:2017/3/13 10:36:39 [只看该作者]

感谢,悬赏已送上

 回到顶部