[AI Google] TimesFM:AI预测股市价格,能否助我财务自由?

简介: 探索谷歌TimesFM模型,看看它能否通过预测股票价格帮助我们实现财务自由。

今天我偶然发现了一个名为TimesFM的模型,它能够预测时间序列数据。于是我心中冒出了一个大胆的想法:如果这个模型可以预测股票价格,那么我是否能借此成为股神呢?

介绍

TimesFM(时间序列基础模型)是由谷歌研究院开发的一个预训练模型,专用于时间序列预测。它的强大功能和应用前景引起了我的浓厚兴趣。

安装

要开始使用TimesFM,你需要按照以下步骤安装环境:

conda env create --file=environment.yml
conda env create --file=environment_cpu.yml

conda activate tfm_env
pip install -e .

代码

以下是一个完整的代码示例,展示了如何使用TimesFM模型来预测股票价格:

import datetime
import yfinance as yf
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import time
from datetime import date
from timesfm import TimesFm
from huggingface_hub import login
import matplotlib.pyplot as plt

# 给定需要处理的股票代码,上海票以.ss结尾,深圳票以.sz结尾
start = date(2020, 1, 1)  # 使用date类创建日期对象
end = date(2024, 1, 1)  # 指定结束日期为2024年1月1日
codelist = ["000001.ss"]

# 增加错误重试机制的下载数据部分
for retry in range(3):  # 尝试下载最多3次
    try:
        data2 = yf.download(codelist, start=start, end=end)
        # 数据预处理
        data2 = data2['Adj Close'].dropna()  # 使用调整结算价格删除缺损值
        if not data2.empty:
            break  # 成功下载并处理数据,跳出循环
    except Exception as e:
        print(f"下载失败,第{retry+1}次尝试。错误:{e}")
        if retry < 2:  # 在最后一次尝试前等待
            time.sleep(5)  # 等待5秒后重试

if data2.empty:
    raise ValueError("数据为空,请更改时间区间再试一次或检查网络连接。")

context_len = 512  # 设置上下文长度
horizon_len = 256  # 设置预测期间的长度

if len(data2) < context_len:
    raise ValueError(f"数据长度小于上下文长度({context_len})")

context_data = data2[-context_len:]  # 使用最近512天的数据作为上下文

# 初始化和导入TimesFM模型
tfm = TimesFm(
    context_len=context_len,
    horizon_len=horizon_len,
    input_patch_len=32,
    output_patch_len=128,
    num_layers=20,
    model_dims=1280,
    backend='cpu',  # 修改这里,将'gpu'改为'cpu'
)

# 登录Hugging Face Hub,此处****需替换成自己的Hugging token
login("*****")

tfm.load_from_checkpoint(repo_id="google/timesfm-1.0-200m")

# 准备数据
forecast_input = [context_data.values]
frequency_input = [0]  #设置数据频率(0是高频率数据)

# 运行预测
point_forecast, experimental_quantile_forecast = tfm.forecast(
    forecast_input,
    freq=frequency_input,
)

# 设置图表尺寸为24*12英寸
plt.figure(figsize=(24, 12))

forecast_dates = pd.date_range(start=data2.index[-1] + pd.Timedelta(days=1), periods=horizon_len, freq='B')
forecast_series = pd.Series(point_forecast[0], index=forecast_dates)

# 添加部分:获取并绘制2024.1.1到当前时间的实际价格数据
current_date = datetime.datetime.now().date()
data_recent = yf.download(codelist, start=date(2024, 1, 1), end=current_date)

if not data_recent.empty:
    data_recent = data_recent['Adj Close'].dropna()
    plt.plot(data_recent.index, data_recent.values, label="Actual Prices (2024-Now)")

# 创建或更新图表(如果前面已有图表,这里是更新)
plt.plot(data2.index, data2.values, label="Actual Prices")
plt.plot(forecast_series.index, forecast_series.values, label="Forecasted Prices")
plt.xlabel("Date")
plt.ylabel("Price")
plt.title(f"Price Compare & Forecast for {codelist[0]}")
plt.legend()

# 保存图表到文件,确保尺寸更改已生效
plt.savefig(f'{codelist[0]}_compare.png', bbox_inches='tight') 

# 显式关闭当前图表
plt.close(fig='all')

例图

最后,我运行了上涨指数和沪深300指数的预测,并生成了一些效果图:

上证指数

沪深300指数

结论

尽管TimesFM模型在一定程度上展示了其预测能力,但最终的效果仍未达到预期。看来,想通过预测股票价格实现财务自由还需更加努力,或许我还是得继续好好工作。


相关文章
|
4月前
|
人工智能 编解码 安全
[AI Google] 基于我们对提供负责任的人工智能的承诺
今天,我们宣布了新的人工智能保障措施,以防止滥用,并推出了利用人工智能使学习更具吸引力和可访问性的新工具
[AI Google] 基于我们对提供负责任的人工智能的承诺
|
1月前
|
机器学习/深度学习 人工智能 运维
2023 Google I/O Connect Shanghai 参会总结:云,AI 与 Web
2023 Google I/O Connect Shanghai 参会总结:云,AI 与 Web
2023 Google I/O Connect Shanghai 参会总结:云,AI 与 Web
|
1月前
|
人工智能 自然语言处理 安全
Google Gemini 1.5 Pro在AI竞赛中遥遥领先,挑战GPT-4o
Google Gemini 1.5 Pro在AI竞赛中遥遥领先,挑战GPT-4o
Google Gemini 1.5 Pro在AI竞赛中遥遥领先,挑战GPT-4o
|
1月前
|
人工智能 JSON 自然语言处理
我的Google Vertex AI实践经验分享
忙碌的开发者分享了使用Google Vertex AI的实践经验。从复杂的初始设置到微调模型时的手动资源分配,作者经历了种种挑战,包括高昂的成本与不足的文档支持。尽管如此,Vertex AI在图像识别和自然语言处理方面展现出强大能力。作者希望反馈能帮助Google改进服务,使之更加用户友好。
51 2
|
1月前
|
机器学习/深度学习 数据采集 人工智能
揭秘AI的魔法:如何用机器学习预测股市走势
在金融领域,股市走势的预测一直是一个复杂而充满挑战的问题。随着人工智能技术的发展,机器学习已经成为解决这一问题的有力工具。本文将介绍如何使用机器学习技术来预测股市走势,包括数据准备、模型选择和结果分析等步骤。我们将通过具体实例和数据分析,展示机器学习在股市预测中的应用,并探讨其优势和局限性。最后,我们将提出一个开放性问题,引导读者进一步思考和探索。
|
2月前
|
人工智能 自然语言处理 数据挖掘
详解:Google AI Gemini中文版本(基于API 开发实现对话)
谷歌旗下的人工智能应用Gemini,自问世以来凭借其强大的计算能力和高效的处理性能,迅速成为全球用户的宠儿。作为一款由世界顶尖科技公司开发的产品,Gemini不仅在语言处理、图像识别、数据分析等领域表现出色,还在多种复杂任务中展现了其卓越的智能决策能力。然而,由于网络限制等问题,国内用户往往无法直接访问和使用Gemini的网站,这也导致了许多技术爱好者和专业人士未能亲身体验这一先进技术所带来的便利和强大功能。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
Google gemini官网入口是什么_谷歌 AI gemini国内怎么使用
随着人工智能(AI)技术的迅猛发展,各大科技公司不断推出更为先进的AI模型,推动技术的边界。Google开发的Gemini便是其中的佼佼者。作为一款大型语言模型(LLM),Gemini旨在处理多种自然语言处理(NLP)任务,如文本生成、翻译、摘要和对话生成。Gemini结合了最新的研究成果和技术,显著提高了自然语言处理的准确性和效率。
|
3月前
|
人工智能
[AI Google] 三种新方法利用 Gemini 提高 Google Workspace 的生产力
Workspace 侧边栏中的 Gemini 现在将使用 Gemini 1.5 Pro,新的 Gemini for Workspace 功能即将登陆 Gmail 移动应用,等等。
[AI Google] 三种新方法利用 Gemini 提高 Google Workspace 的生产力
|
4月前
|
人工智能 API Android开发
[AI Google] I/O 2024大会上我们宣布的100件事情
I/O 2024 发生了很多事情!无论你对最新的 Gemini 应用更新感兴趣,对开发者即将推出的内容感到特别兴奋,还是迫不及待想尝试最新的生成式 AI 工具,这里几乎为每个人都提供了一些内容。不信?以下是我们在过去两天宣布的 100 件事情。
[AI Google] I/O 2024大会上我们宣布的100件事情
|
3月前
|
人工智能 自然语言处理 机器人
[AI Google] 新的生成媒体模型和工具,专为创作者设计和构建
探索谷歌最新的生成媒体模型:用于高分辨率视频生成的 Veo 和用于卓越文本生成图像能力的 Imagen 3。还可以了解使用 Music AI Sandbox 创作的新演示录音。
[AI Google] 新的生成媒体模型和工具,专为创作者设计和构建