人人爽天天爽夜夜爽qc-人人爽天天爽夜夜爽曰-人人天天爱天天做天天摸-人人天天夜夜-色网站在线-色网站在线看

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

公式調用VBA函數,參數返回問題 [金字塔]

  • 咨詢內容:


    Function zbDate(Formula,ZB,XH)
        '系統會在逐K線模式解釋公式時的每個周期都會調用此函數一遍,因此設計時應該注重程序的執行效率,不要重復的執行一些沒必要的代碼

    dim resultMa
    redim resultMa(2)
    'msgbox ubound(resultMa)
    resultMa(0)=-2
    resultMa(1)=-2
    zbDate=resultMa
    'sgbox zbdate(1)

    'if Formula.workmode=0 then   '如果是逐漸K模式,直接退出函數
     '  exit function
    'end if
        
    zbName="MACD"
    seriseName="MACD1"
    for i=0 to technic.GridCount-1  '循環獲得指標所在的grid
      Set Grid = Technic.GetGridByIndex(i)
      for j=0 to Grid.formulaCount-1
        set formula1=grid.getformulaByIndex(j)
          if formula1.name=zbName then
             exit for  
          end if
      next
      if j<> Grid.formulaCount then exit for
    next
    if i=technic.GridCount then  '未找到對應的指標
       exit function
     end if

    set history=grid.gethistorydata()
    zb1=formula1.vardata(seriseName)
    dataCount=UBound(zb1)
    redim resultMa(dataCount)

    for i=formula1.dataSize-1 to 1 step -1
        if zb1(i)>0 and zb1(i-1)<=0 then
           a1=history.date(i)
           a2=year(a1)*10000000000+month(a1)*100000000+day(a1)*1000000+hour(a1)*10000+minute(a1)*100+second(a1)

     

    '這里為了返回柱線的日期時間,特把其轉換為數值(公式只能返回數值?),在VBA下用宏運行是沒有問題的,但在公式中自定義函數調用傳遞回來時在小時、分鐘、秒上出錯,比如2013年9月2日11點30分,傳遞回'來的結果是20130901786624。請問高手們幫忙解決,急急……


           msgbox a2
           resultMa(i)=a2
           EXIT FOR
        else
           resultMa(i)=-1
        end if
    next

    zbDate=resultMa
    End Function

     

  • 金字塔客服: 用cdbl試試

     

  • 用戶回復:

    金字塔公式的數值最大是幾位的?似乎數值超過10位之后,數值計算就會出錯,如果是,這就是一個很大的bug,希望改進

     

  • 網友回復:

    32位的操作系統.

    2的31次方,值為21 4748 3648

     

    您的日期值已經遠遠超過這個值了,所以出現了異常顯示

    分成兩個部分傳遞, 年月日  +   時分秒

     

     

     

     

  • 網友回復:

    謝謝,但改成這樣還是有錯

    Function zbDate(Formula,ZB,XH)
        '系統會在逐K線模式解釋公式時的每個周期都會調用此函數一遍,因此設計時應該注重程序的執行效率,不要重復的執行一些沒必要的代碼

    dim resultMa
    redim resultMa(2)
    'msgbox ubound(resultMa)
    resultMa(0)=-2
    resultMa(1)=-2
    zbDate=resultMa
    'sgbox zbdate(1)

    'if Formula.workmode=0 then   '如果是逐漸K模式,直接退出函數
     '  exit function
    'end if
        
    zbName="MACD"
    seriseName="MACD1"
    for i=0 to technic.GridCount-1  '循環獲得指標所在的grid
      Set Grid = Technic.GetGridByIndex(i)
      for j=0 to Grid.formulaCount-1
        set formula1=grid.getformulaByIndex(j)
          if formula1.name=zbName then
             exit for  
          end if
      next
      if j<> Grid.formulaCount then exit for
    next
    if i=technic.GridCount then  '未找到對應的指標
       exit function
     end if
    cycT=grid.cyctype
    'msgbox cycT
    set history=grid.gethistorydata()
    zb1=formula1.vardata(seriseName)
    dataCount=UBound(zb1)
    redim resultMa(dataCount)

    for i=formula1.dataSize-1 to 1 step -1
        if zb1(i)>0 and zb1(i-1)<=0 then
           a1=history.date(i)
           if cycT<=4 or (cycT>=10 and cycT<=14) or (cycT>=17 and cycT<=18) then '由于返回值超過10位后在公式調用中會出錯,所以這里在日頻度以下只返回時分秒,日頻度以上返回年月日
               a2=cdbl(hour(a1))*10000+cdbl(minute(a1))*100+cdbl(second(a1))
           else
               a2=cdbl(year(a1))*10000+cdbl(month(a1))*100+cdbl(day(a1))
           end if
           'msgbox a1
           resultMa(i)=a2
          ' EXIT FOR 

     

    在日線先本來應該返回20130903的,但在公式中顯示出來的是20130904?好多個日子都是這樣,請問是什么原因?你們可以拷貝代碼去測試,謝謝!


        else
           resultMa(i)=-1
        end if
    next

    zbDate=resultMa
    End Function

 

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

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


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

相關文章

    沒有相關內容
主站蜘蛛池模板: 最近中文字幕在线看免费视频 | 亚洲国产成人在线 | 免费高清小黄站在线观看 | 无遮挡男女激烈免费动态图 | 天堂中文在线资源 | 狠狠大日本亚洲香蕉亚洲 | 456极品嫩模在线视频 | 成 人 免费观看网站 | 国产自产自拍 | 一级一级特黄女人精品毛片视频 | 日韩欧一级毛片在线播无遮挡 | 韩日精品 | 午夜视频在线免费看 | 欧美日韩另类在线 | 在线欧美国产 | 真正全免费视频a毛片 | 黄色小视频在线播放 | 亚洲日韩视频免费观看 | 亚洲综合激情 | 成人网欧美亚洲影视图片 | 日韩片在线观看 | 老司机免费福利午夜入口ae58 | 天天干天天摸天天操 | 亚洲国产黄色 | 亚洲精彩视频在线观看 | 青青草国产精品欧美成人 | 成人福利视频 | 狠狠色狠狠色综合日日92 | 日本精a在线观看 | 一级一级毛片 | 欧美日韩一区二区在线视频播放 | 中文字幕在线视频免费观看 | 噜噜噜天天躁狠狠躁夜夜精品 | 国产精品国产三级国产无毒 | 成人在线免费播放 | 手机在线观看视频你懂的 | 一本大道在线视频 | 国产乡下三片在线观看64 | 99热成人精品免费久久 | 欧美精品手机在线 | 波多野结衣中文一区 |