以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  再请教成交回报里的状态字段和价格信息  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=85745)

--  作者:basicsp
--  发布时间:2015/9/29 14:44:04
--  再请教成交回报里的状态字段和价格信息
typedef struct  {
long m_nOrderID; //订单ID
char m_szStatus[56]; //状态(详见.CPP文件描述)
long m_nFilled; //已成交数量
long m_nRemaining; //剩余数量
float m_fPrice; //成交价格
char m_szCode[10]; //品种
char m_szMarket[3]; //市场
BYTE m_nKaiping; //开平仓 0开仓 1平仓
BYTE m_nType; //订单类型 0限价 1市价 2停损 3限价停损
BYTE m_nAspect; //买卖方向 0买入 1卖出
char m_szAccount[32]; //操作账户
BYTE m_nAccountType; //账户类型 0IB 1CTP 2金仕达 3股票FIX 4恒生期货 5资管系统 6扩展接口
}BARGAIN_NOTIFY_KSI;

m_szStatus="Filled"时,文件说明表示本地订单已经全部成交,此时m_nFilled是否是此次委托的全部手数?成交价格“m_fPrice”是均价还是最后一笔成交的价格?
比如白糖,1次买入委托10手,其中5手先在5550成交,另外5手在5560成交,此时m_nFilled=?m_fPrice=?两次成交的订单ID“m_nOrderID”是一样的还是不一样的?跟委托下单10手的订单ID有没有关系?

由于实际委托手数较小,截取到的情况总是一笔就成交了,未出现两次成交的情况。还望解答,再次感谢!
[此贴子已经被作者于2015/9/29 14:44:20编辑过]

--  作者:王锋
--  发布时间:2015/9/29 15:49:16
--  

m_szStatus="Filled"时 m_nFilled是此次委托的全部手数, 成交价格“m_fPrice”是最后一笔成交的价格.

 

如果你可能存在多笔成交的情况,如果你需要知道每笔成交价格,你应该截取m_szStatus="Tradeing" 的消息状态,此时 nFilled 为单笔成交的数量,而nRemaining恒定为0,m_fPrice 即为该单笔的成交价格。

比如上述你的情况,那么两次m_szStatus="Tradeing"时,各个的状态分别为

 

nFilled  = 5

m_fPrice = 5550

 

nFilled = 5

m_fPrice = 5560


--  作者:basicsp
--  发布时间:2015/9/29 18:55:06
--  
谢谢王老师!