使用线性回归进行交易 | AI生成和翻译

Home 2025.04

很好的问题!你这里结合了两个任务:

  1. 使用 TigerOpen API 获取历史股票数据(如腾讯)
  2. 将该数据与你现有的基于 numpy 的线性回归代码结合使用

现有代码能直接使用吗?

不能直接使用。 你当前的机器学习代码期望 x_trainy_train 是代表特征和标签(例如人口 vs 利润)的数值型 numpy 数组。但 TigerOpen API 返回的是历史股票 K 线数据,这是一个包含每个时间戳多个字段的时间序列。

你需要:


如何调整股票数据以适配你的线性回归模型?

步骤 1:获取腾讯(代码 '00700')的历史数据

bars_dict = quote_client.get_bars(
    symbols=['00700'],
    period=BarPeriod.DAY,
    begin_time='2024-01-01',
    end_time=datetime.now().strftime('%Y-%m-%d'),
    limit=100,
    right=QuoteRight.BR
)

bars = bars_dict.get('00700', [])

步骤 2:提取特征和标签

一个简单的方法是:

import numpy as np

x_train = np.array([i for i in range(len(bars))])
y_train = np.array([bar.close for bar in bars])

或者,你可以使用前一天的收盘价作为特征来预测第二天的收盘价,或者使用更复杂的特征。

步骤 3:使用你的线性回归代码

现在你的 x_trainy_train 是数值型的 numpy 数组,在你修复了 compute_costcompute_gradient 函数(它们目前返回零或零梯度)之后,你的代码应该可以正常工作。


示例:实现 compute_cost 和 compute_gradient

def compute_cost(x, y, w, b):
    m = x.shape[0]
    total_cost = 0.5 * np.sum((w * x + b - y) ** 2) / m
    return total_cost

def compute_gradient(x, y, w, b):
    m = x.shape[0]
    error = w * x + b - y
    dj_dw = np.sum(error * x) / m
    dj_db = np.sum(error) / m
    return dj_dw, dj_db

总结


附加:绘制股票价格图

你的散点图将显示每日收盘价,回归线将拟合其趋势。


如果你需要,我可以帮你编写一个完整的示例,将 TigerOpen 数据获取与你的 numpy 线性回归代码集成起来!尽管提出。


Back Donate