You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将fitKCA函数应用到yfinance获取的numpy行情数组

解决fitKCA函数调用问题的完整步骤

1 前置依赖安装

首先确保你安装了所有需要的库,除yfinance外还需要pykalman、numpy和pandas:

!pip install yfinance pykalman numpy pandas

导入所需依赖:

import numpy as np
import pandas as pd
import yfinance
from pykalman import KalmanFilter

之后将你获取到的fitKCA函数代码完整复制到代码文件中,完成函数定义。

2 数据获取与预处理

你之前仅初始化了Tickers对象,还需要拉取历史行情数据,同时要注意fitKCA对输入参数的格式要求,这也是大部分运行报错的原因:

  • 参数t不能是日期字符串/datetime类型,需要转成数值型时间索引,否则函数内计算时间间隔h会直接报错
  • 参数z需要是形状为(样本数, 1)的二维numpy数组,不能直接传入一维收盘价序列
  • 参数q不是随机种子,是初始状态协方差的缩放系数,金融时序场景下初始可设为0.001~1之间的数值,后续可根据拟合效果调整

数据处理代码示例:

# 拉取两个标的的日线数据,可自行调整时间周期
tickers = yfinance.Tickers('GCV22.CMX CLV22.NYM')
hist_data = tickers.history(period='2y')

# 以黄金期货GCV22.CMX为例处理输入参数
# 提取收盘价序列,删除空值
close_series = hist_data['Close']['GCV22.CMX'].dropna()
# 处理时间索引t:转成从0开始的数值步长,也可根据需求转成时间戳数值
t = np.arange(len(close_series))
# 处理观测值z:把一维收盘价转为符合要求的二维数组
z = close_series.values.reshape(-1, 1)
# 设置q的初始值
q = 0.01

3 调用fitKCA函数

将预处理好的参数直接传入函数即可,示例如下:

# 调用函数,此处设置向前预测3步,不需要预测的话fwd参数留空默认0即可
x_mean, x_std, x_covar = fitKCA(t, z, q, fwd=3)

# 结果说明
# x_mean形状为(样本数+预测步数, 3),三列分别对应价格平滑值、价格变化速度、价格变化加速度
# x_std对应三个维度的标准差
# x_covar为状态协方差矩阵
print("平滑后的价格序列:", x_mean[:, 0])
print("价格变化速度:", x_mean[:, 1])
print("价格变化加速度:", x_mean[:, 2])

4 常见报错排查

  • 维度不匹配报错:检查z是否已经reshape为二维数组
  • 时间计算报错:检查t是否为纯数值型数组,未混入日期、字符串类型
  • 拟合效果偏差大:调整q的数值,q越大模型对价格波动的敏感度越高

内容的提问来源于stack exchange,提问作者Gloria Dalla Costa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:09:04