您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

自定义函数如何在逐K模式下返回公式中可以使用的数组,这回有代码,请管理员帮我看看 [金字塔]

  • 咨询内容: Function vba_HHV2(Formula, Number, ReturnValue)    '系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码    Dim History                                          '日线数据对象    Dim Max_l                                            '最低价中的最高价    Dim Min_l                                            '最低价中最低价    Dim Max_l_Number                                     '最低价中的最高价_所在的位置    Dim Min_l_Number                                     '最低价中最低价_所在的位置    Dim Max_l_Day                                        '最低价中的最高价_距离当前的天数    Dim Min_l_Day                                        '最低价中最低价距_离当前的天数    Dim Temp_hl                                          '中间变量    Dim Temp_sum                                         '中间变量    Dim ll    Dim L_Arr    Dim k_tmp    vba_HHV2 = 0    If Number <= 10 Then Exit Function'-==========================================='-============初始化变量==================    Max_l = 0    Min_l = 0    Max_l_Number = 0    Min_l_Number = 0    Max_l_Day = 0    Min_l_Day = 0'-===================================    Set History = Formula.ParentGrid.GetHistoryData()    '获取日线数据对象'-===========================    '取最后一天的收盘价    ' Close = History.Close(History.Count-1)'-=========================================    ReDim L_Arr(1)    ll = History.Low(Number)  '-=======下面涉及往前找最高价==================    If Number < 10 Then Exit Function    Max_l = History.Low(Number - 1)    Min_l = History.Low(Number - 1)    For i = Number - 1 To 0 Step -1        Temp_hl = History.Low(i)        p_Temp_hl = Temp_hl * 1.01        Temp_sum = Temp_sum + 1        If p_Temp_hl >= Max_l Then            If Temp_hl >= Max_l Then                Max_l = Temp_hl                Max_l_Day = Temp_sum                k_tmp = 0            Else                k_tmp = k_tmp + 1            End If        Else            k_tmp = k_tmp + 1        End If        If k_tmp > 3 Then Exit For    Next    L_Arr(0) = Max_l    L_Arr(1) = Max_l_Day    vba_HHV2 = L_Arr '返回数组    ReturnValue = 8End Function'-====================公式代码========================VARIABLE: PARR[2]=0;po:=0;PARR:=vba_HHV2(Number-1,po);L_out3:PARR[1];L_out4:PARR[2];uy:po;'-==========上面在公式中的输出均为零!!!!=================请求管理员看看问题在哪????????? [此贴子已经被作者于2014/8/30 18:48:14编辑过]

     

  • 金字塔客服: 逐k线模式是不能返回数组的

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容