rolling_qcv
描述
计算价格序列的滚动四分位变异系数(QCV)。
对于位置i,从数据范围[i-lookback+1, i]中每隔interval个点取样, 然后计算相邻样本之间的对数收益率(后面的价格除以前面的价格的对数), 最后计算这些收益率的四分位变异系数(四分位间距除以中位数的绝对值)。 这种方法对异常值和均值接近零的情况更加稳健。
函数签名
rolling_qcv(values, lookback, interval, min_periods) -> None
参数
values
(array_like)
数值序列
lookback
(usize)
表示回溯的数据范围长度,对于位置i,考虑[i-lookback+1, i]范围内的数据
interval
(usize)
取样间隔,每隔interval个点取一个样本
min_periods
(usize, 可选)
计算变异系数所需的最小样本数,默认为3(需要至少3个点才能计算有意义的IQR)
返回值
array_like 与输入序列等长的四分位变异系数序列
Python调用示例: ```python import numpy as np from rust_pyfunc import rolling_qcv
创建数值序列
values = np.array([a1, a2, a3, a4, a5, a6, a7, a8, a9], dtype=np.float64)
计算滚动四分位变异系数,lookback=5, interval=1
qcv = rolling_qcv(values, 5, 1) ```
示例
输入:
rolling_qcv(
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.5237, 0.3399, 0.2527, 0.2014, 0.1674, 0.1433, 0.1253, 0.1113], dtype=float64)
Python使用示例
import numpy as np
from rust_pyfunc import rolling_qcv
# 使用示例
result = rolling_qcv(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}")