股票量化交易-获取数据的N种方法

来源:萧遥量化

作者: sally

 

在上一篇的基础上再分享两个量化股票需要的数据资源。

通过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.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)-1return 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['收盘价_复权']

tushare获取数据

tushare上有丰富的交易数据,财务数据。安装也十分简单,pip install tushare就可以了。https://tushare.pro/

下面示例一下历史交易数据和财务数据的获取

pro = ts.pro_api()
df = ts.pro_bar(ts_code='300024.SZ', adj='qfq', start_date='20180101', end_date='20190920')
print(df)

这是获取股票300024从2018年1月1号到2019年9月20号的所有前复权数据的代码。运行后返回的数据如下。

下面是获取财务指标数据的代码

pro = ts.pro_api()
df = pro.fina_indicator(ts_code='300024.SZ')
print(df)

运行后返回dataframe格式数据,非常方便调取我们需要的列数据。比如我们要调取EPS数据,只需要这样写就可以了print (df['eps'])

掘金量化API

掘金量化是一个在线量化平台,目前推出了可以在本地使用的数据API接口,这个平台类似于聚宽,优矿,可以在线写策略并回测。亮点在于,这个平台支持本地IDE编辑策略,也就是说策略编写是存放在本地而不是在平台的云端,这样可以避免策略泄露。

这是掘金API说明书https://www.myquant.cn/docs/python/73?

具体加载数据和回测仔细看看说明就可以了解。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/3981.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MT4_应用于外汇交易的量化模型

MT4_应用于外汇交易的量化模型 你好!欢迎浏览本文章模型设计的数据来源历史数据的提取与处理历史数据的选取与提取历史数据的处理 寻找符合涨跌要求的历史数据段对已选取时间段的值进行技术分析对每个时间段的值及技术指标值进行绘图调用所有函数并运行 数据指标的分…

量化交易之数据获取篇

该篇主要是是用来展示量化交易的效果,不构成任何投资建议,仅供参考 先说说思路 该篇主要是教你怎么去获取数据,包括怎么去选取一支好的基金,怎么去获取基金往期的历史数据 先说说怎么去选取一支好的基金吧 个人认为如何判断一…

期货CTP接口与程序化(量化交易)的对接(1)

很多人写CTP都是为了自动交易。 费好大劲,CTP接口写好了,该往策略方面靠了。 有同学说:“那简单,把文华的策略翻译到CTP里去。” 姑且不论这么做是否可行。我这篇文章要说的,不是这么简单的一个东西,而是一…

散户如何进行开展量化股票交易的?

散户如何进行开展量化股票交易的?也就是投资者交易的条件,达到了投资者设定的条件时候,系统接口就会自动交易,下面来看看具体的流程: 依据个股的历史记录,进行多因子选股,比如,把市…

带你了解Ptrade量化交易功能

Ptrade,适用于交易活跃用户、量化爱好者以及专业量化投资者,又可面向高净值的机构或个人。 PTrade个人专业交易系统,是一款面向个人投资者,尤其是中高净值个人投资者的专业交易系统。系统采用先进的技术框架,具有功能…

ChatGPT真猛!直接写了一本量化交易的书(附下载)

量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W关注者,曾荣获AMMA优秀品牌力、优秀洞察力大奖,连续4年被腾…

音视频技术开发周刊 | 296

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 22字声明、近400名专家签署、AI教父Hinton与OpenAI CEO领头预警:AI可能灭绝人类! 这份声明一经发布,便迅速得到了多伦多大学计算机科学…

青云科技财务负责人、核心技术人员相继离职;作业帮正在内测大模型;OpenAI月活用户数量超8亿丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 新媒股份与科大讯飞共同成立元宇宙XR联合创新实验室 近日,广东南方新媒体股份有限公司(以下简称“新媒股份”)与科大讯飞股份有限公司(以下简称“科大讯飞”&…

美国新闻集团拟起诉微软谷歌OpenAI;大厂核心技术人员开启创业潮;京东云首次发布数智平台“优加”丨每日大事件...

‍ ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 企业动态 美国新闻集团拟起诉微软谷歌OpenAI 自ChatGPT风靡全球后,AI版权问题就成为近来国外争论不休的一个焦点。据报道,AI技术的发展已经引发了新闻出版业的不满,他们认为自己的内容…

OpenAI创始人的Web3愿景:Worldcoin打造AI数字通行证

摘要 以Chatgpt为代表的人工智能的能力正在迅速接近人类,并且已经在许多利基领域超越了人类。越来越强大的模型似乎越来越超出人控制的可能, AI既可以助人,也存在“鸠占鹊巢”挤占人类的存在空间和利益,甚至不排除AI作恶的可能。在…

现在就是成为“新程序员”的黄金时刻!

整理 | 王启隆 出品 | CSDN(ID:CSDNnews) “自然语言代替了编程语言,大大地降低了程序员的门槛。现在,ChatGPT 将全球的知识库和代码都放在了你的手中,只要有想象力,人人都能成为「新程序员」。…

ChatGPT 爆火的背后:深度解读“智能对话”与“人机交互”技术

图灵人工智能 作者 | 鲁冬雪 智能对话技术在近几年来取得了惊人的进步,最近爆火的 ChatGPT 更是将智能对话推到了至高潮。像 ChatGPT 这样的聊天机器人有着广泛的用途,然而想要让其达到真正的智能水平,还有很多挑战需要克服,比…

图灵逝世 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 6 月 7 日,在 1742 年的今天,普鲁士数学家克里斯蒂安哥德巴赫在写给瑞士数学家莱昂哈德欧拉的通信中,提出了以下的猜想&…

苹果今年或无法推出M3芯片;​微软将推私有版ChatGPT:价格是常规版10倍;sudo和su用Rust重写|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

大白话说ChatGPT

ChatGPT是如何流行的? 在经历了2016年,由AlphGo击败李世石而掀起的AI浪潮后,AI行业沉寂良久,上一波浪潮里起来的AI算法公司,在硬件化和数据的泥沼里寻找出路,这么多年,AI行业太需要一个现象级的…

论文版「ChatGPT」来了!看论文问问题可同时进行,网友:看文献更省时了|开源...

Pine 发自 凹非寺量子位 | 公众号 QbitAI 科研人员福音!专门和论文对话的“ChatGPT”来了。 懒得看论文?没关系,直接让这个工具帮你看,有什么问题直接问它就好了。 而你全程要做的就只有上传论文和问问题。 但又感觉心里没谱&…

AI帮忙做论文笔记——高端Prompt技巧——chatGPT时代背景下文献阅读新范式

之前读文献坑: 这样读文献是单个的,没有成体系。 正确的应该是先画个总的思维导图(通过chatGPT ,返回的TXT自动转思维导图) 然后每读一篇文献,就在总的导图上修修补补。 新范式步骤 1 和GPT要个基础的大纲。作为认知底座,主要 包含3w。 例如,以精准教学为例,向chat…

ChatGPT有趣测试(ChatGPT课表安排)

我的问题: 有4名教师分别是:唐僧,孙悟空,猪八戒, 沙悟净。他们四位老师要给两个班级(class1,class2) 授课。分别是唐僧(咒语概论),孙悟空&#x…

图灵测试还重要吗?

撰文丨Harry Collins(卡迪夫大学社会学教授) 来源丨原理(ID:principia1687) 1 我们正在步入人工智能时代。随着人工智能程序越来越擅长像人类般行事,我们也越来越多地面临这样一个问题:人类的智…

图灵测试与人工智能

什么是图灵测试? 在一篇1950年发表的著名论文《Computing Machinery and Intelligence》中,数学家阿兰图灵详细讨论了“机器能否拥有智能?”的问题。有趣的是,作为计算机科学与人工智能领域共同的先驱,图灵成功定义了…