欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 新年献礼:获取主力合约最简单的VBA代码

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有8605人关注过本帖树形打印复制链接

主题:新年献礼:获取主力合约最简单的VBA代码

帅哥哟,离线,有人找我吗?
guotx2010
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
新年献礼:获取主力合约最简单的VBA代码  发帖心情 Post By:2012/1/29 14:00:47 [显示全部帖子]

'本过程需要两个参数

'1.sMarketCode市场代码,如中金所是ZJ,上期所SQ,郑商所ZQ,大连所DQ

'2.sStockPre品种代码的前缀,如股指IF,螺纹钢RB等,就是合约代码的符号,不要月份。

'调用方法:GetContractCode 'ZJ','IF'      '返回股指期货的主力合约

'调用上述过程之后,ZhuLiCode就保存了主力合约的代码

'本方法是通过判断那个合约的成交量与连续合约的成交量相等的方式来判断主力合约的,跟金字塔内部的方式一致。

 

public ZhuLiCode     '主力合约代码

Sub GetContractCode(sMarketCode,sStockPre)    '根据市场编码取得主力合约编码
 If sMarketCode="" then
  sMarketCode="ZJ"
 End if 
 
 n = marketdata.GetReportCount(sMarketCode)
 
 For j = 0 To n - 1
  Set report1 = marketdata.GetReportDataByIndex(sMarketCode, j)
  suffixlabel = Right(report1.Label, 2)
  If sStockPre=left(report1.Label,len(sStockPre)) then
   If suffixlabel = "00" Then
    ZhuLiVol=report1.volume
   End If
 
   If cdbl(suffixlabel) >= 1 And cdbl(suffixlabel) <= 12 Then
    If report1.volume = ZhuLiVol Then
     ZhuLiCode = report1.Label
     'application.MsgOut ZhuLiCode
     exit for
    End If
   End If
  End if 
 Next
End Sub


 回到顶部
帅哥哟,离线,有人找我吗?
guotx2010
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蜘蛛侠 帖子:1366 积分:5210 威望:0 精华:7 注册:2010/12/11 18:00:33
  发帖心情 Post By:2012/9/10 22:03:28 [显示全部帖子]

朋友,这个是vba代码,不是pel语言的,不能用在公式或策略中的。

 回到顶部