经常有人问怎么获取主力合约,我做成了一个函数,只要传入合约代码和市场代码就可以返回主力合约,下面是代码:
Function GetContractCode(sMarketCode,sStockPre)
'根据市场编码取得主力合约编码
contractvolume = 0
k=0
ZhuLiCode=""
For j = 1 To 12
if j<10 then
m="0" & cstr(j)
else
m=cstr(j)
end if
Stock=sStockPre & m
'application.MsgOut sMarketCode & "," & Stock
on error resume next
Set report1 = marketdata.GetReportData(Stock,sMarketCode)
if cdbl(report1.volume)>contractvolume then
contractvolume=cdbl(report1.volume)
ZhuLiCode = report1.Label
end if
if report1.volume>0 then
aCode(k)=report1.Label
k=k+1
end if
Next
'application.MsgOut ZhuLiCode
GetContractCode=ZhuLiCode
End Function
调用方法:MainCode=GetContractCode("IF00","ZJ") '获取股指主力合约
MainCode=GetContractCode("RB00","SQ") '获取螺纹钢主力合约
不是指标,这是在模块中建立的函数呀,你得先了解一下vba基础。