同花顺python_赠书 | Python 预测股票价格,竟然这么简单

b89608acf9aabb90c2914875cc0d48db.png

作为一种技术手段,预测在金融、证券领域的应用非常广泛,尤其是对股票价格的预测。我们介绍一下获得股票数据的方法,并基于此对数据进行预处理,接着使用数据分析方法,建立基础特征,进一步构建预测模型,且基于新数据验证模型效果。拟使用VAR及LSTM两种算法建立预测模型。

获取股票数据

股票数据通常可从新浪股票、雅虎股票等网页上获取,此外还有一些炒股软件,如同花顺、通达信等都提供了非常清楚的股票数据展示和图表呈现。如果要获得实时的股票数据,可以考虑使用新浪股票提供的接口获取数据。以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据接口(具体可以百度),该接口会返回一串文本,例如:

1 var hq_str_sh601006="大秦铁路,6.980,6.960,7.010,7.070,6.950,7.010,7.020,121033256,847861533.000,18900, 7.010,214867,7.000,66500,6.990,386166,6.980,336728,6.970,273750,7.020,836066,7.030,630800,7.040,936306,7.050,579400,7.060,2016-03-18,15:00:00,00";

这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。

0:,股票名字1:<< span="">6.980>,今日开盘价2:<< span="">6.960>,昨日收盘价3:<< span="">7.010>,当前价格4:<< span="">7.070>,今日最高价5:<< span="">6.950>,今日最低价6:<< span="">7.010>,竞买价,即“买一”报价7:<< span="">7.020>,竞卖价,即“卖一”报价8:<< span="">121033256>,成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百9:<< span="">847861533.000>,成交金额,单位为“元”,为了一目了然,通常以“万元”为成交金额的单位,所以通常把该值除以一万10:<< span="">18900>,“买一”申请4695股,即47手11:<< span="">7.010>,“买一”报价12:<< span="">214867>,“买二”13:<< span="">7.000>,“买二”14:<< span="">66500>,“买三”15:<< span="">6.990>,“买三”16:<< span="">386166>,“买四”17:<< span="">6.980>,“买四”18:<< span="">336728>,“买五”19:<< span="">6.970>,“买五”20:<< span="">273750>,“卖一”申报3100股,即31手21:<< span="">7.020>,“卖一”报价(22,23),(24,25),(26,27),(28,29)分别为“卖二”至“卖四的情况”30:<< span="">2016-03-18>,日期31:<< span="">15:00:00>,时间

这个接口对于JavaScript程序非常方便,如果要查看该股票的日K线图,可访问新浪股票的K线图接口(具体可百度),便可得到日K线图。

92dd3f7cc76ad872fad873a6c4a3421f.png

日K线图

如果要查看该股票的分时线,可访问链接新浪股票的分时线图接口(具体可百度),便可得到分时线图。

d2330700c0212f800bf56d5a960eb220.png 5160d2b9a46e248be4004c7d721dbef2.png

分时线图

对于周K线和月K线的查询,可分别访问新浪股票的周K线图和月K线图的接口(具体可百度)。Python中我们可以使用pandas_datareader库来获取股票数据,默认是访问yahoofinance的数据,其中包括上证和深证的股票数据,还有港股数据,该库只能获取股票的历史交易记录信息:如最高价、最低价、开盘价、收盘价以及成交量,无法获取个股的分笔交易明细历史记录。上证代码是ss,深证代码是sz,港股代码是hk,比如茅台:6000519.ss,万科000002.sz,长江实业0001.hk。这里以贵州茅台股票为例,说明pandas_datareader库中股票数据的获取方法及简单的可视化,代码如下:

1import pandas as pd

2import pandas_datareader.data as web

3import datetime as dt

4data = web.DataReader('600519.ss','yahoo', dt.datetime(2019,8,1),dt.datetime(2019,8,31))

5data.head

6 High Low Open Close Volume Adj Close

7# Date

8# 2019-08-01 977.000000 953.020020 976.51001 959.299988 3508952 959.299988

9# 2019-08-02 957.979980 943.000000 944.00000 954.450012 3971940 954.450012

10# 2019-08-05 954.000000 940.000000 945.00000 942.429993 3677431 942.429993

11# 2019-08-06 948.000000 923.799988 931.00000 946.299988 4399116 946.299988

12# 2019-08-07 955.530029 945.000000 949.50000 945.000000 2686998 945.000000

13

14kldata=data.values[:,[2,3,1,0]] # 分别对应开盘价、收盘价、最低价和最高价

15from pyecharts import options as opts

16from pyecharts.charts import Kline

17

18kobj = Kline.add_xaxis(data.index.strftime("%Y-%m-%d").tolist).add_yaxis("贵州茅台-日K线图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值