量化交易第一步就是获取数据,介绍两种免费的方法

1.通过pytdx获取本地通达信数据
2.通过requests爬虫爬取腾讯财经数据

通过python第三方库pytdx获取
这是个很强大的第三方库,原理是解析通达信的.dat底层数据。没错,我说的就是老少皆宜,平时看盘下单的通达信软件。现在只需要在python里面安装第三方库,就可以获取到原始交易数据了。
获取行情数据的代码是这样的,返回数据可以是list格式,也可以是dataframe格式。
from pytdx.hq import
TdxHq_APIapi = TdxHq_API()
# 数据获取接口一般返回list结构,如果需要转化为pandas Dataframe接口,可以使用 api.to_df 进行转化
with api.connect('119.147.212.81', 7709):
# 返回普通list
data = api.get_security_bars(9, 0, '000001', 0, 10) print(data)
# 返回DataFrame
data = api.to_df(api.get_security_bars(9, 0, '000001', 0, 800)) print(data)
返回数据如下:

除了行情数据,还可以获得财务数据
from pytdx.crawler.history_financial_crawler import HistoryFinancialListCrawler
crawler = HistoryFinancialListCrawler()
list_data = crawler.fetch_and_parse()
print(pd.DataFrame(data=list_data))
运行上面的程序可以得到下面的结果,这些zip文件就是当季所有股票的财务数据。我们可以看到最新的财务数据已经更新到2019年6月30日。

下面我们来查看一下最近一个财务周期的数据是怎样的。
from pytdx.reader import HistoryFinancialReader
import pandas as pd
pd.set_option('display.max_columns', None)
print(HistoryFinancialReader().get_df('C://zd_axzq//vipdoc//cw//gpcw20190630.zip'))
注意这里获取数据的地址是需要你自己电脑上通达信的安装目录,如果找不到这个目录呢,可以在浏览器里面搜索gpcw20190630.zip这个文件就能找到了

运行上面的代码后可以得到如下的数据,左边的code就是股票代码,右边col001-col300是财务数据,具体每个编号对应哪个财务数据,请查看这里https://github.com/QUANTAXIS/QUANTAXIS/blob/master/QUANTAXIS/QAData/financial_mean.py

从腾讯网站获取历史数据

获取数据的网址是这个:http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?_var=kline_dayqfq&param=sz000001,day,,,50,qfq&r=0.5643184591626897
其中需要输入几个参数,股票代码,数据的周期(年,月,周,日)
from urllib.request import urlopen
import json
from random import randint
import pandas as pd
pd.set_option('expand_frame_repr', False)
pd.set_option('display.max_rows', 5000)
# =====创建随机数的函数
def _random(n=16):
"""
创建一个n位的随机整数
:param n:
:return:
"""
start = 10**(n-1)
end = (10**n)-1
return str(randint(start, end))
stock_code = 'sz000001'
type = 'day' # day, week, month分别对用日线、周线、月线
num = 640 # 股票最多不能超过640,指数、etf等没有限制
# 构建url
url = 'http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?_var=kline_%sqfq&param=%s,%s,,,%s,qfq&r=0.%s'
url = url % (k_type, stock_code, k_type, num, _random())
content = urlopen(url).read().decode()
content = content.split('=', maxsplit=1)[-1]
content = json.loads(content)
data = content['data'][stock_code]
if type in data:
data = data[type]
elif 'qfq' + type in data: # qfq是前复权的缩写
data = data['qfq' + type]
else:
raise ValueError('已知的key在dict中均不存在,请检查数据')
df = pd.DataFrame(data)
print(df)
运行代码后获得的数据如下:

其中0: 'candle_end_time', 1: 'open', 2: 'close', 3: 'high', 4: 'low', 5: 'amount'
复权处理
上面两种方法得到的数据都是未经过复权处理的,那么我们怎样得到复权的数据呢?
我们可以通过计算复权因子来得到复权数据,具体方法如下代码。
import pandas as pd
pd.set_option('expand_frame_repr', False)
pd.set_option('display.max_rows', 5000)
# 导入数据
path = 'D:/sz000001.csv'
df = pd.read_csv(path, encoding='gbk', skiprows=1)
# 计算复权涨跌幅
df['涨跌幅'] = df['收盘价'] / df['前收盘价'] - 1
# 计算复权因子
df['复权因子'] = (1 + df['涨跌幅']).cumprod()
# 计算前复权价
df['收盘价_复权'] = df['复权因子'] * (df.iloc[-1]['收盘价'] / df.iloc[-1]['复权因子'])
# 计算后复权价
df['收盘价_复权'] = df['复权因子'] * (df.iloc[0]['收盘价'] / df.iloc[0]['复权因子'])
# 计算复权后的开盘价、最高价、最低价
df['开盘价_复权'] = df['开盘价'] / df['收盘价'] * df['收盘价_复权']
df['最高价_复权'] = df['最高价'] / df['收盘价'] * df['收盘价_复权']
df['最低价_复权'] = df['最低价'] / df['收盘价'] * df['收盘价_复权']

通达信交易接口api_股票量化交易-获取数据的两种方法相关推荐

  1. 通达信行情数据获取--python_股票量化交易-获取数据的两种方法

    量化交易第一步就是获取数据,介绍两种免费的方法 1.通过pytdx获取本地通达信数据 2.通过requests爬虫爬取腾讯财经数据 通过python第三方库pytdx获取 这是个很强大的第三方库,原理 ...

  2. 通达信批量接口如何做到量化股票精选?

    通达信批量接口如何做到量化股票精选呢?基于这个问题,其实就是利用量化软件的通达信批量接口进行量化分析,然后通过AkShare获取股票基数据,进行基本面数据分析,慢慢将量化股票精选出来.比如说一些财务数 ...

  3. 私募量化交易接口和个人量化交易接口有什么区别?

    大家都知道量化交易通常都是机构在用,但如今也越来越多个人投资者会选择量化交易,说到量化,肯定就逃不开量化接口,那私募量化交易接口和个人量化交易接口会不会有什么不同呢?今日我们来探讨一下. 平台不同,提 ...

  4. 用通达信破解接口指标公式判断股市牛熊的三个方法

    1.赚钱效应:牛市赚钱效应较高,市场热情和参与度较高:熊市赚钱效应低,市场热情和参与度较低. 2.成交量:牛市成交量较大,大部分股票成交量会急剧放大:熊市成交量较小,大部分股票成交量急剧萎缩. 3.股 ...

  5. 通达信lv2接口程序怎么创建BOLL通道数据?

    通达信lv2接口程序主要是面向的阅读对象以及接口文档主要包括哪些业务的接口,可以让读者有一个直观的认识.如:通达信lv2接口系统面向外部接入方的数据协议接口,主要包括:用户注册接口.同步用户.授权认证 ...

  6. Python结合通达信选股策略进行股票量化

    前言: 1.目前我的选股策略有超过5个以上,都把它们设置在通达信预警系统里,在界面上我会使用订制版面来同时观察预警结果,不过电脑里开了2个通达信软件之后,想进一步进行汇总策略效果进行打分,目前每个策略 ...

  7. python 手机自动化交易股票_通达信转python,机智股票自动交易手机版

    好转,学会以下操作就很容了. 得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.r ...

  8. 券商接口关闭的情况下怎么做到实时量化买入?通达信破解接口可以吗?

    现在券商接口关闭的情况下怎么做到实时量化买入?量化买入有一些第三方软件是可以破解券商接口的.像通达信破解接口它有一个什么机构版还是什么,他可以同时几个券商一起买入,当然这个你需要用手工输入.像其他的像 ...

  9. 什么是量化交易接口?跟量化平台是一个意思吗?

    什么是量化交易接口?量化交易接口跟量化平台并不能是一个意思,但是他们的功能都是雷同的,是帮助投资者,进行数量化分析决策思维的工具,这一类的软件功能.工具集.插件等等,都应算做量化投资相关素材. 市面上 ...

最新文章

  1. 洛谷P3688/uoj#291. [ZJOI2017]树状数组
  2. 等号赋值与memcpy的效率问题
  3. 获取下月第一天_获取当前月 下月 下下月 的第一天和最一天
  4. matplotlib xticks 基于 旋转_咬文嚼字——对matplotlib的文字绘图总结
  5. [luoguP2331] [SCOI2005]最大子矩阵(DP)
  6. 【POJ - 2631 】Roads in the North(树的直径)
  7. linux 启动一个网站_在线试用 200 多种 Linux 和 Unix 操作系统
  8. Python版冒泡法排序算法
  9. 关于日志打印的几点建议以及非最佳实践
  10. 武电实业卡密接口对接经验分享
  11. 华为服务器虚拟化概念,华为服务器虚拟化助力IT信息化建设
  12. Dalvik和Java运行环境的区别
  13. 如何在macOS Big Sur系统中隐藏菜单栏?
  14. 面向对象chapter2
  15. 深度学习笔记_损失函数softmax和SVM
  16. 委托应用及泛型委托和多播委托
  17. 高等工程数学(张韵华,汪琥庭,宋立功)—— 第一篇:线性代数
  18. 解析ISO17799方法
  19. a超链接锚点的设置和应用 三国演义
  20. java 调用存储过程无反应_java调用存储过程无法取得返回参数

热门文章

  1. 动态视场复杂背景下基于光流法的运动目标检测
  2. Android 图片选择器和图片裁剪库
  3. 天津二级计算机考试地点,2016年9月天津计算机一级二级三级四级考点地址电话...
  4. 巴菲特和西蒙斯谁的投资更赚钱?股神巴菲特的投资理念是否好用?
  5. Intellij IDEA简介
  6. 桁架工业机器人编程_工业机器人应用与编程
  7. 计算机专业逻辑推理题,逻辑推理试题
  8. 不懂SEO?一篇文章带你精通SEO优化
  9. php cakephp like,CakePHP
  10. 电脑报2013年第5期