首页 > 解决方案 > 为 Excel VBA 创建 VHF 技术指标

问题描述

我正在尝试使用 Excel VBA 创建一个垂直水平过滤器 (VHF) 指标。

为简单起见,n 天 VHF 被计算为 n 周期最高点的最大值和 n 周期最低点的最小值之差与过去 n 周期第一个差值的绝对值之和的比率。收盘价:

在此处输入图像描述

Function VHF(highs As Range, lows As Range, n As Integer, price As Range, price0 As Range)

Dim count As Long
Dim maxhigh As Double
Dim minlow As Double
Dim closediff As Double
Dim day As Integer

maxhigh = Application.Max(highs)
minlow = Application.Min(lows)
day = WorksheetFunction.count(Range(price0, price))
    If day >= n Then
        For j = 2 To n - 1
            closediff = closediff + Abs(price0.Offset(j, 0) - price0.Offset(j - 1, 0))
        Next j
        VHF = (maxhigh - minlow) / closediff
    End If
End Function

我的 VBA 代码有问题,希望有人能帮助我,谢谢!

标签: excelvbatechnical-indicator

解决方案


推荐阅读