python股票分析挖掘预测金融大数据获取方法和实现(1)

本人股市多年的老韭菜了,各种股票分析书籍,技术指标书籍阅历无数,萌发想法,何不自己开发个股票预测分析软件,选择python因为够强大,它提供了很多高效便捷的数据分析工具包,

我们已经初步的接触与学习其中数据分析中常见的3大利器---Numpy,PandasMatplotlib库。

数据是万物之源,我们做股票分析,首要条件是获取最新的,最全面的金融数据,我们才能进行下一步开发。

我们获取数据主要有二大渠道,爬虫爬取金融网站数据和金融网站主动提供API接口方式获得,这一章简单介绍一下金融数据接口的使用方法:

 金融数据接口

目前有不少支持Python接口的金融数据库,比如Tushare、AKshare、Baostock、wind等,都可以获得国内股票、基金、期货、利率等数据。总共加起来几十个差不多,各位开发者可以按照自己的情况选择(很多接口版本如果升级,很大可能接口代码有所改变,所以开发者随时要调整代码,才能获得数据

(1)AKshare接口

 AKShare 是基于 Python 的开源金融数据接口库,目的是实现对股票、期货、期权、基金、债券、外汇等金融产品和另类数据从数据采集,数据清洗到数据下载的工具,满足金融数据科学家、数据科学爱好者在数据获取方面的需求。
它的特点是利用 AKShare 获取的是基于可信任数据源发布的原始数据,开发人员可以利用原始数据进行再加工,从而得出科学的结论。

  优点:

  • 码语法符合PEP8 规范数据接口的命名;
  • 最佳支持Python 3.7.5 及其以上版本;
  • 提供最佳的文档支持每个数据接口提供详细明和示例只需要复制粘就可以下数据;
  • 续维护由于目页变化而致的部分数据接口运行异常问题;
  • 更新财经数据接口时优化源;

  缺点:

如果是免费版本,如果访问过多随时封闭接口,也存在接口版本升级,很多获取数据代码随着改变,增加开发人员工作量。

安装: pip install akshare

 

代码案例:


import akshare as ak
import pandas as pd

pd.set_option('expand_frame_repr', False)  # True就是可以换行显示。设置成False的时候不允许换行
pd.set_option('display.max_columns', None)  # 显示所有列
# pd.set_option('display.max_rows', None)  # 显示所有行
pd.set_option('colheader_justify', 'centre')  # 显示居中


def a_hist():
    # period
    #     str
    #     choice of {'daily', 'weekly', 'monthly'}
    # start_date
    #     str
    #     开始查询的日期
    # end_date
    #     str
    #     结束查询的日期
    # adjust
    #     str
    #     默认返回不复权的数据;
    #     qfq: 返回前复权后的数据;
    #     hfq: 返回后复权后的数据
    stock_zh_a_hist_df = ak.stock_zh_a_hist(symbol="002389", period="weekly", start_date="20231001",
                                            end_date='20231227',
                                            adjust="qfq")
    print(stock_zh_a_hist_df)

if __name__ == "__main__":
    a_hist()
    # a_hist_min()


#执行结果成功得到数据:
           日期     开盘     收盘     最高     最低     成交量           成交额    振幅   涨跌幅   涨跌额   换手率
0   2023-10-13  19.98  20.14  21.46  19.83  665132  1.367442e+09  8.28  2.34  0.46  6.73
1   2023-10-20  20.32  19.72  21.12  19.60  598403  1.219992e+09  7.55 -2.09 -0.42  6.05
2   2023-10-27  19.59  20.55  20.68  18.79  497698  9.752065e+08  9.58  4.21  0.83  5.04
3   2023-11-03  20.35  19.82  20.46  19.58  447499  8.934958e+08  4.28 -3.55 -0.73  4.53
4   2023-11-10  19.86  19.69  20.06  19.39  429908  8.483078e+08  3.38 -0.66 -0.13  4.35

(2)pandasdatareader接口 

接口特点 

 pandasdatareader是一个使用Python语言获取数据的库,主要通过pandas库对Yahoo Finance、Google Finance、World Bank等数据源进行操作。pandasdatareader支持多个金融数据源,可以使用一个API来获取多个数据源的数据信息,使得数据的获取更加方便

   安装:pip install pandas-datareader 

代码案例: 


#使用pip进行安装:pip install pandas-datareader
import pandas as pd
import pandas_datareader.data as web

start = pd.to_datetime('2020-05-01')
end = pd.to_datetime('2023-05-31')

data = web.DataReader('AAPL', 'yahoo', start, end)
print(data.head())

(3) efinance接口 

优点

 efinance 是由个人打造的用于获取股票、基金、期货数据的免费开源 Python 库,你可以使用它很方便地获取数据以便更好地服务于个人的交易系统需求。

缺点

免费版查看数据的频率和接口获得的数据受到限制,具体的规则由接口提供者制定。

安装:pip install efinance

代码案例

 下面这个例子完成了从网上获取数据保存到本地,然后通过Matplotlib来实现简单的k线图



import efinance as ef



import mplfinance as mpf

import seaborn as sns


df = ef.stock.get_quote_history('600118', beg='20230601', end='20231101')
df.head()

df.to_csv('date.csv', encoding='utf-8-sig', index=None)

df_arr = df.values

from datetime import datetime

df['日期'] = df['日期'].apply(lambda x: datetime.strptime(x, '%Y-%m-%d'))
import matplotlib.pyplot as plt

plt.plot(df['日期'], df['收盘'])
plt.show()

# (7) 绘制股票K线图、均线图、成交量柱状图
fig, axes = plt.subplots(2, 1, sharex=True, figsize=(15, 8))
ax1, ax2 = axes.flatten()
mpf.candlestick(ax1, df_arr, width=0.6, colorup='r', colordown='g', alpha=1.0)
ax1.plot(df_arr[:, 0], df['MA5'])
ax1.plot(df_arr[:, 0], df['MA10'])
ax1.set_title('万科A')
ax1.set_ylabel('价格')
ax1.grid(True)
ax1.xaxis_date()
ax2.bar(df_arr[:, 0], df_arr[:, 5])
ax2.set_xlabel('日期')
ax2.set_ylabel('成交量')
ax2.grid(True)
ax2.xaxis_date()

本地date.csv数据保存成功,呈现出来的k线图

 

其他接口

除此以外还有几十种金融数据接口,就不一一介绍,有兴趣的朋友可以研究,选择自己合适的开发
附国内外金融数据接口大全
•    findatapy - 获取彭博终端,Quandl和雅虎财经的数据
•    googlefinance - 从谷歌财经获取实时股票价格
•    yahoo-finance - 从雅虎财经下载股票报价,历史价格,产品信息和财务报表
•    pandas-finance - 提供高级接口下载和分析金融时间序列
•    pyhoofinance - 从雅虎财经批量获取股票数据
•    yfinanceapi - 从雅虎财经获取数据
•    yql-finance - 从雅虎财经获取数据
•    ystockquote - 从雅虎财经获取实时报价
•    wallstreet - 实时股票和期权报价
•    stock_extractor - 从网络上爬取股票信息
•    Stockex - 从雅虎财经获取数据
•    finsymbols - 获取全美证券交易所,纽约证券交易所和纳斯达克上市公司的详细数据
•    inquisitor - 从Econdb获取经济数据,Econdb是全球经济指标聚合器
•    chinesestockapi - 获取A股数据
•    exchange - 获取最新的汇率报价
•    ticks - 命令行程序,获取股票报价
•    pybbg - 彭博终端COM的Python接口
•    ccy - 获取外汇数据
•    tushare - 获取中国股票,基金,债券和期货市场的历史数据
•    jsm - 获取日本股票市场的历史数据
•    cn_stock_src - 从不同数据源获取中国的股票数据
•    coinmarketcap - 从coinmarketcap获取数字货币数据
•    after-hours - 获取美股盘前和盘后的市场价格
•    bronto-python - 整合Bronto API接口
•    pytdx - 获取中国国内股票的实时报价
•    pdblp - 整合Pandas和彭博终端的公共接口
•    tiingo - 从Tiingo平台获取股票日K线和实时报价/新闻流
•    IEX - 从IEX交易所获取股票的实时报价和历史数据
•    alpaca-trade-api - 从Alpaca平台获取股票实时报价和历史数据,并提供交易接口交易美股
•    metatrader5 - 集成Python和MQL5交易平台,适合外汇交易
•    akshare - 获取中国股票,基金,债券和宏观经济数据
•    yahooquery - 从雅虎财经获取数据
•    investpy - 从英为财经(http://Investing.com)获取数据
•    yliveticker - 从雅虎财经通过Websocket获取实时报价

注释:上述接口获取数据代码我已经整理完成,有兴趣的朋友可以下载研究。

 

  • 45
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Python金融大数据领域的应用】完整课程列表 完整图文版Python高级教程 Python金融大数据领域的应用 01 第一讲 Python金融应用概述(共27页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 02 第二讲 基本数据类型与结构(共24页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 03 第三讲 Python数据可视化(共12页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 04 第四讲 金融时间序列数据处理与分析(共21页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 05 第五讲 Python中的输入输出操作(共21页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 06 第六讲 Python效率分析与提升(共18页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 07 第七讲 Python金融应用数学方法(共15页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 08 第八讲 金融中随机模拟及Python实现(共27页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 09 第九讲 金融中的统计学及Python实现(共27页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 10 第十讲 金融中数值方法Python实现(共54页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 11 第十一讲 Python与Excel的集成(共18页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 12 第十二讲 Python面向对象与图形界面编程(共15页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 13 第十三讲 金融中的大数据应用与Python实现(共24页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 14 第十四讲 案例1:金融衍生品分析库的Python开发与应用(共58页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 15 第十五讲 案例2:量化投资系统与Python实现(共66页).pptx
Python金融大数据领域的应用】完整课程列表 完整图文版Python高级教程 Python金融大数据领域的应用 01 第一讲 Python金融应用概述(共27页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 02 第二讲 基本数据类型与结构(共24页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 03 第三讲 Python数据可视化(共12页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 04 第四讲 金融时间序列数据处理与分析(共21页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 05 第五讲 Python中的输入输出操作(共21页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 06 第六讲 Python效率分析与提升(共18页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 07 第七讲 Python金融应用数学方法(共15页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 08 第八讲 金融中随机模拟及Python实现(共27页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 09 第九讲 金融中的统计学及Python实现(共27页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 10 第十讲 金融中数值方法Python实现(共54页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 11 第十一讲 Python与Excel的集成(共18页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 12 第十二讲 Python面向对象与图形界面编程(共15页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 13 第十三讲 金融中的大数据应用与Python实现(共24页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 14 第十四讲 案例1:金融衍生品分析库的Python开发与应用(共58页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 15 第十五讲 案例2:量化投资系统与Python实现(共66页).pptx
Python金融大数据领域的应用】完整课程列表 完整图文版Python高级教程 Python金融大数据领域的应用 01 第一讲 Python金融应用概述(共27页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 02 第二讲 基本数据类型与结构(共24页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 03 第三讲 Python数据可视化(共12页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 04 第四讲 金融时间序列数据处理与分析(共21页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 05 第五讲 Python中的输入输出操作(共21页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 06 第六讲 Python效率分析与提升(共18页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 07 第七讲 Python金融应用数学方法(共15页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 08 第八讲 金融中随机模拟及Python实现(共27页).ppt 完整图文版Python高级教程 Python金融大数据领域的应用 09 第九讲 金融中的统计学及Python实现(共27页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 10 第十讲 金融中数值方法Python实现(共54页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 11 第十一讲 Python与Excel的集成(共18页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 12 第十二讲 Python面向对象与图形界面编程(共15页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 13 第十三讲 金融中的大数据应用与Python实现(共24页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 14 第十四讲 案例1:金融衍生品分析库的Python开发与应用(共58页).pptx 完整图文版Python高级教程 Python金融大数据领域的应用 15 第十五讲 案例2:量化投资系统与Python实现(共66页).pptx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Adam_new

谢谢您的鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值