利用 LLM 和 Python 进行股价预测实战
引言
随着大语言模型(LLM)技术的快速发展,其在金融领域的应用逐渐受到关注。传统的量化交易多依赖统计模型或深度学习网络处理时间序列数据,而 LLM 凭借其强大的语义理解和推理能力,为结合市场新闻、宏观数据与历史价格进行综合预测提供了新的思路。本文将以中远海控(601919.SH)为例,演示如何使用 Python 获取股票数据,结合 LLM 进行短期股价趋势预测,并生成可视化报告。
注意:股市有风险,投资需谨慎。本文代码仅用于技术演示,不构成任何投资建议。LLM 在金融预测中存在幻觉风险,实际应用中需结合传统风控模型。
环境准备
在开始之前,请确保您的开发环境已安装以下依赖库:
pip install akshare pandas matplotlib seaborn numpy
此外,您需要一个可用的 LLM API 接口(如 OpenAI、Claude 或国内大模型服务),以便调用 llm_client 进行预测和分析。
1. 获取股票数据
我们使用 akshare 库获取 A 股日线行情数据。该库支持实时获取大量金融数据,无需注册即可使用。
1.1 数据获取逻辑
我们需要获取指定时间段内的收盘价数据。对于中远海控,股票代码为 601919.SH。
import akshare as ak
import datetime
# 获取当前日期
end_date = datetime.date.today().strftime("%Y%m%d")
start_date = "20240101"
# 获取日线数据
symbol = "601919.SH"
cosco_daily_data_2024 = ak.stock_zh_a_daily(symbol=symbol, start_date=start_date, end_date=end_date)
print(f"获取到 {len(cosco_daily_data_2024)} 条数据")
2. 数据预处理
机器学习模型对输入数据的格式有严格要求。原始数据通常包含缺失值或非连续的时间索引,需要进行清洗。
2.1 数据清洗函数
我们将数据转换为以日期为索引的 DataFrame,并按日频率重采样,填充缺失值。
import pandas as pd
def data_processor(data):
# 设置日期索引
df = data.set_index('date')
# 按日频率重采样
df = df.asfreq('D')
# 前向填充缺失值
df = df.fillna(method='ffill')
# 仅保留最近 30 天数据作为上下文
df.iloc[-:]


