我们前几章也花了很大的篇幅介绍了tushare的一些包括基本面数据、历史行情、实时行情、tick分时数据,以及讲了一部分的股票龙虎榜数据获取。并且使用数据库引擎,将获取到的数据存入数据库,并且通过条件过滤查询出来。可以说,我们今天将tushare获取股票龙虎榜数据的最后一部分内容学习完后,tushare的使用基本就完成了。
那么,下面我们开始进行最后一部分的学习,看下如何获取股票龙虎榜数据包括:
- 个股上榜统计
- 营业部上榜统计
- 机构席位追踪
- 机构成交明细
下面我们进行介绍这几个数据的获取和使用方法。
个股上榜统计含义:
这个数据是获取近5、10、30、60日,这4种周期的数据统计,4种周期参数为可选参数,并且包括如下的信息:
- 上榜次数
- 买入席位数和卖出席位数。
- 累积购买额
- 累积卖出额
- 净额
首先,导入tushare包,并创建mysql数据库连接。相应的tushare及mysql驱动安装,我们之前已经介绍过啦,这里就不再啰嗦咯。
from sqlalchemy import create_engine
import tushare as ts
#
engine = create_engine('mysql://root:admin@127.0.0.1:3306/tushare?charset=utf8')
Session = sessionmaker(bind=engine)
session = Session()
获取最近10天的个股上榜统计,并且入库:
pip install mysqlclient
打开数据库查看,获取的字段:
我们可以看到有几个字段,字段的含义分别如下:
- code:代码
- name:名称
- count:上榜次数
- scount:卖出席位数
- samount:累积卖出额(万)
- bamount:累积购买额(万)
- net:净额(万)
- bcount:买入席位数
查询上榜次数最多的个股
# 获取上榜个股最多的
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)
查看查询结果:

从控制台输出,我们可以看到,统计上榜次数最多的三只股票是:日丰股份,万马科技,瑞玛工业,最近10天都上榜了9次,可见这三只股票最近的活跃度非常高。
营业部上榜统计
数据含义:这个数据获取的是营业部最近近5、10、30、60日上榜次数、累积买卖的情况,可以查看营业部具体持仓情况。
获取最近10天的营业部上榜统计,并且入库,这个查询耗时比较久,约要20秒
# 获取营业部上榜统计,周期为最近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)
获取数据如下:

营业部上榜统计数据获取结果
字段信息:
- broker:营业部名称
- count:上榜次数
- scount:卖出席位数
- top3:买入前三股票
- bamount:累积购买额(万)
- bcount:买入席位数
- samount:累积卖出额(万)
控制台输出:

输出统计最高的营业部信息
我们可以看到最近10天上榜营业部最高的是:西藏东方财富证券股份有限公司拉萨团结路第二证券营业部,并且其买入的前三只股票是:鱼跃医疗,平高电气,达安基因
机构席位追踪
数据含义:机构近5、10、30、60日累积买卖次数和金额等情况,被操作最多次的股票。
获取数据并入库,周期为近10天
# 获取机构席位追踪统计,周期为最近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:代码
- name:名称
- bamount:累积买入额(万)
- bcount:买入次数
- samount:累积卖出额(万)
- scount:卖出次数
- net:净额(万)
控制台输出结果如下:

机构买入次数最多的股票
可见日丰股份为买入次数最多的股票,并且买入净额为1.2亿,净额为3200多万。可尝试关注!
机构成交明细
数据含义,机构成交明细应该不用我多说了吧,炒股的朋友肯定都知道这个数据,这个是获取最近一个交易日机构席位成交明细统计数据。
获取数据代码:
# 获取机构席位追踪统计,周期为最近10天的统计
data_4 = ts.inst_detail()
# 入库
data_4.to_sql('inst_detail', engine, if_exists='append')
获取数据如下:

字段信息含义:
- code:代码
- name:名称
- bamount:机构席位买入额(万)
- samount:机构席位卖出额(万)
- date:交易日期
- type:类型
现在,我们希望提取出有用的数据,怎么做呢?我们希望提取机构净买入额最大的股票,也就是bamount与samount差值最大,查询语句如下:
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)
打印查询结果:

机构成交净买入额最大的股票
结果可以看到,华大基因的股票净买入额最大,上榜理由有两个都是涨幅偏离值达7%的证券,其实这个数据多余了一条,重复了,这个应该删掉一条,这个以后我们讲数据清洗过滤时会细讲。
以上,就是我们本章的全部内容,这也是我们大操手量化投资,关于python量化交易的tushare包,获取股票行情数据的量化金融数据的最后一章内容。
希望经过这几篇文章的学习,大家都能够用tushare下载、存储所需要的股票行情数据,并且能够进行简单的数据分析。
量化交易这条路其实很有趣,又很枯燥。笔者当年开始进行量化交易时,是因为兴趣入门,真正开始学习的时候,发现这个学习过程又是很枯燥的,但是到后来的拥抱量化交易,享受能躺着挣Q的幸福。这些年走过来,我发现量化交易不仅在工作上,还有投资事业上,都给了我很大的帮助,也利用量化交易从市场中获取了自己应得的那部分利润。看到很多做交易的朋友苦于想入门量化投资这条路又苦无方法,所以闲来无事,偶尔做做这方面的相关知识出来分享,希望能够帮到更多的朋友。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/76865
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!