以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  高级功能研发区  (http://www.weistock.com/bbs/list.asp?boardid=5)
----  c++接口取出的数据发现有些问题。  (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=58501)

--  作者:qq代人发帖
--  发布时间:2013/11/7 15:35:55
--  c++接口取出的数据发现有些问题。
请教:c++接口取出的数据发现有些问题。addin的接口。
我做了g_pMainFormework->UnRegReportNotify("RU05",\'QS\');
然后,callback函数OnNotifyUpdate(WPARAM w,LPARAM l)会被调用,
然后调用到void CMainWindowDlg::ReportUpdate(LPARAM l)
到这里都没问题,但是在这个函数里,
double duodan =0;
double kongdan =0;
    duodan = pData->m_fBuyVolume[0] + pData->m_fBuyVolume[1] + pData->m_fBuyVolume[2] + pData->m_fBuyVolume4 + pData->m_fBuyVolume5;
kongdan = pData->m_fSellVolume[0] + pData->m_fSellVolume[1] + pData->m_fSellVolume[2] + pData->m_fSellVolume4 + pData->m_fSellVolume5;
strText.Format("%s 多单:%lf,空单:%lf, 权重价差多:%lf, 权重价差空:%lf, 价格%f", pData->m_szName,
duodan, kongdan, Quanzhongjiachaduo, Quanzhongjiachakong,pData->m_fNewPrice);
WriteLog(strText);
strText.Format("%s,m_fBuyPrice:%2f,%2f,%2f,%2f,%2f", 
pData->m_szName, pData->m_fBuyPrice[0], pData->m_fBuyPrice[1],pData->m_fBuyPrice[2],pData->m_fBuyPrice4,pData->m_fBuyPrice5);
WriteLog(strText);

strText.Format("%s,m_fBuyVolume:%2f,%2f,%2f,%2f,%2f", 
pData->m_szName, pData->m_fBuyVolume[0], pData->m_fBuyVolume[1],pData->m_fBuyVolume[2],pData->m_fBuyVolume4,pData->m_fBuyVolume5);
WriteLog(strText);

输出显示你们的给出的数据应该有问题:
2013.11.07 14:59:54 1405,m_fBuyPrice:0.000000,0.000000,45.000000,0.000000,0.000000
2013.11.07 14:59:55 1405,m_fBuyVolume:0.000000,0.000000,19615.000000,0.000000,0.000000
王大波(14168071)  15:26:13
pData->m_fBuyVolume[2]应该是挂单3的挂单量,你们存储的却是价格。
这是在ru05上运行的

问题2)我有一个输出:
   strText.Format("买入: %s,价格 %f", pData->m_szName, pData->m_fNewPrice);
   WriteLog(strText);
打印的却是,
2013.11.07 14:59:54 买入: 1405,价格 159154.000000
这里你们的价格数值也不对。
估计你们这部分接口用的人不多,没有经过验证过。
问题3,我打印出了你们的当前5档的挂单数据,这些数据也是不对的,因为不可能有那么多0.
2013.11.07 14:59:54 1405,m_fBuyPrice:0.000000,0.000000,45.000000,0.000000,0.000000
2013.11.07 14:59:55 1405,m_fBuyVolume:0.000000,0.000000,19615.000000,0.000000,0.000000
2013.11.07 14:59:55 1405,m_fSellPrice:0.000000,0.000000,69.000000,0.000000,0.000000
2013.11.07 14:59:55 1405,m_fSellVolume:0.000000,0.000000,0.000000,0.000000,8.000000
每行从前向后分别是1-5档的行情,

我用的打印是:
strText.Format("%s,m_fBuyPrice:%2f,%2f,%2f,%2f,%2f", 
pData->m_szName, pData->m_fBuyPrice[0], pData->m_fBuyPrice[1],pData->m_fBuyPrice[2],pData->m_fBuyPrice4,pData->m_fBuyPrice5);
WriteLog(strText);

strText.Format("%s,m_fBuyVolume:%2f,%2f,%2f,%2f,%2f", 
pData->m_szName, pData->m_fBuyVolume[0], pData->m_fBuyVolume[1],pData->m_fBuyVolume[2],pData->m_fBuyVolume4,pData->m_fBuyVolume5);
WriteLog(strText);

strText.Format("%s,m_fSellPrice:%2f,%2f,%2f,%2f,%2f", 
pData->m_szName, pData->m_fSellPrice[0], pData->m_fSellPrice[1],pData->m_fSellPrice[2],pData->m_fSellPrice4,pData->m_fSellPrice5);
WriteLog(strText);
strText.Format("%s,m_fSellVolume:%2f,%2f,%2f,%2f,%2f", 
pData->m_szName, pData->m_fSellVolume[0], pData->m_fSellVolume[1],pData->m_fSellVolume[2],pData->m_fSellVolume4,pData->m_fSellVolume5);
WriteLog(strText);




--  作者:王锋
--  发布时间:2013/11/7 18:48:58
--  
上海期货交易所只有1档行情的,其他档位是没有行情数据的
--  作者:王锋
--  发布时间:2013/11/8 18:06:38
--  

读取数据字段有错位,有可能你是用的比VC6高的版本编译的,金字塔的time_t格式是4位字节的,VS2005等版本是8位的,需要处理一下才行,参考 http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=53323

 

目前只有大连和中金所支持5档行情,如果你是专业版及其以上用户,在最新版上连接期货L2服务器即可。


--  作者:王锋
--  发布时间:2013/11/11 11:06:56
--  
是的