百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

量化交易通过交易接口获得金融数据途径

toyiye 2024-06-21 12:38 13 浏览 0 评论

#量化交易如何获得交易接口?#

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

如果懂技术的朋友可以用爬虫技术获取金融数据,这个主动权掌握在自己手中


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

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

金融数据接口

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

(1)AKshare接口

AKShare 是基于 Python 的开源金融数据接口库,目的是实现对股票、期货、期权、基金、债券、外汇等金融产品和另类数据从数据采集,数据清洗到数据下载的工具,满足金融数据科学家、数据科学爱好者在数据获取方面的需求。

它的特点是利用 AKShare 获取的是基于可信任数据源发布的原始数据,开发人员可以利用原始数据进行再加工,从而得出科学的结论。

优点:

代码语法符合PEP8 规范, 数据接口的命名统一;

最佳支持Python 3.7.5 及其以上版本;

提供最佳的文档支持, 每个数据接口提供详细的说明和示例, 只需要复制粘贴就可以下载数据;

持续维护由于目标网页变化而导致的部分数据接口运行异常问题;

持续更新财经数据接口, 同时优化源代码;

缺点:

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

接口获取代码:

 
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来获取多个数据源的数据信息,使得数据的获取更加方便

(3) efinance接口

优点

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

缺点

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

安装:pip install efinance

代码案例

 
 
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()


除此以外还有几十种金融数据接口,就不一一介绍,有兴趣的朋友可以研究,选择自己合适的开发

附国内外金融数据接口大全

? 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获取实时报价

注:最近我正在开发量化交易程序,有志同道合者可以相互交流学习!

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码