【量化分析】Demo版:获取stock市场往日数据并预测未来两周走势

加载工具库

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.pyplot as plt
from pathlib import Path
from gluonts.model import deepar
from gluonts.dataset import common
from gluonts.dataset.util import to_pandas
from gluonts.model.predictor import Predictor
import gluonts
import mxnet as mx
import baostock as bs
import pandas as pd

数据下载函数

def getData(code='sh.000001'):
    #### 登陆系统 ####
    lg = bs.login()
    # 显示登陆返回信息
    print('login respond error_code:'+lg.error_code)
    print('login respond  error_msg:'+lg.error_msg)

    #### 获取沪深A股历史K线数据 ####
    # 详细指标参数,参见“历史行情指标参数”章节;“分钟线”参数与“日线”参数不同。
    # 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag
    # 周月线指标:date,code,open,high,low,close,volume,amount,adjustflag,turn,pctChg
    rs = bs.query_history_k_data_plus("sh.000001",
        "date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",
        start_date='2000-01-01', end_date='2020-09-26',
        frequency="d", adjustflag="3")
    print('query_history_k_data_plus respond error_code:'+rs.error_code)
    print('query_history_k_data_plus respond  error_msg:'+rs.error_msg)

    #### 打印结果集 ####
    data_list = []
    while (rs.error_code == '0') & rs.next():
        # 获取一条记录,将记录合并在一起
        data_list.append(rs.get_row_data())
    result = pd.DataFrame(data_list, columns=rs.fields)

    #### 结果集输出到csv文件 ####   
#     result.to_csv("%s.csv"%(code), index=False)

    #### 登出系统 ####
    bs.logout()
    return result

主要代码

data = getData()
value = data['close'].values
value = value.astype(np.float32)
date = data['date'].values
date = date.astype(np.str)

data_dict={'timestamp':date,'value':value}
df = pd.DataFrame(data=data_dict)
df.to_csv("data.csv", index=False)
data = pd.read_csv("data.csv", header=0, index_col=0)
training_data = common.ListDataset([{"start": data.index[0],
    "target": data.value[:"2020-09-18"]}], freq="d")
testing_data = common.ListDataset([{"start": data.index[0],
    "target": data.value[:"2020-09-18"]}], freq="d")

trainer=gluonts.trainer._base.Trainer(batch_size=32, 
                                      clip_gradient=10.0, 
                                      ctx=mx.gpu(0), 
                                      epochs=10, 
                                      hybridize=True, 
                                      init="xavier", 
                                      learning_rate=0.001, 
                                      learning_rate_decay_factor=0.5, 
                                      minimum_learning_rate=5e-05, 
                                      num_batches_per_epoch=len(value)//32,
                                      patience=10, 
                                      weight_decay=1e-05)
estimator = deepar.DeepAREstimator(freq="d", prediction_length=14,trainer=trainer)
predictor = estimator.train(training_data=training_data)

for test_entry, forecast in zip(testing_data, predictor.predict(testing_data)):
    to_pandas(test_entry)[-15:].plot(linewidth=2)
    forecast.plot(color='g', prediction_intervals=[50.0, 90.0])
plt.grid(which='both')
plt.show()

结果展示

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
股神--人工智能股票预测系统是专门为股票投资者开发的一套全新的基于人工智能技术的股票趋势预测软件平台。该软件以基因演化算法(GP)为内核对股票交易历史数据进行自动建模和学习,挖掘出股票交易大数据中隐藏的行为规律,并以此为依据对下一个股票日的最高价和最低价的涨跌趋势进行预测分析。该软件能够帮助您了解何时进入股市,何时退出股市,并在最佳的时机买进或卖出股票,从而获取最大的利润和收益。 支持6种典型的股票类别:上证指数、上证A股、上证B股、深证指数、深证A股和深证B股。 精确的股票预测信息(如上涨、下跌或持平)和买卖推荐信息(如买入、卖出、持股以及买入价、卖出价等)。 基因演化算法参数支持用户自定义,默认设置为种群大小:30,杂交概率:0.8,变异概率:0.1,最大运行代数:1000。 支持批量操作,如股票批量评测、模型批量训练、股票批量预测、批量增加股票代码、批量添加/撤销我的股票池等。 对大多数股票而言,最高价与最低价的涨跌趋势预测准确度达60%-80%;对部分股票而言,预测准确度最高可达90%。 仅需简单的操作即可完成股票评测、智能选股、模型训练以及股票预测等功能。 系统主界面支持从云数据库和本地数据库自动更新最优股票预测信息。 支持流行的微软Windows操作系统,如Windows 98/Me/2000/XP/Vista/7。 股神--人工智能股票预测系统既适用于专业的股票投资者,也适用于股票初学者。您可以通过股神系统轻轻松松地完成股票评测、智能选股、模型训练以及股票预测等功能,所有操作简单易懂,软件界面友好大方。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆友航

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值