背景:
我使用的是
金字塔决策交易系统客户端安装包2.962版 ;
使用的版本是1800标准版;
使用的编译软件是VS2010;
通过 AddinDemo 的 RegReportNotify 事件注册品种,一直只能注册上3个交易所的品种。
但是根据 【金字塔帮助(H) --> 编程信息(P) --> 金字塔系统对象参考 -->对象 -->
MarketData 对象 -->
事件 -->
ReportNotify
当注册品种最新行情数据到达时发生】
所以提供的信息:
ReportNotify 事件
当注册品种最新行情数据到达时发生,由RegReportNotify函数所注册的。
注意:为了保证行情速度,金字塔对不同版本的行情订阅采取了不同的限制,如下:
免费版:3个
标准版:10个
专业版:20个
金钻版:30个
ReportNotify(ReportData)
ReportData 品种行情数据ReportData对象
问题:是不是新版本有新的限制,还是我有什么地方没做对: (我用的实例如下)
g_pMainFormework->RegReportNotify("IF00",'JZ');
g_pMainFormework->RegReportNotify("IF01",'JZ');
g_pMainFormework->RegReportNotify("IF03",'JZ');
g_pMainFormework->RegReportNotify("IF13",'JZ');
g_pMainFormework->RegReportNotify("AX00",'QD');
g_pMainFormework->RegReportNotify("AX01",'QD');
g_pMainFormework->RegReportNotify("AX03",'QD');
g_pMainFormework->RegReportNotify("AX13",'QD');
g_pMainFormework->RegReportNotify("AU00",'QS');
g_pMainFormework->RegReportNotify("AU01",'QS');
g_pMainFormework->RegReportNotify("AU03",'QS');
g_pMainFormework->RegReportNotify("AU13",'QS');
g_pMainFormework->RegReportNotify("FG00",'QZ');
g_pMainFormework->RegReportNotify("FG01",'QZ');
g_pMainFormework->RegReportNotify("FG03",'QZ');
g_pMainFormework->RegReportNotify("FG13",'QZ');
g_pMainFormework->RegReportNotify("000300",'HS');
g_pMainFormework->RegReportNotify("000001",'HS');
g_pMainFormework->RegReportNotify("600036",'HS');
g_pMainFormework->RegReportNotify("600048",'HS');
g_pMainFormework->RegReportNotify("600519",'HS');
g_pMainFormework->RegReportNotify("000001",'ZS');
g_pMainFormework->RegReportNotify("000040",'ZS');
g_pMainFormework->RegReportNotify("000100",'ZS');
g_pMainFormework->RegReportNotify("002196",'ZS');
谢谢!
[此贴子已经被作者于2013-1-22 14:47:51编辑过]
标准版可以注册10个,这个没问题的。是不是你的代码其他地方出现了问题
没有更大的授权.
你可以考虑使用VBA的遍历功能,每个一段时间进行遍历操作
以下是引用admin在2013-3-9 11:44:18的发言:
没有更大的授权.
你可以考虑使用VBA的遍历功能,每个一段时间进行遍历操作
如何遍历呢?
多看看金字塔的编程帮助,这是从帮助中摘抄下来的
示例
‘该示例从郑州市场筛选SR合约得最大持仓量做为主力合约
Sub Test()
Dim MaxCode
Dim MaxVolume
'得到市场所有品种
Count = MarketData.GetReportCount("ZQ")
For i = 0 To Count-1
Set Report1 = MarketData.GetReportDataByIndex("ZQ",i)
'只处理SR合约
if Left(Report1.Label,2) = "SR" Then
'只处理有效合约
if Right(Report1.Label,2) >= "01" And Right(Report1.Label,2) <= "12" Then
If Report1.Volume > MaxVolume Then
MaxCode = Report1.Label
MaxVolume = Report1.Volume
End if
end if
End if
Next
'显示成交量最大得合约
MsgBox MaxCode
End Sub