从这些数据,我们有助于我们分析股票的异动。比如,一只表现平平的股票,突然某一天换手率排行出现在龙虎榜,股票出现异动,那么未来应该有一波行情,我们就可以将这只股票纳入自选股参考。
此外,我们收集历史龙虎榜的证券营业部的净买入和净卖出席位,统计这些数据后进行分析,可以形成对证券营业部的跟踪策略。例如某个营业部的出现在龙虎榜净多头排行上后,该只股票随后几天就有表现,那么我们可以跟踪该营业部,跟随其进行适当操作。
龙虎榜数据,还有很多用途,我们这里先不做深究,后续可以慢慢研究。我们今天先来看下,如何获取每日龙虎榜详情数据,获得龙虎榜数据的其中一种。
首先,我们看下进入龙虎榜数据。
在沪深证券交易所,具备以下任一条件的股票即可:
- 日价格涨幅偏离值±7%
- 日换手率达到20%
- 日价格振幅达到15%
- 连续三个交易日内,涨幅偏离值累计达到20%
以上4个条件中,每个条件都选前3名的上榜,深市是分主板、中小板、创业板分别取前3的。
下面,我们来仔细看看,如何用python,利用tushare包来获取这个数据。
安装python后,我们需要安装三个依赖:tushare,pandas,sqlalchemy
安装完成后import下面几个包:
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, Numeric
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
import tushare as ts
tushare获取数据
我们先用tushare获取数据,tushare提供了获取龙虎榜的数据,接口调用需要指定日期,这里我们拆开2020年3月25号的数据,我们调用接口并返回打印出返回的数据字段:
data = ts.top_list('2020-03-24')
print(data)
返回数据如下:

龙虎榜数据详情
返回的字段及其含义如下:
code:代码
name:名称
pchange:当日涨跌幅
amount:龙虎榜成交额(万)
buy:买入额(万)
bratio:买入占总成交比例
sell:卖出额(万)
sratio:卖出占总成交比例
reason:上榜原因
date:日期
下载数据并存入mysql数据库
我们通过接口下载数据后,要将数据存入mysql数据库,我们采用追加入库的方式进行存储,表名为:top_list
engine = create_engine('mysql://root:admin@127.0.0.1:3306/tushare?charset=utf8')
data.to_sql('top_list', engine, if_exists='append')
入库完成后,我们打开数据库表查看数据:

2020年3月26日 龙虎榜数据详情
我们可以看到数据已经入库。我们分析这些数据可以看到,有几种包括:
- 日振幅值达到15%的前五只证券
- ST、*ST和S证券连续三个交易日内收盘价格跌幅偏离值累计达到15%的证券
- 日涨幅偏离值达到7%的前五只证券
- 连续三个交易日内,跌幅偏离值累计达到20%的证券
- ……
根据条件查询龙虎榜数据
我们根据上面返回的字段,定义一个实体类来承接返回的数据。
class TopList(Base):
__tablename__ = 'top_list'
index = Column(Integer, primary_key=True)
code = Column(Integer)
name = Column(String(120))
pchange = Column(String(120))
amount = Column(String(120))
buy = Column(String(120))
sell = Column(String(120))
reason = Column(String(120))
bratio = Column(String(120))
sratio = Column(String(120))
date = Column(String(120))
根据过滤条件查询数据,我们根据上榜原因查出我们所需要的数据,我们选择上榜原因:
【连续三个交易日内,跌幅偏离值累计达到20%的证券】
通过filter过滤条件查询我们所需要的数据,并在控制台打印出来。
Base = declarative_base()
Session = sessionmaker(bind=engine)
session = Session()
def prn_obj(obj):
for v in obj:
print('\n'.join(['%s:【%s】' % item for item in v.__dict__.items()]))
lists = session.query(TopList).filter(TopList.reason == "连续三个交易日内,涨幅偏离值累计达到20%的证券").all()
prn_obj(lists)
看控制台输出,根据我们需要的条件,输出对应的股票的龙虎榜信息:

条件过滤查询
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/76866
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!