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