ID:399899
注: 这里使用的数据源是Tushare
我们知道涨停跌停的情况最能反应短线情绪,这里利用tushare提供的历史涨停数据,绘制涨停变化情况等来帮助我们对行情情况有一个判断,知道当前处于什么情绪中。
import pandas as pd
import tushare as ts
import matplotlib.pyplot as plt
pro = ts.pro_api('------token码 这个在tushare主页获取----------')
pro = ts.pro_api()
#解决中文显示问题
plt.rcParams['font.sans-serif'] = ['KaiTi'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
tradeCal = pro.trade_cal(is_open=1).cal_date.tolist()
startIdx = tradeCal.index('20220909') # 需要绘图的最后一个交易日时间
data = []
for i in range(startIdx,startIdx-10,-1): # 这里演示的是十天的 根据需要绘制
# print(tradeCal[i])
df = pro.limit_list_d(trade_date=tradeCal[i], limit_type='U',
fields='ts_code,trade_date,limit_times')
df1 = pro.limit_list_d(trade_date=tradeCal[i], limit_type='D',
fields='ts_code,trade_date,limit_times')
lb = df[df['limit_times']>1].shape[0]
zgb = df.sort_values(by='limit_times',ascending=False).iloc[0,2]
data.append([tradeCal[i],df.shape[0],lb,zgb,df1.shape[0]])
data = pd.DataFrame(data,columns=['日期','涨停数','连扳数','最高板','跌停数'])
data = data.set_index('日期')
data.plot(figsize=(18,8),grid=True,title='短线情绪分析',linestyle='-',marker='o',markeredgecolor='r')
在这里我做的是一个演示大家根据需求去绘制需要的数据的图更佳。这里的涨停数以及最高板有一个问题那就是没有排除次新股。在绘制的时候根据需要可以将他移除再绘图更准确。