大伊人青草狠狠久久-大伊香蕉精品视频在线-大伊香蕉精品一区视频在线-大伊香蕉在线精品不卡视频-大伊香蕉在线精品视频75-大伊香蕉在线精品视频人碰人

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

求助:VBA做參數優化時內存不斷的耗盡 [金字塔]

  • 咨詢內容:

    用下面VBS對某個指標做參數優化時,內存會不斷耗盡,請教大俠如何解決,謝謝!

     

     for j=6 to 20 step 1
     for k=8 to 36 step 1
     
     test = "W_TEST(" & j & "," & k & ",30)"

     for i=0 to 1166-1
       dim MarketData1, Report1, Fomula1
       set MarketData1 = MarketData
       Set Report1 = MarketData1.GetReportDataByIndex("SZ",i)
       Set Formula1 = MarketData1.STKINDI(Report1.Label,"SZ",test,0,4)
       sg =  Formula1.GetBufData("SG", Formula1.DataSize-1)
       Application.PeekAndPump     
       Set Report1 = Nothing
       Set Formula1 = Nothing 

       set MarketData1 = Nothing
      next
      next

     next

     

  • 金字塔客服: 建議檢查一下是不是你的其他代碼因為某種原因沒有釋放導致的問題,我們檢查過金字塔代碼,VBA在創建公式對象時不會多次分配內存的

     

  • 用戶回復:

    謝謝回復!可能是我測試的指標 W_TEST2中又調用了VBA自定義的函數,

    然后VBA函數中申請了返回數組返回出去了,是不是這個數組在外面沒地方釋放,出現了內存泄漏。

    下面是測試的代碼,請確認。

     

    測試宏:

    Sub M_Test()

     dim sg, wn, sn, st, test
     
     for j=6 to 20 step 1
     for k=8 to 36 step 1
     
     sg = 0
     
     test = "W_TEST2(" & j & "," & k & ",30)"
     Application.MsgOut(test) 

      for i=0 to 1166-1
       dim MarketData1, Report1, Fomula1
       set MarketData1 = MarketData
       Set Report1 = MarketData1.GetReportDataByIndex("SZ",i)
       Set Formula1 = MarketData1.STKINDI(Report1.Label,"SZ",test,0,4)
       sg = sg + Formula1.GetBufData("SG", Formula1.DataSize-1)
       
       Application.PeekAndPump     
       Set Report1 = Nothing
       Set Formula1 = Nothing 
       Set MaketData1 = Nothing 
      next
     
     next
     next   

     MsgBox "計算完成!"
     
    End Sub

     

    測試指標  W_TEST2 :

    INPUT:  N(14, 1, 50),M(18, 0, 100);

    BS: CU_MA1(C, N) + CU_MA1(C, M);
    SG: BS;

     

    系統自帶的自定義函數 CU_MA1:

    '計算序列模式下指定周期長度的收盤價均價
    Function CU_MA1(Formula,CLOSE,CYC)
       CU_MA1=0

        '防止公式逐周期模式時調用
        If Formula.WorkMode = 0 Then
            Exit Function
        End If

        'CLOSE數組數據長度一定會與Formula.DataSize-1相等
        DataCount = UBound(CLOSE)
        If DataCount <> Formula.DataSize-1 Then
            Exit Function
        End If

        '定義一個計算返回的數組
        Dim ResultMa
        Redim ResultMa(DataCount)

        For i = Cyc-1 To Formula.DataSize-1
            Count = 0
            For k = i-(Cyc-1) To i
                Count = Count + CLOSE(k)
            Next
            ResultMa(i) = Count / Cyc
        Next

        '返回一個計算完畢的均線數組
        CU_MA1 = ResultMa
    End Function

     


     

  • 網友回復:

    這個做法恐怕不行,會導致問題,建議你不要在PEL中使用自定義函數,又拿VBA來做調用。

    建議將你的PEL中的VBA自定義函數的算法,直接移植到VBA中,只直行簡單的單次調用

 

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

可聯系技術人員 QQ: 1145508240  有需要幫忙請點擊這里留言!!!進行 有償 編寫!不貴!點擊查看價格!


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 欧美 日韩 中字 国产 | 免费成人小视频 | 99久久99热精品免费观看国产 | 欧美成人免费观看国产 | 日日爱夜夜操 | 久久性生大片免费观看性 | 男女啪视频大全1000 | 日韩亚洲人成在线综合 | 久久99欧美 | 欧美午夜精品 | 亚洲国产综合人成综合网站00 | 欧美一级毛片一免费 | 久久精品国产一区二区三区肥胖 | 久久草视频在线 | 97在线看片免费福利视频 | 国产成人综合洲欧美在线 | 色综合久久中文字幕网 | 国产二区视频 | 亚洲一区欧美二区 | 久久久久九九精品影院 | 亚洲一区二区免费在线观看 | 一区二区三区在线 | 欧 | 亚洲精品久久久久久久久久久网站 | 99久久精品视香蕉蕉er热资源 | 久久福利影院 | 高清国产一区二区 | 精品视频在线观看免费 | 一级毛片中文字幕 | 国国产自国偷自产第38页 | 99热免费观看 | 在线不卡日韩 | 久久亚洲综合伊人 | 老太婆性杂交毛片 | 国产在线一区二区三区在线 | 亚洲视频一区二区在线观看 | 伊人色强在线网 | 手机看片福利盒子久久青 | 天天干在线免费视频 | 337p亚洲精品色噜噜狠狠 | 日韩精品久久久毛片一区二区 | 噜噜狠狠 |