CTP如何获取成交历史订单的均价

Discussion in 'CTP' started by kassawpet, May 21, 2015.

  1. 如题, 求高手解惑,struct头文件看了一遍,硬是没找到, 如果获取历史订单的均价
     
  2. 自行解决了,,没有专门的API, 只能初始化的时候SubscribePrivateTopic(THOST_TERT_RESTART),让OnRtnTrade重来一遍..
    (BTW: CTP设计的好蛋疼)
     
  3. 接口中尽量减少冗余数据,这样不是挺好的?
     
  4. 自己计算啊
    Code:
    typedef vector<CThostFtdcTradeField> VEC_TRADE;
    
    double GetTdAvgPx(VEC_TRADE& TdVec,TThostFtdcOrderSysIDType OrderSysID)
    {
    	int iVol=0;
    	double dPrice=0,dAmt=0;
    	
    	for (VIT_td vtd=TdVec.begin();vtd != TdVec.end();vtd++)
    	{
    		if (!strcmp(vtd->OrderSysID,OrderSysID))
    		{
    			dAmt += vtd->Volume * vtd->Price;
    			iVol += vtd->Volume;
    		}
    	}
    	
    	if (iVol<1) { dPrice=0; }
    	else
    	{ dPrice = dAmt/iVol; }
    	
    	return dPrice;
    }