def get_daily_deg_for(start='2018-01-01', end='2019-01-01'): with open("stock_20_pool.json", 'r') as load_f: stock_index = json.load(load_f) # 读取股票池Json文件 deg_data = {} for code in stock_index['股票'].values(): try: df_data = pro_daily_stock(code, start, end) y_arr = df_data.Close.values x_arr = np.arange(0, len(y_arr)) x_b_arr = sm.add_constant(x_arr) # 添加常数列1 model = regression.linear_model.OLS(y_arr, x_b_arr).fit() # 使用OLS做拟合 rad = model.params[1] # y = kx + b :params[1] = k deg_data[code] = np.rad2deg(rad) # 弧度转换为角度 print('code({}) deg is: {}'.format(code, deg_data[code])) except: print("error code is %s" % code) """ code(000001.SZ) deg is: -0.7817675279466058 code(000002.SZ) deg is: -3.289481035965825 code(000004.SZ) deg is: -1.8039825425329399 code(000005.SZ) deg is: -0.35793989587357994 code(000006.SZ) deg is: -0.8170351064359175 code(000007.SZ) deg is: -2.463852093183183 code(000008.SZ) deg is: -1.6635671526120404 code(000009.SZ) deg is: -0.6245565900455877 code(000010.SZ) deg is: -0.13332703483617436 code(000011.SZ) deg is: -2.0670175459648163 code(000012.SZ) deg is: -1.284680281224533 code(000014.SZ) deg is: -0.7018486455802234 code(000016.SZ) deg is: -0.9143360317950662 code(000017.SZ) deg is: -0.42342752255013144 code(000018.SZ) deg is: -1.285172202328646 code(000019.SZ) deg is: -1.2514496436146723 code(000020.SZ) deg is: -0.9492849996535324 code(300710.SZ) deg is: -4.703853345031707 code(300711.SZ) deg is: -2.7791310372928755 code(300712.SZ) deg is: -2.688855307947049 """ sorted_data = sorted(deg_data.items(), key=lambda x: x[1], reverse=True) print(sorted_data)
def map_fun(code, start='20190101', end='20190201', table_name='STOCK000001', con_name=conn): try: data = pro_daily_stock(code, start, end) data.to_sql(table_name, con_name, index=False, if_exists='append') except: print("error code is %s" % code)
self.df_ohlc.index.strftime(kwargs['xticklabels'])[index] for index in self.graph_curr.get_xticks() ]) # 标签设置为日期 # X-轴每个ticker标签都向右倾斜45度 for label in self.graph_curr.xaxis.get_ticklabels(): label.set_rotation(45) label.set_fontsize(10) # 设置标签字体 else: for label in self.graph_curr.xaxis.get_ticklabels(): label.set_visible(False) if __name__ == '__main__': df_stockload = pro_daily_stock('000651.SZ', '20180601', '20190601') #df_stockload = bs_k_data_stock("sz.000651", '2018-06-01', '2019-06-01') # 采用未复权数据 print(df_stockload.head(10)) """ High Low Open Close Volume Date 2018-06-01 47.30 46.26 47.30 46.58 4.96e+05 2018-06-04 48.31 46.99 47.00 47.81 1.02e+06 2018-06-05 48.84 47.93 48.00 48.55 1.03e+06 2018-06-06 48.80 48.15 48.55 48.41 5.46e+05 2018-06-07 48.86 47.92 48.75 47.98 5.64e+05 2018-06-08 48.73 47.75 47.95 48.15 7.34e+05 2018-06-11 49.48 48.23 48.70 48.93 8.80e+05 2018-06-12 50.58 48.95 49.16 50.40 1.01e+06 2018-06-13 50.76 49.75 50.20 49.88 5.65e+05 2018-06-14 50.23 48.65 49.93 48.94 6.08e+05
#[(1, '2019-1-1', '2', 10.12, 10.12, 10.12, 10.12, 'None'), (3, '2019-1-3', '2', 10.14, 10.14, 10.14, 10.14, 'Buy Signal'), (4, '2019-1-4', '2', 10.15, 10.15, 10.15, 10.15, 'Sell Signal')] # 删除一个表 c.execute("drop table SZ000002") conn.commit() conn.close() except: # 删除一个表 c.execute("drop table SZ000002") conn.commit() conn.close() # 获取格力电器日线行情数据 if False: df_gldq = pro_daily_stock('000651.SZ', '20190101', '20190201') print(df_gldq.head()) """ High Low Open Close Volume Date 2019-01-02 36.45 35.70 36.45 35.80 424789.84 2019-01-03 36.19 35.75 35.80 35.92 258798.02 2019-01-04 36.70 35.56 35.72 36.65 489612.13 2019-01-07 36.96 36.25 36.88 36.48 392690.76 2019-01-08 36.42 36.03 36.41 36.34 193021.64 """ else: df_gldq = pro.daily(ts_code='000651.SZ', start_date='20190101', end_date='20190201') print(df_gldq.head()) """ ts_code trade_date open ... pct_chg vol amount