C++怎么訂閱全市場行情? [金字塔]
- 咨詢內容:
目前機構版訂閱行情個數上限為20,如果進行股票量化怎么訂閱全市場或者幾百個品種的行情?
- 金字塔客服:
范例制作中
- 用戶回復:
代碼范例下載
下載信息 [文件大?。?nbsp; 下載次數: ]點擊瀏覽該文件:addindemo.rar
主要原理及介紹:
首先我們需要設置一個定時器
在代碼
BOOL CMainWindowDlg::OnInitDialog()
增加代碼行
SetTimer(0,500,NULL);
為了避免遍歷輪詢重復計算的效率問題,我們采取記錄品種成交量的方式,只有當成交量出現變化后我們才處理品種的變化。因此需要增加一個對象記錄
std::map<void*,float> m_mapReportData;
其他代碼就相對比較簡單了,主要代碼如下:
void CMainWindowDlg::OnTimer(UINT nIDEvent)
{
if(nIDEvent == 0)
{
ScanMarketStock('HS');
ScanMarketStock('ZS');
}
CDialog::OnTimer(nIDEvent);
}//遍歷整個市場的品種
void CMainWindowDlg::ScanMarketStock(WORD wMarket)
{
DWORD dwCount = g_pMainFormework->GetReportCount(wMarket);
for(UINT i = 0; i < dwCount; i++)
{
char szLabel[10] = {0};//先獲得品種代碼
if(!g_pMainFormework->GetReportData(wMarket,i,szLabel))
continue;REPORT_STRUCT * pReport = g_pMainFormework->GetReportData(szLabel,wMarket);
if(pReport == NULL)
continue;//判斷只有成交量出現變化才認為該品種有行情觸發
std::map<void*,float>::iterator iter;
iter = m_mapReportData.find(pReport);
if(iter != m_mapReportData.end())
{
if(iter->second != pReport->m_fVolume)
{
ProcStockUpdate(pReport);
iter->second = pReport->m_fVolume;
}
}
else
{
ProcStockUpdate(pReport);
m_mapReportData[pReport] = pReport->m_fVolume;
}
}
}//這里函數處理交易品種
void CMainWindowDlg::ProcStockUpdate(REPORT_STRUCT * pReport)
{
}
- 網友回復:
為什么不采用時間變化來輪循
- 網友回復: 可不可以用時間變化輪循,這樣應該更合理
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容