您現在的位置:程序化交易>> 期貨公式>> 金字塔等>> 金字塔知識>>正文內容

vba字典在金字塔中如何表示 [金字塔]

  • 咨詢內容:

    問題:

         在鄭州期貨市場,將商品名稱左邊兩位存入數組MC(),
            通過輸出,驗證MC()確實有數據 

               希望:把數組MC()里記錄裝入字典,過濾掉重復的記錄。

                  但 加入數據時提示錯誤。

     

         期望得到幫助和指導,謝謝。

     

    ,,,,

    Set d=CreateObject("Scripting.Dictionary")     '將數組MC()裝入字典,濾掉重復記錄
    for qq=0 to ubound(mc)
    d.Add mc(qq)                                               '加入數據時出現錯誤
    next
    application.MsgOut d.count                   
    End Sub

     

     

    下邊為測試時源代碼:

     

    Sub t_lx()  '在鄭州期貨市場,將商品名稱左邊兩位存入數組MC()
    dim mc()
    dim d
    Count = MarketData.GetReportCount("zq")
    redim mc (Count-1)
    For i = 0 To Count-1 
    set Report3 = MarketData.GetReportDataByIndex("zq",i)                                         
    mc(i)=Left(Report3.stockname,2)
    Next
    for nn= 0 To i-1
    application.MsgOut mc(nn)    '通過輸出,驗證MC()確實有數據 
    Next

    Set d=CreateObject("Scripting.Dictionary") '將數組MC()裝入字典,濾掉重復記錄
    for qq=0 to ubound(mc)
    d.Add mc(qq)                       '加入數據時出現錯誤
    next
    application.MsgOut d.count                   
    End Sub

     

  • 金字塔客服: 字典是有鍵值對的,就是說有兩列數據,你存入的時候,只有一個值,當然出錯了。

     

  • 用戶回復: 以下是引用guotx2010在2013-2-28 16:30:05的發言:
    字典是有鍵值對的,就是說有兩列數據,你存入的時候,只有一個值,當然出錯了。

    redim mc(Count-1) '名稱
    redim dm(Count-1) ’代碼

    mc(i)=Left(Report3.stockname,4)
    dm(i)=Right(Report3.Label,2)

     

    d.Add mc(qq),dm(qq)    還是提示錯誤:

     

    編輯器錯誤“457”,由于控件無法看到、尚未啟用,或其他類型不接受焦點,因此無法將焦點移至該控件。

     

    請老師再賜教。

     

       另外,測試了論壇中“找主力合約”的例子,在本機上運行正常,里邊也應用到“字典”,因個人水平較低,看不出例子為啥就能運行。

     

     

     

     

     

     

     

  • 網友回復: ''''''這是我用著的代碼
    Set dominantContract=CreateObject("Scripting.Dictionary")
    '枚舉合約,將連續合約的代碼和對應市場代碼分別作為鍵和值存入字典容器,供后續操作調用
    Sub GetLxCode()
     Dim marketName
      dominantContract.RemoveAll
      marketName=Array("SQ","DQ","ZQ","ZJ")
      prefixStockNameOld=""
     c"
      contractVol=0
     
      For j=0 To UBound(marketName)
        n=marketData.GetReportCount(marketName(j))
        For i=0 To n-1
          Set reportData=marketdata.GetReportDataByIndex(marketName(j),i)
          prefixStockNameCur=left(reportData.StockName,2)
          suffixStockNameCur=right(reportData.StockName,2)
          If suffixStockNameCur>="00" And suffixStockNameCur<"99" And reportData.Volume>0 Then
          'If suffixStockNameCur="00" And reportData.Volume>0 Then
           If prefixStockNameCur<>prefixStockNameOld Then
             If contractLabel<>"" Then
               dominantContract.Add contractLabel,contractMarket
             End If
             prefixStockNameOld=prefixStockNameCur
             contractLabel=reportData.Label
             contractMarket=marketName(j)
             contractVol=reportData.Volume
           ElseIf reportData.Volume>contractVol then
             contractLabel=reportData.Label
             contractVol=reportData.Volume
           End If
         End If
        Next 
      Next
      dominantContract.Add contractLabel,contractMarket
     End sub

     

  • 網友回復:

     prefixStockNameOld=""
     c"
    感覺這兩句很神秘,在程序中是啥意思?尤其是Old。

    希望老師能把每一條代碼給給注釋,便于學習。

    另外:dominantContract.Add contractLabel,contractMarket

    如果想把字典中已經裝入的記錄逐條顯示出來,應該怎么寫。

    總感覺金字塔里字典的用法與VBA 不太一樣,懇請指點。

    謝謝。

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 262069696  點擊在線交流進行 有償 編寫!不貴!點擊查看價格!


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
主站蜘蛛池模板: 久草视频福利资源站| 欧美精品久久天天躁| 特级一级毛片免费看| 欧美日韩一区二区三区自拍| 最近中文字幕免费版在线3| 日出水了特别黄的视频| 好男人看视频免费2019中文| 国产自在线观看| 国产大片黄在线观看| 免费看男阳茎进女阳道动态图| 亚洲欧美色一区二区三区| 久久精品视频大全| 一本色综合久久| 永久在线观看www免费视频| 色综合色国产热无码一| 波多野结衣按摩| 日本阿v视频高清在线中文| 女大学生的沙龙室| 国产粗话肉麻对白在线播放| 四虎www成人影院| 亚洲国产精品无码久久青草| 久久久久久人妻无码| 91制片厂制作果冻传媒168| 视频一区二区三区蜜桃麻豆| 波多野结衣大战欧美黑人| 日本最刺激夫妇交换影片| 国语自产精品视频在线看| 国产亚洲欧美日韩在线看片| 交换人生电影在线| 久久亚洲国产成人精品性色| 97精品在线播放| 菠萝蜜视频在线观看入口| 正能量网站不用下载免费观看视频软件| 日本视频免费看| 国产视频一区在线| 啦啦啦啦在线直播免费播放| 亚洲一区中文字幕在线电影网| 一个人hd高清在线观看免费直播| 麻豆精品传媒视频观看| 欧美精品一区二区精品久久| 成全高清视频免费观看|