机构版里面,同时挂着多个账户,如果想实现里面的单个品种或者多个品种持仓同时加减仓一定比例,例如1/3,1/2,要怎么用vba来做呢?
因为对vba不是很熟,请列出详细步骤跟vba代码,谢谢~~
代码范例编写中。。
帮你写了平仓的过程例子‘
使用方法例如你的账户登录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
对于多账户的遍历,参考
属性
CTPAcCount 当前已经登陆非IB外盘帐户数量(包含无效登陆等情况在内的)
方法
CTPAccountName 得到指定基于0索引的非IB外盘帐户名称(包含登陆未成功的),例如 CTPAccountName(0)表示取第一个登陆的用户名称。注意:如果频繁调用该属性,请注意使用完毕后释放返回值。