以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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 -- 谢谢王老师! |