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

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&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['收盘价_复权']

通达信行情数据获取--python_股票量化交易-获取数据的两种方法相关推荐

  1. 通达信交易接口api_股票量化交易-获取数据的两种方法

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

  2. 通达信行情数据获取--python_[python]沪深龙虎榜数据导入通达信的自选板块,并标注于K线图上...

    1 #coding=utf-8 2 3 #读取'[paint]'开头的csv文件 4 #copyright @ WangXinsheng 5 #http://www.cnblogs.com/wangx ...

  3. 通达信行情数据获取--python_利用 Python 获取余额宝历史收益数据

    最近想做一个关于用一些指数基金与余额宝组成的简单 风险-无风险 投资组合的实验计算,发现通达信之类的行情软件并没有提供完整的余额宝收益信息,如通达信仅有年化收益率的数据,并没有万份收益的数据.因此考虑 ...

  4. 通达信行情数据获取--python

    通达信行情数据获取方法,其中可以通过通达信每天下载导自身文件获取(通过c或者c++写一个接口就可以了),但是每天需要手动同步数据.下面介绍一个比较好网上接口.需要到"Tushare金融大数据 ...

  5. 通达信接口官网与量化交易有联系吗?

    股票量化在目前看来已经很普遍了,因此市面上有很多交易软件不断被开发出来,就比如说通达信接口官网系统,那它与量化交易有什么联系吗? 通达信接口官网其实就是提供给投资者进行量化交易的渠道,也就是大家常见使 ...

  6. 通达信行情数据获取--python_Python读取通达信数据

    Python读取通达信数据 一.介绍 python获取股票数据的方法很多,其中Tushare 财经数据接口包很好用,当然,也可以通过通达信本地的数据获取,这样更为方便. 日线数据存在这路径下D:\通达 ...

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

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

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

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

  9. 如何学习调用股票量化交易API接口的方法?

    对于股票量化交易API接口学习调用的方法,主要是从数字看点平台有丰富的API接口,它让应用程序可以轻松地使用另一个应用程序的数据和资源,把通用的.共性的应用功能进行模块化处理,让开发变的简单又快捷,即 ...

最新文章

  1. mongodb 连接和备份
  2. Web服务集成CRM的应用
  3. idea每次新建项目都要重新配置maven
  4. 使用清华开源镜像安装tensorflow
  5. C语言操作符(又称运算符)(2)
  6. [转]一份ASP内存的释放的实验报告
  7. 算法竞赛入门经典 第七章 总结
  8. 从3000米高空,一跃而下…
  9. 32岁了学python来的及吗_为什么每个人都应该在2020年学习Python?
  10. python 的__str__和__repr__有什么区别?
  11. python爬虫SSL: CERTIFICATE_VERIFY_FAILED解决方案
  12. Android Studio 下载ndk
  13. 迈信EP100伺服驱动器方案
  14. 底层网工、0基础、记性差,学习CCIE/HCIE,到底是啥体验?
  15. Mybatis事务原理
  16. 计算机考研各科时间安排,计算机考研专业课复习全程的时间安排
  17. ps软件与计算机不兼容怎么办,ps版本不兼容怎么办,ps怎么解决版本兼容问题
  18. POJ 1581 A Contesting Decision
  19. 魔术表演的核心秘密(一)——开篇简介
  20. ISCC2021——web部分

热门文章

  1. leica[.m00]如何转成rinex[2.0x,3.0x]格式
  2. python转C++格式学习笔记
  3. 遵化有教php基础知识,2019年河北省唐山市遵化市中小学语文教师招聘/编制考试历年真题试卷及答案解析...
  4. 小米换字体显示服务器,字体君手把手教你小米手机换字体
  5. Mybatis报错:There is no getter for property named 'xxxx' in 'class xxxx之解决办法
  6. 美国的计算机什么水平,美国计算机专业大学排名怎么样?
  7. 基于移动最小二乘(MLS)的图像扭曲刚性变形python实现
  8. ps压缩证件照(自己动手,丰衣足食,主打一个免费)
  9. 时钟的时针、分针和秒针重合问题
  10. 超声波检测中的横波与纵波分别