美文网首页大数据
使用时间序列工具autots预测股票(附代码)

使用时间序列工具autots预测股票(附代码)

作者: 代码足迹 | 来源:发表于2022-11-13 00:23 被阅读0次

    0.引言

    今天学习了一个时间序列的工具autots,想了一下一是不是可以拿来预测股票呢,说干就干 。

    1.安装环境

    1.1 安装AutoTS

    pip install autots

    autots就是时间序列的工具。这里面
    是不是很简单?如果安装过程出现什么问题百度搜索解决一下。

    网上摘了一段介绍

    AutoTS 是一个自动化的时间序列预测库,可以使用简单的代码训练多个时间序列模型,此库的一些最佳功能包括:

    利用遗传规划优化方法寻找最优时间序列预测模型。
    提供置信区间预测值的下限和上限。
    它训练各种各样的模型,如统计的,机器学习以及深度学习模型
    它还可以执行最佳模型的自动集成
    它还可以通过学习最优NaN插补和异常值去除来处理混乱的数据
    它可以运行单变量和多变量时间序列

    详细介绍:
    https://pypi.org/project/AutoTS/

    1.2 安装 tushare

    pip install tushare

    股票的历史数据来源,获取数据很简单。

    tushare库是一个用于抓取中国股票的历史和实时报价数据的工具。特点如下:

    易于使用,因为返回的大部分数据都是pandas的DataFrame对象
    可以轻松保存为csv, excel或json文件
    可以插入到MySQL或Mongodb

    tushare 上面获取数据需要注册。120积分以上就可以调用。不同接口需要的积分不同。如果还没有注册的小伙伴可以点下面我的链接注册(我也可以得到积分,感谢。不想注册的朋友,也可以联系我,用我的token免费测试使用)。

    https://tushare.pro/register?reg=541339

    2.代码实现

    2.1 获取历史数据

    这里以000009这个股票为例

    
    import tushare as ts
    import pandas as pd
    from datetime import datetime
    
    token = '你的token'
    #可以登录文章首的链接注册获取
    pro = ts.pro_api(token)
    
    
    df = ts.pro_bar(ts_code='000009.SZ', adj='qfq', start_date='20180101', end_date='20221031')
    
    # df.to_csv("002609.csv")
    # data = pd.read_csv ("002609.csv")
    
    # 日期格式转换
    df['date']= df['trade_date'].apply(lambda x: datetime.strptime(str(x),'%Y%m%d'))
    
    

    2.2 可视化历史数据

    将历史数据可视化出来看一下

    temp_df = df.set_index('date')
    temp_df["close"].plot(figsize=(12, 8), title="000009 Prices", fontsize=20, label="Close")
    
    plt.legend()
    plt.grid()
    plt.show()
    

    和股票软件看到的图形差不多

    image.png

    2.3 训练模型

    训练模型(拿历史数据训练)

    from autots import AutoTS
    import matplotlib.pyplot as plt
    import pandas as pd
    
    # 实例化一个模型(参数没有调整,本文主要是给大家有个简单认识)
    model = AutoTS(forecast_length=40, frequency='infer', ensemble='simple', drop_data_older_than_periods=100)
    # 模型拟合训练,这个过程会自动找到最佳模型、预处理和集成
    model = model.fit(df, date_col='date', value_col='close', id_col=None)
    

    这个需要一定的时间,耐心等一下。

    2.4 预测结果

    输出预测结果

    prediction = model.predict()
    forecast = prediction.forecast
    print("Stock Price Prediction of Apple")
    print(forecast)
    

    结果出来了,是不是很激动。用图展示一下。

    temp_df['close'].plot(figsize=(15,8), title= 'AAPL Stock Price', fontsize=18, label='Train')
    forecast['close'].plot(figsize=(15,8), title= 'AAPL Stock Price', fontsize=18, label='Test')
    plt.legend()
    plt.grid()
    plt.show()
    

    出来了


    image.png

    再看看实际的行情数据。

    dfNext = ts.pro_bar(ts_code='000009.SZ', adj='qfq', start_date='20221101', end_date='20221226')
    dfNext['date']= dfNext['trade_date'].apply(lambda x: datetime.strptime(str(x),'%Y%m%d'))
    
    dfTest = dfNext.loc[:,['date','close']]
    dfTest
    

    啊。怎么差这么远,55555555555

    好了,主要是给大家演示了一下,怎么使用autots和tushare,还有好多要调整的。如果你也有兴趣时间序列预测或量化交易,欢迎一起交流。

    相关文章

      网友评论

        本文标题:使用时间序列工具autots预测股票(附代码)

        本文链接:https://www.haomeiwen.com/subject/aynkxdtx.html