Tushare是python金融量化交易中一个很好用的第三方依赖包,一般入门使用python做金融量化的都会用这个工具,因为它是免费开源的,而且可以获取的内容很全面,数据获取实时性也比较可靠,数据齐全。我在当年刚开始做python量化交易,第一个接触的就是这个工具,感觉挺好用的,不失为一个python量化入门的利器。
我们前几章也花了很大的篇幅介绍了tushare的一些包括基本面数据、历史行情、实时行情、tick分时数据,以及讲了一部分的股票龙虎榜数据获取。并且使用数据库引擎,将获取到的数据存入数据库,并且通过条件过滤查询出来。可以说,我们今天将tushare获取股票龙虎榜数据的最后一部分内容学习完后,tushare的使用基本就完成了。
那么,下面我们开始进行最后一部分的学习,看下如何获取股票龙虎榜数据包括:
- 个股上榜统计
- 营业部上榜统计
- 机构席位追踪
- 机构成交明细
下面我们进行介绍这几个数据的获取和使用方法。
个股上榜统计
个股上榜统计含义:
这个数据是获取近5、10、30、60日,这4种周期的数据统计,4种周期参数为可选参数,并且包括如下的信息:
- 上榜次数
- 买入席位数和卖出席位数。
- 累积购买额
- 累积卖出额
- 净额
首先,导入tushare包,并创建mysql数据库连接。相应的tushare及mysql驱动安装,我们之前已经介绍过啦,这里就不再啰嗦咯。
<code>from sqlalchemy import create_engine
import tushare as ts
#
engine = create_engine('mysql://root:[email protected]:3306/tushare?charset=utf8')
Session = sessionmaker(bind=engine)
session = Session()/<code>
获取最近10天的个股上榜统计,并且入库:
<code>pip install mysqlclient/<code>
打开数据库查看,获取的字段:
我们可以看到有几个字段,字段的含义分别如下:
查询上榜次数最多的个股
<code># 获取上榜个股最多的
cursor = session.execute('SELECT * FROM `cap_tops` where count = (select max(count) from `cap_tops`)')
result = cursor.fetchall()
print("\\n查询数据结果:")
for v in result:
print(v)/<code>
查看查询结果:
从控制台输出,我们可以看到,统计上榜次数最多的三只股票是:日丰股份,万马科技,瑞玛工业,最近10天都上榜了9次,可见这三只股票最近的活跃度非常高。
营业部上榜统计
数据含义:这个数据获取的是营业部最近近5、10、30、60日上榜次数、累积买卖的情况,可以查看营业部具体持仓情况。
获取最近10天的营业部上榜统计,并且入库,这个查询耗时比较久,约要20秒
<code># 获取营业部上榜统计,周期为最近10天的统计
data_2 = ts.broker_tops(days=10)
# 入库
data_2.to_sql('broker_tops', engine, if_exists='append')
# 获取上榜营业部最多的
cursor = session.execute('SELECT * FROM `broker_tops` where count = (select max(count) from `broker_tops`)')
sleep(3)
result = cursor.fetchall()
print("\\n查询数据结果:")
for v in result:
print(v)/<code>
获取数据如下:
字段信息:
控制台输出:
我们可以看到最近10天上榜营业部最高的是:西藏东方财富证券股份有限公司拉萨团结路第二证券营业部,并且其买入的前三只股票是:鱼跃医疗,平高电气,达安基因
机构席位追踪
数据含义:机构近5、10、30、60日累积买卖次数和金额等情况,被操作最多次的股票。
获取数据并入库,周期为近10天
<code># 获取机构席位追踪统计,周期为最近10天的统计
data_3 = ts.inst_tops(days=10)
# 入库
data_3.to_sql('inst_tops', engine, if_exists='append')
# # 获取机构操作次数最多的股票
cursor = session.execute('SELECT * FROM `inst_tops` where bcount = (select max(bcount) from `inst_tops`)')
sleep(3)
result = cursor.fetchall()
print("\\n查询数据结果:")
for v in result:
print(v)/<code>
字段含义如下:
控制台输出结果如下:
可见日丰股份为买入次数最多的股票,并且买入净额为1.2亿,净额为3200多万。可尝试关注!
机构成交明细
数据含义,机构成交明细应该不用我多说了吧,炒股的朋友肯定都知道这个数据,这个是获取最近一个交易日机构席位成交明细统计数据。
获取数据代码:
<code># 获取机构席位追踪统计,周期为最近10天的统计
data_4 = ts.inst_detail()
# 入库
data_4.to_sql('inst_detail', engine, if_exists='append')/<code>
获取数据如下:
字段信息含义:
现在,我们希望提取出有用的数据,怎么做呢?我们希望提取机构净买入额最大的股票,也就是bamount与samount差值最大,查询语句如下:
<code>cursor = session.execute('select * from inst_detail where name = '
'(select a.name from ('
'select *,bamount-samount as buy_left from `inst_detail` order by buy_left desc limit 1) '
'a)')
result = cursor.fetchall()
print("\\n查询数据结果:")
print(result)/<code>
打印查询结果:
结果可以看到,华大基因的股票净买入额最大,上榜理由有两个都是涨幅偏离值达7%的证券,其实这个数据多余了一条,重复了,这个应该删掉一条,这个以后我们讲数据清洗过滤时会细讲。
以上,就是我们本章的全部内容,这也是我们大操手量化投资,关于python量化交易的tushare包,获取股票行情数据的量化金融数据的最后一章内容。
希望经过这几篇文章的学习,大家都能够用tushare下载、存储所需要的股票行情数据,并且能够进行简单的数据分析。
量化交易这条路其实很有趣,又很枯燥。笔者当年开始进行量化交易时,是因为兴趣入门,真正开始学习的时候,发现这个学习过程又是很枯燥的,但是到后来的拥抱量化交易,享受能躺着挣Q的幸福。这些年走过来,我发现量化交易不仅在工作上,还有投资事业上,都给了我很大的帮助,也利用量化交易从市场中获取了自己应得的那部分利润。看到很多做交易的朋友苦于想入门量化投资这条路又苦无方法,所以闲来无事,偶尔做做这方面的相关知识出来分享,希望能够帮到更多的朋友。
感谢500多粉丝的关注,今后我会继续更新量化交易领域的相关知识。只要你坚持下去,并且将笔者的文章仔细学习并吸收,将尝试其运用于你的交易投资决策上,相信时间总能给你满意的回报的!加油吧,亲们。
谢谢关注头条号:大操手量化投资,欢迎关注并转发,收藏我的文章!大操手量化投资,带你走进量化交易的世界!
閱讀更多 大操手量化投資 的文章