以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  VBA中的查询资金和账户?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=60313)

--  作者:solarhe2006
--  发布时间:2013/12/25 14:58:00
--  VBA中的查询资金和账户?
VBA中的查询资金和账户?
在CTP柜台中有查询间隔一秒的限制,那么金字塔VBA中的
order.account2(6,myaccount)和Call order.HoldingInfoByCode2中查询的持仓情况是不是会因为查询时间的限制,得到的不是最新资金和持仓,这个情况在一分钟以上交易没关系,在TICK驱动高频交易时候(500毫秒)下就最好不去查询资金和账户。

--  作者:王锋
--  发布时间:2013/12/25 16:28:11
--  
不会的,你调用金字塔函数时,都是从内部调用的,不会去查询
--  作者:solarhe2006
--  发布时间:2013/12/25 16:33:36
--  

不会去查询的话,实时的账户资金变动和持仓变动是如何得出来的呢?VBA下请详细说下?


--  作者:王锋
--  发布时间:2013/12/25 16:50:42
--  

交易有变动时,金字塔会自动对账户进行计算,也不会没事就到柜台去查询,查询是个很慢的过程,无法满足及时性需要的


--  作者:solarhe2006
--  发布时间:2013/12/25 20:41:59
--  

交易有变动时,相当于事件驱动,请问是那个事件呢?

1、OnTrade委托回报

2、OnOrder

成交回报 

3、OnOrderRejected委托拒绝回报

4、OnOrderCanceled撤单成功回报

5、OnCancelOrderFailed撤单失败回报

还是

Status         订单的变化类型,有如下字符串值:

                 "Cancelled"  表示订单已经撤销

                 "Submitted"和"PreSubmitted"  表示订单已经提交,当只成交一部分尚未完全成交时也会出现此事件,此时已成交数量在Filled参数中显示

                 "Filled"    表示本地订单已经全部成交

                 "Tradeing"  每笔成交回报,此时Filled是本次成交数量,Remaining将始终为0

                 "Inactive"  表示本次委托无效,比如价格超过允许范围,委托数量超出范围等等



--  作者:z7c9
--  发布时间:2013/12/26 6:11:09
--  
Sub order_orderstatusex2(orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype)
mystatus=LCase(status)
Select Case LCase(status)
Case "submitted"
onsendorder orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
application.msgout Now&"<下单成功>"&mystatus
\'printorderstatus orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
Case "inactive"
onsendorderfailed orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
application.msgout Now&"<下单失败>"&mystatus
\'printorderstatus orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
Case "cancelled"
oncancelorder orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
application.msgout Now&"<撤单成功>"&mystatus
\'printorderstatus orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
Case "tradeing"
ontrade orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
application.msgout Now&"<成交回报>"&mystatus
\'printorderstatus orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
Case "filled"
application.msgout Now&"<全部成交>"&mystatus
\'printorderstatus orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
Case "connected"
application.msgout Now&"<账号连接>"&mystatus
\'printorderstatus orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
Case "disconnected"
application.msgout Now&"<账号断开>"&mystatus
\'printorderstatus orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
Case Else
application.msgout Now&"<异常情况>"&mystatus
\'printorderstatus orderid,status,filled,remaining,price,code,market,ordertype,aspect,kaiping,account,accounttype
End Select
End Sub

--  作者:solarhe2006
--  发布时间:2013/12/26 14:35:52
--  
交易有变动时,金字塔会自动计算,那么如果金字塔的资金和持仓是计算出来的,如果我一个帐号在两个地方登陆,其中一个地方手工下单,金字塔监控不到的话,就计算不了呀??