我正在尝试使用 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 代码有问题,希望有人能帮助我,谢谢!