Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共5 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
saintlucifer 发表于:2017/2/16 15:56:51

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

 

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

2楼
王锋 发表于:2017/2/22 14:31:36

代码范例编写中。。

3楼
王锋 发表于: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

4楼
王锋 发表于:2017/2/22 18:23:49

对于多账户的遍历,参考

 

属性

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

 

方法

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

5楼
saintlucifer 发表于:2017/3/13 10:36:39
感谢,悬赏已送上
共5 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in .07813 s, 2 queries.