C++怎么订阅全市场行情? [金字塔]
- 咨询内容:
目前机构版订阅行情个数上限为20,如果进行股票量化怎么订阅全市场或者几百个品种的行情?
- 金字塔客服:
范例制作中
- 用户回复:
代码范例下载
下载信息 [文件大小: 下载次数: ]点击浏览该文件: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 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容