前言

在星球《玩转股票量化交易》中我们提供了获取实时行情数据的方式——每间隔3秒爬虫从财经网站上实时采样全市场个股最新行情数据,类似于Level1级别的更新!

具体可以查看这篇公众号文章:

基于多任务爬虫技术, A股实时行情数据Level1采样

对于做短线策略的交易者来说,得到实盘的量价数据之后,还需要把这些数据转换为各种技术指标,在策略中去使用和分析。

由于本地采样时间和交易所推送数据时间会有微小的差别(ms级别),时间长了之后计算出的技术指标会累积成更大的误差,于是在实盘中得到一个相对标准的分钟级别数据(通常技术指标使用的最小单位是分钟)用于计算技术指标非常关键。

于是我们使用通达信的这个接口来修正技术指标,因为在实盘中这个接口可以获取到最近的分钟级别的行情数据。

比如14点30分去调用该接口的时候可以获得最新的分钟级别行情数据。4760962a102fe0b8177a367afe8e57ed.png

接口使用介绍

接下来介绍下如何使用这个接口吧!

首先安装pytdx库,该库提供了获取通达信行情接口

pip install pytdx

其次在程序中引入模块

from pytdx.hq import TdxHq_API

然后,创建对象

api = TdxHq_API()

之后,通常连接到行情服务器上,建议是使用with 语法,可以省略disconnect()语句

with api.connect('119.147.212.81', 7709):
    # some codes

获取k线的接口get_security_bars,其中的各个参数含义如下。

K线种类:

  • 0—5分钟K线

  • 1—15分钟K线

  • 2—30分钟K线

  • 3—60分钟K线

  • 4—日K线

  • 5—周K线

  • 6—月K线

  • 7/8—1分钟K线

Market市场代码: 0—深圳,1—上海

Stockcode:证券代码;

start :指定的范围开始位置;

count:要请求的 K 线数目,最大值为 800

比如以下语句表示获取获取股票深证的000001股票最近的10条1分钟数据

api.get_security_bars(7, 0, '000001', 0, 10)

数据获取的接口一般返回list结构,如果需要转化为pandas Dataframe接口,可以使用 api.to_df 进行转化 如:

api.to_df(api.get_security_bars(7, 0, '000001', 0, 10)) # 返回普通list后转DataFrame

0de99dd27f08051c2eecbc2fd34b877c.png

多进程实盘方案

根据以上的接口介绍可以看出,这个接口只能获取单个股票最新的分钟级别数据,如果要监测多只股票的话,要保证在1分钟内将全部数据更新完成。

于是我们采用了多进程的方式加速分钟数据的获取。开了8个进程后,实测下来1分钟内可以更新900多只股票的分钟行情数据!已经足够用于实盘动态监测股票的数量了。

start = time.time()
p = Pool(8)
for val in basic_code_list():
    res = p.apply_async(tdx_download_if, args=(val,))
p.close()
p.join()
print('总耗时:%.5f秒' % float(time.time() - start))

 小散量化炒股记|通达信的这个接口,实盘计算技术指标正好!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐