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

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  點擊在線交流進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 久久国产亚洲高清观看| 别急慢慢来在线观看| 99热在线免费观看| 日本XXXX裸体XXXX| 国产一区二区三区播放| 337p欧洲亚洲大胆艺术| 日本3p视频在线看高清| 亚洲天堂电影网| 福利一区二区三区视频在线观看| 国产精品对白刺激久久久| 久久97久久97精品免视看秋霞| 波多野结衣忆青春| 国产动作大片中文字幕| 2021精品国产品免费观看| 扒下胸罩揉她的乳尖调教| 亚洲AV无码乱码国产精品| 精品人人妻人人澡人人爽人人| 国产精品无圣光一区二区| www.中文字幕| 无码人妻精品一二三区免费| 亚洲va中文字幕无码| 澳门永久av免费网站| 国产乱子精品免费视观看片| 色多多福利网站老司机| 壮汉紫黑粗大好深用力| 中国女人内谢69xxx视频| 日韩avapp| 亚洲av永久无码精品天堂久久| 精品一区二区三区无卡乱码| 国产乱码精品一区二区三区四川人| 91精品国产免费| 好男人好资源在线观看免费| 久久久久性色AV毛片特级| 最近在线观看视频2019| 国产精品第6页| 一级片黄色免费| 欧美一级在线观看视频| 国产乱人伦精品一区二区在线观看| 99精品视频在线观看免费播放| 日韩在线视频免费| 亚洲国产视频一区|