欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → VBA写个求本周起的平均值函数出了问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2967人关注过本帖树形打印复制链接

主题:VBA写个求本周起的平均值函数出了问题

帅哥哟,离线,有人找我吗?
jianshi2020
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:391 积分:0 威望:0 精华:0 注册:2013/7/26 15:58:25
VBA写个求本周起的平均值函数出了问题  发帖心情 Post By:2013/8/9 16:25:17 [只看该作者]

Function avgtoone(Formula)
    avgtoone=0
    dim close
    dim open
    dim high
    dim low
    Set Grid = Technic.GetGridByName("Main")
     Set ReportData = Grid.GetReportData()
    open=ReportData.open
    high=ReportData.high
    low=ReportData.low
    close=ReportData.newPrice
    avg=(open+high+low+close)/4
    avgtoone=avg
End Function

 

请问我代码有什么问题吗?

为什么最后返回值不管在哪个周期都是2273.5 啊。。请教这是怎么一回事?

 


 回到顶部
帅哥哟,离线,有人找我吗?
jianshi2020
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:391 积分:0 威望:0 精华:0 注册:2013/7/26 15:58:25
  发帖心情 Post By:2013/8/9 16:30:03 [只看该作者]

pd:AVGTOONE();

公式引用的这个


 回到顶部
帅哥哟,离线,有人找我吗?
rushtaotao
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 czt
等级:蜘蛛侠 帖子:1445 积分:6114 威望:0 精华:3 注册:2012/1/16 10:31:19
  发帖心情 Post By:2013/8/9 16:54:16 [只看该作者]

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

 

这个是用收盘价 加上周期计算的 你把开高低收 加上 然后算值


 回到顶部
帅哥哟,离线,有人找我吗?
jianshi2020
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:391 积分:0 威望:0 精华:0 注册:2013/7/26 15:58:25
  发帖心情 Post By:2013/8/9 16:58:54 [只看该作者]

  '定义一个计算返回的数组
    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

 

这个我没看懂,为什么要返回计算完毕的均线数组呢?


 回到顶部
帅哥哟,离线,有人找我吗?
rushtaotao
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 czt
等级:蜘蛛侠 帖子:1445 积分:6114 威望:0 精华:3 注册:2012/1/16 10:31:19
  发帖心情 Post By:2013/8/9 17:07:09 [只看该作者]

定义数组 多少行 就放多少周期数据 然后累加算出均值 返回到函数

 回到顶部
帅哥哟,离线,有人找我吗?
jianshi2020
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:391 积分:0 威望:0 精华:0 注册:2013/7/26 15:58:25
  发帖心情 Post By:2013/8/10 10:38:28 [只看该作者]

我是逐K线模式的,只计算出当前K线的高开低收,需要写那个数组吗?


 回到顶部