tushare 是一个强大的金融分析工具,一个免费的金融大数据开放社区, 一个基于Python的金融数据接口库。
1. 安装 tushare
pip install tushare # pip install 直接安装
pip install tushare --upgrade # 升级到最新版
# test
import tushare as ts
print(ts.__version__)
# 看到类似如下输出 表示安装成功
1.2.54
2. 涨停复盘
import tushare as ts
import pandas as pd
import numpy as np
import datetime
ts.set_token('your tushare token')
pro = ts.pro_api()
stock_basic = pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
# 获前30天内的交易日
today = (datetime.date.today() - datetime.timedelta(0)).strftime("%Y%m%d")
startday = (datetime.date.today() - datetime.timedelta(30)).strftime("%Y%m%d")
trade_date = pro.trade_cal(exchange='', start_date=startday, end_date=today, is_open='1').sort_values('cal_date', ascending=False)
print(today)
# print(trade_date.iloc[0])
num, _ = trade_date.shape
#获取某日涨停股票,并指定字段输出
limit_list = pro.limit_list(start_date=startday, end_date=today, limit_type='U')
cur_date = trade_date.iloc[0]['cal_date']
cur_limit = limit_list[limit_list['trade_date'] == cur_date]
cur_merged = pd.merge(cur_limit, stock_basic)
# 计算连板数
cur_merged['limit_num'] = 1
cur_codes = cur_limit['ts_code'].values
for i in range(1, num):
pre_date = trade_date.iloc[i]['cal_date']
pre_limit = limit_list[limit_list['trade_date'] == pre_date]
pre_codes = pre_limit['ts_code'].values
cur_codes = np.intersect1d(cur_codes, pre_codes)
if cur_codes.size == 0:
break
for code in cur_codes:
cur_merged.loc[cur_merged['ts_code']==code, 'limit_num'] += 1
final_data = cur_merged[['ts_code','name', 'trade_date', 'area', 'industry', 'limit_num']].sort_values('limit_num', ascending=False)
# 追加概念
final_data['concept'] = ''
for code in final_data['ts_code'].values:
concept = pro.concept_detail(ts_code = code)
# print(code)
# print(concept['concept_name'].values)
concept_str = '/'.join(cept for cept in concept['concept_name'].values)
# print(concept_str)
if len(concept_str) == 0:
concept_str = '暂无概念数据'
final_data.loc[final_data['ts_code']==code, 'concept'] += concept_str
final_data.to_csv('replay_' + today +'.csv',index = False)
3. 结果展示
ts_code,name,trade_date,area,industry,limit_num,concept
603719.SH,良品铺子,20200312,湖北,食品,14,暂无概念数据
601696.SH,中银证券,20200312,上海,证券,12,暂无概念数据
300683.SZ,海特生物,20200312,湖北,生物制药,10,医药/化学药
600289.SH,*ST信通,20200312,黑龙江,软件服务,10,5G/网络安全/大数据/智慧城市/ST股
002976.SZ,瑞玛工业,20200312,江苏,钢加工,5,暂无概念数据
603042.SH,华脉科技,20200312,江苏,通信设备,4,5G/光通信
002676.SZ,顺威股份,20200312,广东,塑料,4,白色家电/家电/低价股/壳公司
600133.SH,东湖高新,20200312,湖北,园区开发,3,破净股/大基建/雄安-园林环保/特色小镇/定增破发/大气治理/房地产/环保/雄安新区/创投
002377.SZ,国创高新,20200312,湖北,房产服务,3,石墨电极/破净股/石油化工/高质押率/住房租赁
... 省略 ...
300466.SZ,赛摩电气,20200312,江苏,电器仪表,1,华为产业链/智慧物流/工业自动化/智能制造/进口博览会/工业互联网/股权转让/国产操作系统/国资入股/资产重组/机器人/透明工厂
300161.SZ,华中数控,20200312,湖北,机床制造,1,阿里巴巴概念股/工业自动化/智能制造/举牌股/股权转让/高校系/机器人/新型病毒
600677.SH,*ST航通,20200312,浙江,通信设备,1,央企改革/军工研究所/军工/军民融合/无人机/国产操作系统/ST股
603290.SH,斯达半导,20200312,浙江,半导体,1,暂无概念数据
002445.SZ,ST中南,20200312,江苏,影视音像,1,破净股/直播/短视频/低价股/资产重组/独角兽/ST股/游戏/手游/影视/知识产权
000990.SZ,诚志股份,20200312,江西,化工原料,1,OLED/民营医院/甲醇/破净股/燃料电池/股权转让/高校系/强势人气股/工业大麻
600126.SH,杭钢股份,20200312,浙江,普钢,1,钢铁/破净股/浙江国企改革/环保/云计算/污水处理/股权转让
300340.SZ,科恒股份,20200312,广东,元器件,1,宁德时代概念股/稀土磁材/锂电池/燃料电池/新能源汽车/国资入股
600238.SH,ST椰岛,20200312,海南,红黄酒,1,饮料/保健品/食品/海南自由贸易港/举牌股/自贸区/自由贸易港/ST股/海南/燃料乙醇