rolling_cv

描述

计算价格序列的滚动变异系数(CV)。

对于位置i,从数据范围[i-lookback+1, i]中每隔interval个点取样, 然后计算相邻样本之间的对数收益率(后面的价格除以前面的价格的对数), 最后计算这些收益率的变异系数(标准差除以均值)。

函数签名

rolling_cv(values, lookback, interval, min_periods) -> None

参数

values (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_cv

创建数值序列

values = np.array([a1, a2, a3, a4, a5, a6, a7, a8, a9], dtype=np.float64)

计算滚动变异系数,lookback=5, interval=1

cv = rolling_cv(values, 5, 1)

计算滚动变异系数,lookback=7, interval=2

cv = rolling_cv(values, 7, 2) ```

示例

输入:

rolling_cv( 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.2619, 0.1699, 0.1263, 0.1007, 0.0837, 0.0717, 0.0627, 0.0557], dtype=float64)

Python使用示例

import numpy as np
from rust_pyfunc import rolling_cv

# 使用示例


result = rolling_cv(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}")