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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 写一个次主力合约

   

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


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

主题:写一个次主力合约

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


加好友 发短信
等级:论坛游侠 帖子:252 积分:1001 威望:0 精华:0 注册:2010/2/15 16:47:58
  发帖心情 Post By:2020/7/21 14:50:56 [显示全部帖子]

次主力合约这么久也没搞出来?

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


加好友 发短信
等级:论坛游侠 帖子:252 积分:1001 威望:0 精华:0 注册:2010/2/15 16:47:58
  发帖心情 Post By:2020/7/25 18:11:49 [显示全部帖子]

Sub usgetdominantcontracts()
   On Error resume Next
    Dim block
    Dim market
   
    Set block = CreateObject("stock.block")
   
    For i = 0 To block.Count - 1
        block.removeat (0)
    Next
   
    'market = Array("CB","CM","NM","NB","HZ","SG")'外盘石油、黄金、股指期货
    market = Array("SQ","dq","zq","zj","IN")'添加原油
    c">    c">    contractopenint = 0
   
    For i = 0 To UBound(market)
        n = marketdata.GetReportCount(market(i))
        For j = 0 To n - 1
            Set report1 = marketdata.GetReportDataByIndex(market(i), j)
            suffixlabel = Right(report1.Label, 2)
           
            If suffixlabel = "00" Then
                block.addstock contractmarket, contractlabel
                c">                c">                contractopenint00 = report1.OpenInt
               
            End If
           
            If (suffixlabel >= "01" And suffixlabel <= "12")and (report1.OPENINT<contractopenint00) Then
                If report1.OPENINT > contractopenint00/5  Then
                    contractlabel = report1.Label
                    contractmarket = market(i)
                    contractopenint = report1.OPENINT

               End If
            End If
        Next
    Next
   
    block.addstock contractmarket, contractlabel
    block.tosave "自选","次主力合约"

     '打开市场指定分类名称的板块
     call block.open("次主力合约",0)
application.msgout Now&"  次主力合约筛选完毕"

End Sub

 回到顶部