rolling_volatility
描述
计算价格序列的滚动波动率。
对于位置i,从数据范围[i-lookback+1, i]中每隔interval个点取样, 然后计算相邻样本之间的对数收益率(后面的价格除以前面的价格的对数), 最后计算这些收益率的标准差作为波动率。
函数签名
rolling_volatility(prices, lookback, interval, min_periods) -> None
参数
prices
(array_like)
价格序列
lookback
(usize)
表示回溯的数据范围长度,对于位置i,考虑[i-lookback+1, i]范围内的数据
interval
(usize)
取样间隔,每隔interval个点取一个样本
min_periods
(usize, 可选)
计算波动率所需的最小样本数,默认为2
返回值
array_like 与输入序列等长的波动率序列
Python调用示例: ```python import numpy as np from rust_pyfunc import rolling_volatility
创建价格序列
prices = np.array([a1, a2, a3, a4, a5, a6, a7, a8, a9], dtype=np.float64)
计算滚动波动率,lookback=5, interval=1
结果应该是[nan, nan, nan, nan, std(log(a3/a1), log(a5/a3)), ...]
vol = rolling_volatility(prices, 5, 1)
计算滚动波动率,lookback=7, interval=2
结果应该是[nan, nan, nan, nan, nan, nan, std(log(a4/a1), log(a7/a4)), ...]
vol = rolling_volatility(prices, 7, 2) ```
示例
输入:
rolling_volatility(
np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]),
3,
1
)
输出:
array([nan, nan, 0.1438, 0.0589, 0.0323, 0.0204, 0.0141, 0.0103, 0.0079, 0.0062], dtype=float64)
Python使用示例
import numpy as np
from rust_pyfunc import rolling_volatility
# 使用示例
result = rolling_volatility(np.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]), 3, 1)
print(f"结果: {result}")