1.1、财务数据——总市值和PE
from jqdatasdk import *
import seaborn as sns
import math
import datetime
from tqdm import tqdm
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df = get_fundamentals(query(valuation,indicator))
raw_data = []
for index in range(len(df['code'])):
raw_data_item = {
'code' :df['code'][index],
'market_cap':df['market_cap'][index],
'pe_ratio' :df['pe_ratio'][index]
}
raw_data.append(raw_data_item)
# # 按照财务信息中的总市值降序排序
# raw_data = sorted(raw_data,key = lambda item:item['market_cap'], reverse=True)
# # 剔除总市值排名最小的10%的股票
# fitered_market_cap = raw_data[:int(len(raw_data) * 0.9)]
# # 剔除PE TTM 小于0或大于100
# filtered_pe = []
# for stock in fitered_market_cap:
# if stock['pe_ratio'] == None or math.isnan(stock['pe_ratio']) or float(stock['pe_ratio']) < 0 or float(stock['pe_ratio']) > 100:
# continue
# filtered_pe.append(stock['code'])
#PE数据集
df_pe=pd.DataFrame(raw_data)
df_name=get_all_securities().reset_index().rename(columns={'index':'code'})
df_pe=pd.merge(df_pe,df_name,on='code',how='left')
df_pe=df_pe[['code','market_cap','pe_ratio','display_name']]
1.2、行情数据——25日涨跌幅
current_dt=datetime.datetime.now().strftime('%Y-%m-%d')
CHANGE_PCT_DAY_NUMBER=25
def load_change_pct_data(current_dt,codes):
change_pct_dict_list = []
# 计算涨跌幅需要用到前一日收盘价,所以需要多加载一天的数据,
# 而这里在第二日的开盘前运行,计算前一个交易日收盘后的数据,所以需要再多加载一天
# 使用固定的25个交易日,而非25个bar计算涨跌幅
count = CHANGE_PCT_DAY_NUMBER + 1
# 获取25个交易日的日期
pre_25_dates = get_trade_days(start_date=None, end_date=current_dt, count=count)
pre_25_date = pre_25_dates[0]
pre_1_date = pre_25_dates[-1]
for code in codes:
pre_25_data = get_price(code, start_date=None, end_date=pre_25_date, frequency='daily', fields=['close'], skip_paused=True, fq='post', count=1)
pre_1_data = get_price(code, start_date=None, end_date=pre_1_date, frequency='daily', fields=['close'], skip_paused=True, fq='post', count=1)
pre_25_close = None
pre_1_close = None
if str(pre_25_date) == str(pre_25_data.index[0])[:10]:
pre_25_close = pre_25_data['close'][0]
if str(pre_1_date) == str(pre_1_data.index[0])[:10]:
pre_1_close = pre_1_data['close'][0]
if pre_25_close != None and pre_1_close != None and not math.isnan(pre_25_close) and not math.isnan(pre_1_close):
change_pct = (pre_1_close - pre_25_close) / pre_25_close
item = {'code':code, 'change_pct': change_pct}
change_pct_dict_list.append(item)
return change_pct_dict_list
def load_change_pct_data_1(current_dt,code):
change_pct_dict_list = []
# 计算涨跌幅需要用到前一日收盘价,所以需要多加载一天的数据,
# 而这里在第二日的开盘前运行,计算前一个交易日收盘后的数据,所以需要再多加载一天
# 使用固定的25个交易日,而非25个bar计算涨跌幅
count = CHANGE_PCT_DAY_NUMBER + 1
# 获取25个交易日的日期
pre_25_dates = get_trade_days(start_date=None, end_date=current_dt, count=count)
pre_25_date = pre_25_dates[0]
pre_1_date = pre_25_dates[-1]
pre_25_data = get_price(code, start_date=None, end_date=pre_25_date, frequency='daily', fields=['close'], skip_paused=True, fq='post', count=1)
pre_1_data = get_price(code, start_date=None, end_date=pre_1_date, frequency='daily', fields=['close'], skip_paused=True, fq='post', count=1)
pre_25_close = None
pre_1_close = None
if str(pre_25_date) == str(pre_25_data.index[0])[:10]:
pre_25_close = pre_25_data['close'][0]
if str(pre_1_date) == str(pre_1_data.index[0])[:10]:
pre_1_close = pre_1_data['close'][0]
if pre_25_close != None and pre_1_close != None and not math.isnan(pre_25_close) and not math.isnan(pre_1_close):
change_pct = (pre_1_close - pre_25_close) / pre_25_close
item = {'code':code, 'change_pct': change_pct}
change_pct_dict_list.append(item)
return change_pct_dict_list
# # 加载标的的涨跌幅信息
# change_pct_dict_list = load_change_pct_data(current_dt,filtered_pe)
# # 按照涨跌幅升序排序
# change_pct_dict_list = sorted(change_pct_dict_list,key = lambda item:item['change_pct'], reverse=False)
# # 取跌幅前10%的股票
# change_pct_dict_list = change_pct_dict_list[0:(int(len(change_pct_dict_list)*0.1))]
change_pct_dict_list=[]
for i in tqdm(df_pe['code']):
change_pct_dict_list.append(load_change_pct_data_1(current_dt,i))
df_stocks_industry_1=pd.DataFrame(list(df_stocks_industry.items()))
df_stocks_industry_1.columns=['code','industry_name']
现在是否ST
df_stoacks_is_st=get_extras('is_st',list(df_stocks_industry_1['code']),start_date='2020-03-06', end_date='2020-03-06')
df_stoacks_is_st=df_stoacks_is_st.T.reset_index().rename(columns={'index':'code','2020-03-06 00:00:00':'is_st'})
df_stoacks_is_st.columns=['code','is_st']
特征合并
# df_pe
df_stocks_industry=pd.merge(df_pe,df_stocks_industry_1,on='code',how='left')
#25日涨跌幅 change_pct_dict_df
df_stocks_industry_change=pd.merge(df_stocks_industry,change_pct_dict_df,on='code',how='left')
#合并资产负债率特征
df_stocks_feature=pd.merge(df_stocks_industry_change,df_liability_vs_assets,on='code',how='left')
#合并流动比率特征 df_current
df_stocks_feature=pd.merge(df_stocks_feature,df_current,on='code',how='left')
#总资产周转率、存货周转率、平均在库天数
df_stocks_feature=pd.merge(df_stocks_feature,df_turnover,on='code',how='left')
#是否st标签
df_stocks_feature=pd.merge(df_stocks_feature,df_stoacks_is_st,on='code',how='left')
df_stocks_feature
code | market_cap | pe_ratio | display_name | industry_name | change_pct | company_name | end_date | ratio_liability_vs_assets | current_ratio | ratio_assets_turnover | ratio_inventory_turnover | ratio_turnover_days | is_st | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 000017.XSHE | 24.0939 | -989.3035 | 深中华A | 铁路、船舶、航空航天和其他运输设备制造业 | 0.092166 | 深圳中华自行车(集团)股份有限公司 | 2018-12-31 | 0.768163 | 1.187177 | 1.637112 | 51.207251 | 7.030254 | False |
1 | 600766.XSHG | 18.9023 | -757.5206 | 园城黄金 | 有色金属矿采选业 | 0.125750 | 烟台园城黄金股份有限公司 | 2018-12-31 | 0.676292 | 1.002743 | 0.075966 | 0.109334 | 3292.668440 | False |
2 | 000586.XSHE | 21.0463 | 407.0524 | 汇源通信 | 计算机、通信和其他电子设备制造业 | 0.084702 | 四川汇源光通信股份有限公司 | 2018-12-31 | 0.564357 | 1.599535 | 0.711899 | 4.401857 | 81.783661 | False |
3 | 000985.XSHE | 20.4701 | 33.7868 | 大庆华科 | 化学原料和化学制品制造业 | 0.039648 | 大庆华科股份有限公司 | 2019-03-31 | 0.228049 | 2.237382 | 0.764512 | 7.787478 | 46.228062 | False |
4 | 600556.XSHG | 226.6887 | -208.8825 | ST慧球 | 软件和信息技术服务业 | 0.024939 | 广西慧金科技股份有限公司 | 2019-03-31 | 0.681672 | 1.534540 | 0.053902 | 60.376379 | 5.962597 | True |
5 | 600608.XSHG | 14.7001 | 2378.2588 | ST沪科 | 黑色金属冶炼和压延加工业 | -0.028260 | 上海宽频科技股份有限公司 | 2018-12-31 | 0.646161 | 1.614730 | 5.816101 | 13.893497 | 25.911403 | True |
6 | 600071.XSHG | 29.2555 | -99.2737 | 凤凰光学 | 仪器仪表制造业 | -0.047739 | 凤凰光学股份有限公司 | 2019-03-31 | 0.472790 | 1.169294 | 0.148451 | 1.246763 | 288.747797 | False |
7 | 601890.XSHG | 54.6858 | 90.6697 | 亚星锚链 | 铁路、船舶、航空航天和其他运输设备制造业 | -0.015461 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
8 | 000004.XSHE | 69.1570 | -250.3860 | 国农科技 | 医药制造业 | 0.836099 | 深圳中国农大科技股份有限公司 | 2019-03-31 | 0.163786 | 4.535662 | 0.662938 | NaN | NaN | False |
9 | 601718.XSHG | 222.2164 | -114.2454 | 际华集团 | 纺织服装、服饰业 | 0.375921 | 际华集团股份有限公司 | 2019-03-31 | 0.420433 | 2.738613 | 0.141555 | 0.744656 | 483.444716 | False |
10 | 603778.XSHG | 19.7500 | -165.6433 | 乾景园林 | 土木工程建筑业 | 0.018018 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
11 | 600836.XSHG | 30.2878 | -43.7923 | 界龙实业 | 印刷和记录媒介复制业 | 0.080347 | 上海界龙实业集团股份有限公司 | 2018-12-31 | 0.730876 | 0.913507 | 0.397119 | 0.921334 | 390.737769 | False |
12 | 600421.XSHG | 21.2226 | -222.6517 | *ST仰帆 | 通用设备制造业 | 0.193696 | 湖北仰帆控股股份有限公司 | 2019-03-31 | 0.785138 | 0.347653 | 0.034771 | 7.173724 | 50.183138 | True |
13 | 002058.XSHE | 30.1241 | -215.5228 | 威尔泰 | 仪器仪表制造业 | -0.003383 | 上海威尔泰工业自动化股份有限公司 | 2018-12-31 | 0.131286 | 7.009828 | 0.533314 | 2.205086 | 163.258914 | False |
14 | 000518.XSHE | 62.0822 | -587.3756 | 四环生物 | 医药制造业 | 0.098329 | 江苏四环生物股份有限公司 | 2018-12-31 | 0.305737 | 2.700395 | 0.427178 | 0.733750 | 490.630291 | False |
15 | 002423.XSHE | 212.4385 | -141.7885 | 中粮资本 | 其他金融业 | 0.036464 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
16 | 603300.XSHG | 53.7946 | 40.7219 | 华铁应急 | 租赁业 | -0.036395 | 浙江华铁建筑安全科技股份有限公司 | 2019-03-31 | 0.308076 | 1.136618 | 0.037371 | 15.748571 | 22.859217 | False |
17 | 000045.XSHE | 42.4279 | -231.1387 | 深纺织A | 计算机、通信和其他电子设备制造业 | 0.139252 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
18 | 600671.XSHG | 14.6987 | -99.4585 | 天目药业 | 医药制造业 | -0.032914 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
19 | 600975.XSHG | 57.8271 | -169.4713 | 新五丰 | 畜牧业 | 0.237536 | 湖南新五丰股份有限公司 | 2018-12-31 | 0.271259 | 2.714286 | 1.280378 | 4.496826 | 80.056468 | False |
20 | 600446.XSHG | 178.3693 | -145.2521 | 金证股份 | 软件和信息技术服务业 | 0.009726 | 深圳市金证科技股份有限公司 | 2018-12-31 | 0.525015 | 1.598019 | 1.272702 | 5.953736 | 60.466232 | False |
21 | 002428.XSHE | 71.8432 | -124.1955 | 云南锗业 | 有色金属冶炼和压延加工业 | -0.001887 | 云南临沧鑫圆锗业股份有限公司 | 2018-12-31 | 0.194244 | 1.475745 | 0.243317 | 1.955290 | 184.115951 | False |
22 | 300086.XSHE | 27.9900 | -123.8907 | 康芝药业 | 医药制造业 | 0.198819 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
23 | 600538.XSHG | 26.6566 | -121.4423 | 国发股份 | 批发业 | 0.261571 | 北海国发海洋生物产业股份有限公司 | 2018-12-31 | 0.164816 | 4.197737 | 0.294117 | 5.835953 | 61.686578 | False |
24 | 002590.XSHE | 37.9401 | -45.6561 | 万安科技 | 汽车制造业 | 0.036458 | 浙江万安科技股份有限公司 | 2019-03-31 | 0.467353 | 1.419771 | 0.141765 | 0.939937 | 383.004207 | False |
25 | 600890.XSHG | 49.1736 | -160.5955 | 中房股份 | 房地产业 | 0.200878 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
26 | 600385.XSHG | 11.6857 | -103.1429 | *ST金泰 | 医药制造业 | 0.025779 | 山东金泰集团股份有限公司 | 2019-03-31 | 0.711436 | 1.297288 | 0.005816 | NaN | NaN | True |
27 | 600234.XSHG | 19.4955 | -364.8226 | *ST山水 | 计算机、通信和其他电子设备制造业 | 0.007114 | 山西广和山水文化传播股份有限公司 | 2019-03-31 | 0.857826 | 0.162083 | 0.060775 | NaN | NaN | True |
28 | 600864.XSHG | 160.4120 | 23.1630 | 哈投股份 | 资本市场服务 | 0.079827 | 哈尔滨哈投投资股份有限公司 | 2019-03-31 | 0.681170 | 1.873903 | 0.020583 | 6.927726 | 51.965101 | False |
29 | 300713.XSHE | 20.5403 | -110.9402 | 英可瑞 | 电气机械和器材制造业 | 0.023784 | 深圳市英可瑞科技股份有限公司 | 2018-12-31 | 0.233626 | 3.626136 | 0.311969 | 3.147327 | 114.382781 | False |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
3665 | 002679.XSHE | 38.8054 | 840.2719 | 福建金森 | 林业 | 0.034921 | 福建金森林业股份有限公司 | 2019-03-31 | 0.546533 | 4.024858 | 0.005973 | 0.017424 | 20661.260075 | False |
3666 | 603318.XSHG | 37.4011 | -51.5528 | 派思股份 | 专用设备制造业 | -0.079042 | 大连派思燃气系统股份有限公司 | 2018-12-31 | 0.518041 | 1.212190 | 0.199222 | 2.569598 | 140.099752 | False |
3667 | 000020.XSHE | 28.9391 | 468.7081 | 深华发A | 计算机、通信和其他电子设备制造业 | 0.000000 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
3668 | 002341.XSHE | 95.6338 | 926.3431 | 新纶科技 | 化学原料和化学制品制造业 | 0.296811 | 深圳市新纶科技股份有限公司 | 2019-03-31 | 0.472343 | 1.188651 | 0.064893 | 0.965029 | 373.045625 | False |
3669 | 600149.XSHG | 19.1981 | 212.6978 | ST坊展 | 综合 | -0.013459 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | True |
3670 | 601212.XSHG | 242.8766 | 86.8249 | 白银有色 | 有色金属冶炼和压延加工业 | -0.012012 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
3671 | 300648.XSHE | 24.4668 | 950.7939 | 星云股份 | 仪器仪表制造业 | 0.180574 | 福建星云电子股份有限公司 | 2018-12-31 | 0.244180 | 3.014654 | 0.430049 | 2.305498 | 156.148494 | False |
3672 | 601069.XSHG | 99.0888 | 116.9250 | 西部黄金 | 有色金属矿采选业 | 0.061611 | 西部黄金股份有限公司 | 2018-12-31 | 0.371280 | 0.999096 | 0.374644 | 2.417007 | 148.944530 | False |
3673 | 603501.XSHG | 1489.9034 | 5630.9863 | 韦尔股份 | 计算机、通信和其他电子设备制造业 | -0.070294 | 上海韦尔半导体股份有限公司 | 2019-03-31 | 0.690727 | 0.709313 | 0.129665 | 0.735590 | 489.403136 | False |
3674 | 601808.XSHG | 769.1806 | 31.1875 | 中海油服 | 开采辅助活动 | -0.020756 | 中海油田服务股份有限公司 | 2018-12-31 | 0.535697 | 1.276167 | 0.293838 | 15.244639 | 23.614859 | False |
3675 | 000700.XSHE | 124.5300 | 134.4473 | 模塑科技 | 汽车制造业 | 0.112294 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
3676 | 000893.XSHE | 45.5656 | 116.7959 | 东凌国际 | 农副食品加工业 | -0.032411 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
3677 | 601008.XSHG | 41.4560 | -4044.8789 | 连云港 | 水上运输业 | 0.003205 | 江苏连云港港口股份有限公司 | 2019-03-31 | 0.583972 | 0.447947 | 0.037784 | 15.933937 | 22.593287 | False |
3678 | 688321.XSHG | 233.9050 | 1201.6450 | 微芯生物 | 医药制造业 | -0.105799 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False |
3679 | 300548.XSHE | 95.0418 | 1230.1967 | 博创科技 | 计算机、通信和其他电子设备制造业 | 0.472850 | 博创科技股份有限公司 | 2019-03-31 | 0.154593 | 4.588279 | 0.115826 | 0.867302 | 415.080159 | False |
3680 | 000554.XSHE | 24.2320 | 1048.5831 | 泰山石油 | 批发业 | 0.058741 | 中国石化山东泰山石油股份有限公司 | 2018-12-31 | 0.287817 | 0.770372 | 2.425697 | 20.886699 | 17.235849 | False |
3681 | 300318.XSHE | 40.8450 | 1296.5431 | 博晖创新 | 专用设备制造业 | 0.149126 | 北京博晖创新生物技术股份有限公司 | 2018-12-31 | 0.541381 | 0.884793 | 0.229357 | 1.028200 | 350.126446 | False |
3682 | 600476.XSHG | 22.9525 | -203.3730 | 湘邮科技 | 软件和信息技术服务业 | 0.016884 | 湖南湘邮科技股份有限公司 | 2018-12-31 | 0.567464 | 1.467393 | 0.579482 | 4.256108 | 84.584326 | False |
3683 | 002156.XSHE | 286.6956 | 1416.6488 | 通富微电 | 计算机、通信和其他电子设备制造业 | 0.006943 | 通富微电子股份有限公司 | 2018-12-31 | 0.534477 | 0.946655 | 0.517087 | 4.990624 | 72.135262 | False |
3684 | 300101.XSHE | 65.9405 | 1435.1690 | 振芯科技 | 计算机、通信和其他电子设备制造业 | 0.066807 | 成都振芯科技股份有限公司 | 2019-03-31 | 0.251711 | 4.909851 | 0.068638 | 0.452855 | 794.957054 | False |
3685 | 600730.XSHG | 29.5088 | -879.3200 | 中国高科 | 教育 | 0.088836 | 中国高科集团股份有限公司 | 2019-03-31 | 0.348047 | 20.871838 | 0.010003 | 1.499104 | 240.143423 | False |
3686 | 300618.XSHE | 181.7682 | 1724.7690 | 寒锐钴业 | 有色金属冶炼和压延加工业 | -0.174808 | 南京寒锐钴业股份有限公司 | 2019-03-31 | 0.408432 | 4.241162 | 0.169358 | 0.551533 | 652.726177 | False |
3687 | 002015.XSHE | 98.0534 | 65.0332 | 协鑫能科 | 电力、热力生产和供应业 | 0.214300 | 江苏霞客环保色纺股份有限公司 | 2019-03-31 | 0.036410 | 22.912878 | 0.252404 | 1.690099 | 213.005285 | False |
3688 | 002213.XSHE | 31.3120 | 1911.4472 | 特尔佳 | 汽车制造业 | 0.243665 | 深圳市特尔佳科技股份有限公司 | 2019-03-31 | 0.105138 | 7.575821 | 0.041269 | 0.624240 | 576.701078 | False |
3689 | 600517.XSHG | 443.5174 | 231.8448 | 置信电气 | 电气机械和器材制造业 | 0.136052 | 上海置信电气股份有限公司 | 2018-12-31 | 0.597835 | 1.390691 | 0.553528 | 6.785512 | 53.054216 | False |
3690 | 600745.XSHG | 1471.1353 | 193.3398 | 闻泰科技 | 计算机、通信和其他电子设备制造业 | 0.047068 | 闻泰科技股份有限公司 | 2018-12-31 | 0.779784 | 0.900466 | 1.023192 | 10.202054 | 35.287011 | False |
3691 | 000677.XSHE | 33.5223 | 1266.4793 | 恒天海龙 | 化学纤维制造业 | 0.114908 | 恒天海龙股份有限公司 | 2019-03-31 | 0.255158 | 1.711874 | 0.225964 | 2.159967 | 166.669243 | False |
3692 | 600844.XSHG | 52.0460 | -23.0732 | 丹化科技 | 化学原料和化学制品制造业 | 0.105656 | 丹化化工科技股份有限公司 | 2018-12-31 | 0.187176 | 0.816353 | 0.422517 | 9.051410 | 39.772807 | False |
3693 | 000613.XSHE | 22.4286 | -6582.2614 | 大东海A | 住宿业 | -0.022198 | 海南大东海旅游中心股份有限公司 | 2019-03-31 | 0.107946 | 2.518450 | 0.104460 | 38.551491 | 9.338160 | False |
3694 | 002459.XSHE | 224.7306 | -467.8555 | 晶澳科技 | 电气机械和器材制造业 | 0.193011 | 秦皇岛天业通联重工股份有限公司 | 2018-12-31 | 0.143955 | 3.788168 | 0.238043 | 2.383663 | 151.028068 | False |
3695 rows × 14 columns