通达信行情数据获取--python_股票量化交易-获取数据的两种方法
量化交易第一步就是获取数据,介绍两种免费的方法
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这个文件就能找到了
从腾讯网站获取历史数据
获取数据的网址是这个:http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?_var=kline_dayqfq¶m=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¶m=%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['收盘价_复权']
通达信行情数据获取--python_股票量化交易-获取数据的两种方法相关推荐
- 通达信交易接口api_股票量化交易-获取数据的两种方法
量化交易第一步就是获取数据,介绍两种免费的方法 1.通过pytdx获取本地通达信数据 2.通过requests爬虫爬取腾讯财经数据 通过python第三方库pytdx获取 这是个很强大的第三方库,原理 ...
- 通达信行情数据获取--python_[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上...
1 #coding=utf-8 2 3 #读取'[paint]'开头的csv文件 4 #copyright @ WangXinsheng 5 #http://www.cnblogs.com/wangx ...
- 通达信行情数据获取--python_利用 Python 获取余额宝历史收益数据
最近想做一个关于用一些指数基金与余额宝组成的简单 风险-无风险 投资组合的实验计算,发现通达信之类的行情软件并没有提供完整的余额宝收益信息,如通达信仅有年化收益率的数据,并没有万份收益的数据.因此考虑 ...
- 通达信行情数据获取--python
通达信行情数据获取方法,其中可以通过通达信每天下载导自身文件获取(通过c或者c++写一个接口就可以了),但是每天需要手动同步数据.下面介绍一个比较好网上接口.需要到"Tushare金融大数据 ...
- 通达信接口官网与量化交易有联系吗?
股票量化在目前看来已经很普遍了,因此市面上有很多交易软件不断被开发出来,就比如说通达信接口官网系统,那它与量化交易有什么联系吗? 通达信接口官网其实就是提供给投资者进行量化交易的渠道,也就是大家常见使 ...
- 通达信行情数据获取--python_Python读取通达信数据
Python读取通达信数据 一.介绍 python获取股票数据的方法很多,其中Tushare 财经数据接口包很好用,当然,也可以通过通达信本地的数据获取,这样更为方便. 日线数据存在这路径下D:\通达 ...
- Python结合通达信选股策略进行股票量化
前言: 1.目前我的选股策略有超过5个以上,都把它们设置在通达信预警系统里,在界面上我会使用订制版面来同时观察预警结果,不过电脑里开了2个通达信软件之后,想进一步进行汇总策略效果进行打分,目前每个策略 ...
- python 手机自动化交易股票_通达信转python,机智股票自动交易手机版
好转,学会以下操作就很容了. 得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.r ...
- 如何学习调用股票量化交易API接口的方法?
对于股票量化交易API接口学习调用的方法,主要是从数字看点平台有丰富的API接口,它让应用程序可以轻松地使用另一个应用程序的数据和资源,把通用的.共性的应用功能进行模块化处理,让开发变的简单又快捷,即 ...
最新文章
- mongodb 连接和备份
- Web服务集成CRM的应用
- idea每次新建项目都要重新配置maven
- 使用清华开源镜像安装tensorflow
- C语言操作符(又称运算符)(2)
- [转]一份ASP内存的释放的实验报告
- 算法竞赛入门经典 第七章 总结
- 从3000米高空,一跃而下…
- 32岁了学python来的及吗_为什么每个人都应该在2020年学习Python?
- python 的__str__和__repr__有什么区别?
- python爬虫SSL: CERTIFICATE_VERIFY_FAILED解决方案
- Android Studio 下载ndk
- 迈信EP100伺服驱动器方案
- 底层网工、0基础、记性差,学习CCIE/HCIE,到底是啥体验?
- Mybatis事务原理
- 计算机考研各科时间安排,计算机考研专业课复习全程的时间安排
- ps软件与计算机不兼容怎么办,ps版本不兼容怎么办,ps怎么解决版本兼容问题
- POJ 1581 A Contesting Decision
- 魔术表演的核心秘密(一)——开篇简介
- ISCC2021——web部分
热门文章
- leica[.m00]如何转成rinex[2.0x,3.0x]格式
- python转C++格式学习笔记
- 遵化有教php基础知识,2019年河北省唐山市遵化市中小学语文教师招聘/编制考试历年真题试卷及答案解析...
- 小米换字体显示服务器,字体君手把手教你小米手机换字体
- Mybatis报错:There is no getter for property named 'xxxx' in 'class xxxx之解决办法
- 美国的计算机什么水平,美国计算机专业大学排名怎么样?
- 基于移动最小二乘(MLS)的图像扭曲刚性变形python实现
- ps压缩证件照(自己动手,丰衣足食,主打一个免费)
- 时钟的时针、分针和秒针重合问题
- 超声波检测中的横波与纵波分别