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 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | 煙台園城黃金股份有限公司 | 0.676292 | 1.002743 | 0.075966 | 0.109334 | 3292.668440 | ||
2 | 000586.XSHE | 21.0463 | 407.0524 | 彙源通信 | 計算機、通信和其他電子裝置制造業 | 0.084702 | 四川彙源光通信股份有限公司 | 0.564357 | 1.599535 | 0.711899 | 4.401857 | 81.783661 | ||
3 | 000985.XSHE | 20.4701 | 33.7868 | 大慶華科 | 化學原料和化學制品制造業 | 0.039648 | 大慶華科股份有限公司 | 2019-03-31 | 0.228049 | 2.237382 | 0.764512 | 7.787478 | 46.228062 | |
4 | 600556.XSHG | 226.6887 | -208.8825 | ST慧球 | 軟體和資訊技術服務業 | 0.024939 | 廣西慧金科技股份有限公司 | 0.681672 | 1.534540 | 0.053902 | 60.376379 | 5.962597 | True | |
5 | 600608.XSHG | 14.7001 | 2378.2588 | ST滬科 | 黑色金屬冶煉和壓延加工業 | -0.028260 | 上海寬頻科技股份有限公司 | 0.646161 | 1.614730 | 5.816101 | 13.893497 | 25.911403 | ||
6 | 600071.XSHG | 29.2555 | -99.2737 | 鳳凰光學 | 儀器儀表制造業 | -0.047739 | 鳳凰光學股份有限公司 | 0.472790 | 1.169294 | 0.148451 | 1.246763 | 288.747797 | ||
7 | 601890.XSHG | 54.6858 | 90.6697 | 亞星錨鍊 | -0.015461 | NaN | ||||||||
8 | 000004.XSHE | 69.1570 | -250.3860 | 國農科技 | 醫藥制造業 | 0.836099 | 深圳中國農大科技股份有限公司 | 0.163786 | 4.535662 | 0.662938 | ||||
9 | 601718.XSHG | 222.2164 | -114.2454 | 際華集團 | 紡織服裝、服飾業 | 0.375921 | 際華集團股份有限公司 | 0.420433 | 2.738613 | 0.141555 | 0.744656 | 483.444716 | ||
10 | 603778.XSHG | 19.7500 | -165.6433 | 乾景園林 | 土木工程建築業 | 0.018018 | ||||||||
11 | 600836.XSHG | 30.2878 | -43.7923 | 界龍實業 | 印刷和記錄媒介複制業 | 0.080347 | 上海界龍實業集團股份有限公司 | 0.730876 | 0.913507 | 0.397119 | 0.921334 | 390.737769 | ||
12 | 600421.XSHG | 21.2226 | -222.6517 | *ST仰帆 | 通用裝置制造業 | 0.193696 | 湖北仰帆控股股份有限公司 | 0.785138 | 0.347653 | 0.034771 | 7.173724 | 50.183138 | ||
13 | 002058.XSHE | 30.1241 | -215.5228 | 威爾泰 | -0.003383 | 上海威爾泰工業自動化股份有限公司 | 0.131286 | 7.009828 | 0.533314 | 2.205086 | 163.258914 | |||
14 | 000518.XSHE | 62.0822 | -587.3756 | 四環生物 | 0.098329 | 江蘇四環生物股份有限公司 | 0.305737 | 2.700395 | 0.427178 | 0.733750 | 490.630291 | |||
15 | 002423.XSHE | 212.4385 | -141.7885 | 中糧資本 | 其他金融業 | 0.036464 | ||||||||
16 | 603300.XSHG | 53.7946 | 40.7219 | 華鐵應急 | 租賃業 | -0.036395 | 浙江華鐵建築安全科技股份有限公司 | 0.308076 | 1.136618 | 0.037371 | 15.748571 | 22.859217 | ||
17 | 000045.XSHE | 42.4279 | -231.1387 | 深紡織A | 0.139252 | |||||||||
18 | 600671.XSHG | 14.6987 | -99.4585 | 天目藥業 | -0.032914 | |||||||||
19 | 600975.XSHG | 57.8271 | -169.4713 | 新五豐 | 畜牧業 | 0.237536 | 湖南新五豐股份有限公司 | 0.271259 | 2.714286 | 1.280378 | 4.496826 | 80.056468 | ||
20 | 600446.XSHG | 178.3693 | -145.2521 | 金證股份 | 0.009726 | 深圳市金證科技股份有限公司 | 0.525015 | 1.598019 | 1.272702 | 5.953736 | 60.466232 | |||
21 | 002428.XSHE | 71.8432 | -124.1955 | 雲南鍺業 | 有色金屬冶煉和壓延加工業 | -0.001887 | 雲南臨滄鑫圓鍺業股份有限公司 | 0.194244 | 1.475745 | 0.243317 | 1.955290 | 184.115951 | ||
22 | 300086.XSHE | 27.9900 | -123.8907 | 康芝藥業 | 0.198819 | |||||||||
23 | 600538.XSHG | 26.6566 | -121.4423 | 國發股份 | 批發業 | 0.261571 | 北海國發海洋生物産業股份有限公司 | 0.164816 | 4.197737 | 0.294117 | 5.835953 | 61.686578 | ||
24 | 002590.XSHE | 37.9401 | -45.6561 | 萬安科技 | 汽車制造業 | 0.036458 | 浙江萬安科技股份有限公司 | 0.467353 | 1.419771 | 0.141765 | 0.939937 | 383.004207 | ||
25 | 600890.XSHG | 49.1736 | -160.5955 | 中房股份 | 房地産業 | 0.200878 | ||||||||
26 | 600385.XSHG | 11.6857 | -103.1429 | *ST金泰 | 0.025779 | 山東金泰集團股份有限公司 | 0.711436 | 1.297288 | 0.005816 | |||||
27 | 600234.XSHG | 19.4955 | -364.8226 | *ST山水 | 0.007114 | 山西廣和山水文化傳播股份有限公司 | 0.857826 | 0.162083 | 0.060775 | |||||
28 | 600864.XSHG | 160.4120 | 23.1630 | 哈投股份 | 資本市場服務 | 0.079827 | 哈爾濱哈投投資股份有限公司 | 0.681170 | 1.873903 | 0.020583 | 6.927726 | 51.965101 | ||
29 | 300713.XSHE | 20.5403 | -110.9402 | 英可瑞 | 電氣機械和器材制造業 | 0.023784 | 深圳市英可瑞科技股份有限公司 | 0.233626 | 3.626136 | 0.311969 | 3.147327 | 114.382781 | ||
... | ||||||||||||||
3665 | 002679.XSHE | 38.8054 | 840.2719 | 福建金森 | 林業 | 0.034921 | 福建金森林業股份有限公司 | 0.546533 | 4.024858 | 0.005973 | 0.017424 | 20661.260075 | ||
3666 | 603318.XSHG | 37.4011 | -51.5528 | 派思股份 | 專用裝置制造業 | -0.079042 | 大連派思瓦斯系統股份有限公司 | 0.518041 | 1.212190 | 0.199222 | 2.569598 | 140.099752 | ||
3667 | 000020.XSHE | 28.9391 | 468.7081 | 深華發A | 0.000000 | |||||||||
3668 | 002341.XSHE | 95.6338 | 926.3431 | 新綸科技 | 0.296811 | 深圳市新綸科技股份有限公司 | 0.472343 | 1.188651 | 0.064893 | 0.965029 | 373.045625 | |||
3669 | 600149.XSHG | 19.1981 | 212.6978 | ST坊展 | 綜合 | -0.013459 | ||||||||
3670 | 601212.XSHG | 242.8766 | 86.8249 | 白銀有色 | -0.012012 | |||||||||
3671 | 300648.XSHE | 24.4668 | 950.7939 | 星雲股份 | 0.180574 | 福建星雲電子股份有限公司 | 0.244180 | 3.014654 | 0.430049 | 2.305498 | 156.148494 | |||
3672 | 601069.XSHG | 99.0888 | 116.9250 | 西部黃金 | 0.061611 | 西部黃金股份有限公司 | 0.371280 | 0.999096 | 0.374644 | 2.417007 | 148.944530 | |||
3673 | 603501.XSHG | 1489.9034 | 5630.9863 | 韋爾股份 | -0.070294 | 上海韋爾半導體股份有限公司 | 0.690727 | 0.709313 | 0.129665 | 0.735590 | 489.403136 | |||
3674 | 601808.XSHG | 769.1806 | 31.1875 | 中海油服 | 開采輔助活動 | -0.020756 | 中海油田服務股份有限公司 | 0.535697 | 1.276167 | 0.293838 | 15.244639 | 23.614859 | ||
3675 | 000700.XSHE | 124.5300 | 134.4473 | 模塑科技 | 0.112294 | |||||||||
3676 | 000893.XSHE | 45.5656 | 116.7959 | 東淩國際 | 農副食品加工業 | -0.032411 | ||||||||
3677 | 601008.XSHG | 41.4560 | -4044.8789 | 連雲港 | 水上運輸業 | 0.003205 | 江蘇連雲港港口股份有限公司 | 0.583972 | 0.447947 | 0.037784 | 15.933937 | 22.593287 | ||
3678 | 688321.XSHG | 233.9050 | 1201.6450 | 微芯生物 | -0.105799 | |||||||||
3679 | 300548.XSHE | 95.0418 | 1230.1967 | 博創科技 | 0.472850 | 博創科技股份有限公司 | 0.154593 | 4.588279 | 0.115826 | 0.867302 | 415.080159 | |||
3680 | 000554.XSHE | 24.2320 | 1048.5831 | 泰山石油 | 0.058741 | 中國石化山東泰山石油股份有限公司 | 0.287817 | 0.770372 | 2.425697 | 20.886699 | 17.235849 | |||
3681 | 300318.XSHE | 40.8450 | 1296.5431 | 博晖創新 | 0.149126 | 北京博晖創新生物技術股份有限公司 | 0.541381 | 0.884793 | 0.229357 | 1.028200 | 350.126446 | |||
3682 | 600476.XSHG | 22.9525 | -203.3730 | 湘郵科技 | 0.016884 | 湖南湘郵科技股份有限公司 | 0.567464 | 1.467393 | 0.579482 | 4.256108 | 84.584326 | |||
3683 | 002156.XSHE | 286.6956 | 1416.6488 | 通富微電 | 0.006943 | 通富微電子股份有限公司 | 0.534477 | 0.946655 | 0.517087 | 4.990624 | 72.135262 | |||
3684 | 300101.XSHE | 65.9405 | 1435.1690 | 振芯科技 | 0.066807 | 成都振芯科技股份有限公司 | 0.251711 | 4.909851 | 0.068638 | 0.452855 | 794.957054 | |||
3685 | 600730.XSHG | 29.5088 | -879.3200 | 中國高科 | 教育 | 0.088836 | 中國高科集團股份有限公司 | 0.348047 | 20.871838 | 0.010003 | 1.499104 | 240.143423 | ||
3686 | 300618.XSHE | 181.7682 | 1724.7690 | 寒銳钴業 | -0.174808 | 南京寒銳钴業股份有限公司 | 0.408432 | 4.241162 | 0.169358 | 0.551533 | 652.726177 | |||
3687 | 002015.XSHE | 98.0534 | 65.0332 | 協鑫能科 | 電力、熱力生産和供應業 | 0.214300 | 江蘇霞客環保色紡股份有限公司 | 0.036410 | 22.912878 | 0.252404 | 1.690099 | 213.005285 | ||
3688 | 002213.XSHE | 31.3120 | 1911.4472 | 特爾佳 | 0.243665 | 深圳市特爾佳科技股份有限公司 | 0.105138 | 7.575821 | 0.041269 | 0.624240 | 576.701078 | |||
3689 | 600517.XSHG | 443.5174 | 231.8448 | 置信電氣 | 0.136052 | 上海置信電氣股份有限公司 | 0.597835 | 1.390691 | 0.553528 | 6.785512 | 53.054216 | |||
3690 | 600745.XSHG | 1471.1353 | 193.3398 | 聞泰科技 | 0.047068 | 聞泰科技股份有限公司 | 0.779784 | 0.900466 | 1.023192 | 10.202054 | 35.287011 | |||
3691 | 000677.XSHE | 33.5223 | 1266.4793 | 恒天海龍 | 化學纖維制造業 | 0.114908 | 恒天海龍股份有限公司 | 0.255158 | 1.711874 | 0.225964 | 2.159967 | 166.669243 | ||
3692 | 600844.XSHG | 52.0460 | -23.0732 | 丹化科技 | 0.105656 | 丹化化工科技股份有限公司 | 0.187176 | 0.816353 | 0.422517 | 9.051410 | 39.772807 | |||
3693 | 000613.XSHE | 22.4286 | -6582.2614 | 大東海A | 住宿業 | -0.022198 | 海南大東海旅遊中心股份有限公司 | 0.107946 | 2.518450 | 0.104460 | 38.551491 | 9.338160 | ||
3694 | 002459.XSHE | 224.7306 | -467.8555 | 晶澳科技 | 0.193011 | 秦皇島天業通聯重工股份有限公司 | 0.143955 | 3.788168 | 0.238043 | 2.383663 | 151.028068 |
3695 rows × 14 columns