excel - 两 (2) 个范围内差异的绝对值 - 第 II 部分
问题描述
希望这比昨天更容易阅读。试图找到一种方法来改变测量“波动率”的周期数“N”昨天建议的完整函数的代码如下,并将“N”固定为 10。函数对 KAMA 工作得很好,默认值为“ N”(在此 KAMA 函数的默认版本中不需要 N0Addr 和 N1Addr,但它们是获取变量“N”的步骤)
此公式适用于 Excel:
=SUMPRODUCT((ABS(I26:I36-I25:I35)))
我还可以获得两个范围内差异的正确总和,但不能获得绝对值。此 VBA 代码使用命名范围“N0Addr”和“N1Addr”执行此操作:
Rng0 = WorksheetFunction.Sum(Range(N0Addr)) - WorksheetFunction.Sum(Range(N1Addr))
Function nTEST(Price, nPer, mPer, N)
'Variables
Fast = 2 / (nPer + 1)
Slow = 2 / (mPer + 1)
'One(1) Prior Period Calculation
nTEST1 = Application.Caller.Offset(-1)
N0Addr = Application.WorksheetFunction.Concat(Price.Offset(-N, 0).Address & ":" & Price.Address)
N1Addr = Application.WorksheetFunction.Concat(Price.Offset(-(N + 1), 0).Address & ":" & (Price.Offset(-1, 0).Address))
'Change Formula (Y - Yn)
E = Abs(Price - Price.Offset(-N, 0))
'Volatility Formula { =SUM(ABS(Y:Yn)-(Y1:Yn1))) }
'VOLATILITY (N = 10)
'1-10
R = Abs(Price - Price.Offset(-1, 0)) + Abs(Price.Offset(-1, 0) - Price.Offset(-2, 0)) _
+ Abs(Price.Offset(-2, 0) - Price.Offset(-3, 0)) _
+ Abs(Price.Offset(-3, 0) - Price.Offset(-4, 0)) + Abs(Price.Offset(-4, 0) - Price.Offset(-5, 0)) _
+ Abs(Price.Offset(-5, 0) - Price.Offset(-6, 0)) + Abs(Price.Offset(-6, 0) - Price.Offset(-7, 0)) _
+ Abs(Price.Offset(-7, 0) - Price.Offset(-8, 0)) + Abs(Price.Offset(-8, 0) - Price.Offset(-9, 0)) _
+ Abs(Price.Offset(-9, 0) - Price.Offset(-10, 0))
'EFFICIENCY RATIO
ER = E / R
Smooth = (ER * (Fast - Slow) + Slow) ^ 2
'Formula Calculation
nKAMA = Smooth * Price + (1 - Smooth) * nKAMA1
End Function
寻找一个 VBA 公式或方法来输入可以在 N 个周期内变化的“波动性”的工作公式。我可以得到差异的总和,但不能得到绝对差异的总和。
Rng0 = WorksheetFunction.Sum(Range(N0Addr)) - WorksheetFunction.Sum(Range(N1Addr))
我也可以在 Excel 中输入一个公式来完成提供绝对差的总和。
=SUMPRODUCT((ABS(I26:I36-I25:I35)))
解决方案
推荐阅读
- react-native - 如何在本机反应中检查单选按钮?
- python - 在接收空列表的lxml中使用xpath从搜索页面中提取链接但在元素页面上显示有12个具有相同xpath的链接
- windows - Odoo13 Windows 加载资源失败:服务器响应状态为 404
- python - 检查条件以连接数据框中的值(Python)
- bash - 当类似的文件名退出时,有没有办法检查目录是否存在?
- http - 阻止 web.xml 中的一些 HTTP 方法
- python - 如何在pydantic中动态生成属性?
- conv-neural-network - heatmap) ValueError: Input 0 of layer sequence is in compatible with the layer
- html - 如何使用 IntersectionOver API
- server - SNMP 重置后数据会被删除吗?