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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [分享]vba 加权平均数

   

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


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

主题:[分享]vba 加权平均数

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


加好友 发短信
等级:论坛游侠 帖子:134 积分:0 威望:0 精华:0 注册:2016/12/8 15:07:32
[分享]vba 加权平均数  发帖心情 Post By:2019/4/18 21:48:07 [显示全部帖子]

'计算加权平均数
Sub myWMA
 Dim StarTimer
  StarTimer = Timer    '脚本开始运行的时间
  '------------------------------------------------------------------------
 Dim histroyData,barsCount,i,n,length,sumPrice,sumLength
 '声明沪深300指数历史日线数据对象
 Set histroyData = marketdata.GetHistoryData("000300","SH",5)
 
 barsCount = histroyData.Count '沪深300指数的数据数量
 length = 200     '计算均值的周期数
       
 sumPrice = 0 '给变量赋初始值     
 n = 0   '给变量赋初始值
 For i = barsCount - length to barsCount - 1
  n = n + 1          '循环次数
  sumPrice = sumPrice + n * histroyData.Close(i) '价格加权求和
 Next
 
 sumLength = (Length + 1) * Length / 2    '加权系数求和 
 WMA = sumPrice / sumLength       '加权平均数
 '调试代码
 Application.ClearMsg   '清除消息窗口中的输出值
 Application.MsgOut(sumLength) '输出sumLength的值 
 Application.MsgOut(WMA)   '输出WMA的值
 '------------------------------------------------------------------------
 Set histroyData = Nothing '从内存中释放对象变量
 '-------------------------------------------------------------------------
 MsgBox "脚本运行的时间=" & Timer - StarTimer & "秒。"
End Sub

版主评定:好评,获得10个金币奖励好评,获得10个金币奖励
(理由:奖励)
 回到顶部
帅哥哟,离线,有人找我吗?
lizhi
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:134 积分:0 威望:0 精华:0 注册:2016/12/8 15:07:32
  发帖心情 Post By:2019/4/18 21:55:06 [显示全部帖子]

'==============计算加权平均数=======================
Sub myWMA
    Dim starTimer
    starTimer = Timer    '脚本开始运行的时间
    '------------------------------------------------------------------------
    Dim histroyData,barsCount,i,n,length,sumPrice,sumLength
    '声明沪深300指数历史日线数据对象
    Set histroyData = marketdata.GetHistoryData("000300","SH",5)
 
    barsCount = histroyData.Count     '沪深300指数的数据数量
    length = 200     '计算均值的周期数
       
    sumPrice = 0     '给变量赋初始值     
    n = 0                '给变量赋初始值
    For i = barsCount - length To barsCount - 1
        n = n + 1      '循环次数
        sumPrice = sumPrice + n * histroyData.Close(i) '价格加权求和
    Next
 
    sumLength = (Length + 1) * Length / 2    '加权系数求和 
    WMA = sumPrice / sumLength                  '加权平均数
    '调试代码---------------------------------------------------------------

    With Application
        .ClearMsg                     '清除消息窗口中的输出值
        .MsgOut(sumLength)     '输出sumLength的值 
        .MsgOut(WMA)              '输出WMA的值

    End With
    '------------------------------------------------------------------------
    Set histroyData = Nothing '从内存中释放对象变量
    '-------------------------------------------------------------------------
    MsgBox "脚本运行的时间=" & Timer - starTimer & "秒。"
End Sub


 回到顶部