推广 热搜: 采购方式  滤芯  带式称重给煤机  甲带  气动隔膜泵  减速机型号  无级变速机  链式给煤机  履带  减速机 

申万行业分析系统的功能与应用

   日期:2026-01-05 21:48:27     来源:网络整理    作者:本站编辑    评论:0    
申万行业分析系统的功能与应用

系统概述

申万行业分析系统是一个基于Streamlit构建的交互式金融数据分析平台,专门用于对申万行业分类中的“家用电器”行业股票进行多维度分析。该系统集成了股票筛选、财务分析、交易数据处理和指数计算等多种功能,为金融数据分析提供了完整的解决方案。

核心功能模块介绍

 1. 股票代码获取

系统首先读取“申万行业分类.xlsx”文件,从全行业数据中筛选出“家用电器”行业的股票。通过建立股票代码与股票名称的对应关系,为用户提供清晰的家电行业股票清单。这一模块为后续分析奠定了基础。

with open('temp1.py','r',encoding='utf-8') as f:    temp_code1=f.read()A=pd.read_excel('申万行业分类.xlsx')# 筛选"家用电器"行业的数据a1 = A[A['行业名称'] == '家用电器']Fs = pd.Series(a1['股票名称'].values,     index=a1['股票代码'].values)print(Fs)A=pd.read_excel('申万行业分类.xlsx')if nm=='1股票代码获取':   left,right=st.columns(2)   with left:        st.subheader('原始数据')        st.dataframe(A)        st.subheader('代码')        st.code(temp_code1,language='python')        st.subheader('申万家用电器数据集')        st.dataframe(Fs)

 2. 股票财务指标数据获取

基于筛选出的家电行业股票代码,系统从“上市公司财务与指标数据2013-2017.xlsx”中提取2016年12月31日的财务数据。这一过程确保了数据的时效性和针对性,为财务分析提供准确的数据源。

with open('temp2.py','r',encoding='utf-8') as f:    temp_code2=f.read()    r=temp1.return_values()    stkcd_list=list(r.index)    A=pd.read_excel('上市公司财务与指标数据2013-2017.xlsx')    A=A.iloc[A.iloc[:,1].values=='2016-12-31',:]    data1 = A[A.iloc[:, 0].isin(stkcd_list)]if nm=='2股票财务指标数据获取':   left,right=st.columns(2)   with left:        st.subheader('原始数据')        st.dataframe(Fs)        st.markdown('代码')        st.code(temp_code2,language='python')        st.subheader('股票财务指标数据获取')        st.dataframe(data1)

 3. 股票财务指标数据处理

对获取的财务数据进行预处理,包括缺失值处理和数据标准化。系统采用Z-score标准化方法,消除不同财务指标之间的量纲影响,使数据更适合后续的统计分析。

with open('temp3.py','r',encoding='utf-8') as f:    temp_code3=f.read()    from temp3 import return_values    data_clean = data.dropna()    code = data_clean.iloc[:, 0].tolist()    financial_data = data.iloc[:, 2:]    x_array = financial_data.values    mean_vals = np.mean(x_array, axis=0)    std_vals = np.std(x_array, axis=0)    std_vals[std_vals == 0] = 1      x = (x_array - mean_vals) / std_valsif nm=='3股票财务指标数据处理':   left,right=st.columns(2)   with left:        st.subheader('原始数据')        st.dataframe(data1)        st.markdown('代码')        st.code(temp_code3,language='python')        st.subheader('股票财务指标数据处理')        st.dataframe(x)         st.dataframe(data)

 4. 财务指标数据主成分分析

通过主成分分析(PCA)对标准化后的财务数据进行降维处理。系统自动计算协方差矩阵、特征值和特征向量,并选择累积方差贡献率达到95%以上的主成分。这一功能帮助用户识别影响股票表现的关键财务因素。

with open('temp4.py','r',encoding='utf-8') as f:    temp_code4=f.read()    from temp4 import return_values    r=temp3.return_values()    x=r[0]    cov_matrix = np.cov(x.T)    eigenvalues, eigenvectors = np.linalg.eig(cov_matrix)    sorted_indices = np.argsort(eigenvalues)[::-1]    sorted_eigenvalues = eigenvalues[sorted_indices]    sorted_eigenvectors = eigenvectors[:, sorted_indices]    total_variance = np.sum(sorted_eigenvalues)    cumulative_variance_ratio = np.cumsum(sorted_eigenvalues) / total_variance    n_components = np.argmax(cumulative_variance_ratio >=     0.95) + 1    z= sorted_eigenvectors[:, :n_components]    Y = np.dot(x,z)if nm=='4财务指标数据主成分分析':   left,right=st.columns(2)   with left:        st.subheader('原始数据')        st.dataframe(x)        st.subheader('代码')        st.code(temp_code4,language='python')        st.subheader('财务指标数据主成分分析')        st.dataframe(Y)

 5. 股票日交易数据获取

结合家电行业股票代码,从“股票交易数据.xlsx”中提取相应的日交易数据。这一模块为用户提供了股票的市场表现数据,为交易分析和指数构建做准备。

with open('temp5.py','r',encoding='utf-8') as f:    temp_code5=f.read()    r=temp1.return_values()    stkcd_list=list(r.index)    A=pd.read_excel('股票交易数据.xlsx')    data5=A[A['Stkcd'].isin(stkcd_list)]if nm=='5股票日交易数据获取':   left,right=st.columns(2)   with left:        st.subheader('原始数据')        st.dataframe(Y)        st.subheader('代码')        st.code(temp_code5,language='python')        st.subheader('股票日交易数据获取')        st.dataframe(data5)  

 6. 股票交易指数的构造

基于交易数据,系统构建家电行业交易指数。以首日的交易金额为基期,计算每日的相对指数值,直观反映家电行业整体的交易活跃度变化趋势。

with open('temp6.py','r',encoding='utf-8') as f:    temp_code6=f.read()    data=temp5.return_values()    dt = data.groupby('Trddt')['Dnvaltrd'].sum().reset_index()    dt = dt.sort_values('Trddt')    base_date = dt.iloc[0]['Trddt']    base_amount = dt.iloc[0]['Dnvaltrd']    dt['index_val'] = dt['Dnvaltrd'] / base_amount * 100    index_val = dt['index_val']if nm=='6股票交易指数的构造':   left,right=st.columns(2)   with left:        st.subheader('原始数据')        st.dataframe(data5)        st.subheader('代码')        st.code(temp_code6,language='python')        st.subheader('股票交易指数的构造')        st.dataframe(index_val)  

 7. 沪深300指数年涨跌幅计算

虽然系统主要关注家电行业,但也提供了沪深300指数的分析功能。计算2014-2017年间的年涨跌幅指标,为用户提供市场基准的参考数据。

with open('temp7.py','r',encoding='utf-8') as f:    temp_code7=f.read()    data=temp5.return_values()    dt = data.groupby('Trddt')['Dnvaltrd'].sum().reset_index()    dt = dt.sort_values('Trddt')    base_date = dt.iloc[0]['Trddt']    base_amount = dt.iloc[0]['Dnvaltrd']    dt['index_val'] = dt['Dnvaltrd'] / base_amount * 100    index_val2 = dt['index_val']if nm=='7计算深圳300指数2014-2017年的年涨跌幅指标':   left,right=st.columns(2)   with left:        st.subheader('原始数据')        st.dataframe(index_val)        st.subheader('代码')        st.code(temp_code7,language='python')        st.subheader('计算深圳300指数2014-2017年的年涨跌幅指标')        st.dataframe(index_val2)  

 8. 关键转折点识别

对沪深300指数2016年的收盘价进行分析,识别关键转折点。通过计算价格与相邻两点均值的偏差,找出波动最大的18个关键点,帮助用户把握市场的重要变化时刻。

with open('temp8.py','r',encoding='utf-8') as f:    temp_code8=f.read()if nm=='8计算获得深圳300指数2016年收盘指数的关键转折点':   left,right=st.columns(2)   A=pd.read_excel('深圳300指数交易数据表.xlsx')   I1=A.iloc[:,1].values>='2016-01-01'   I2=A.iloc[:,1].values<='2016-12-31'   data=A.iloc[I1&I2,:].sort_values(['Idxtrd01'])   data = data.reset_index(drop=True)   prices = data['Idxtrd05'].values   td = np.abs(prices[1:-1] - (prices[:-2] + prices[2:]) / 2)   top_indices = np.argsort(td)[-18:][::-1] + 1   ki = np.concatenate([[0], top_indices, [len(data)-1]])   key_values = prices[ki]    keydata = pd.Series(key_values, index=ki)   with left:        st.subheader('原始数据')        st.dataframe(index_val2)        st.subheader('代码')        st.code(temp_code8,language='python')        st.subheader('计算获得深圳300指数2016年收盘指数的关键转折点')        st.dataframe(keydata)          

 9. 移动平均线计算

计算沪深300指数2016年的10日、20日、30日和60日移动平均值。这些技术指标为趋势分析和交易策略制定提供了重要参考。

with open('temp9.py','r',encoding='utf-8') as f:    temp_code9=f.read()    A=pd.read_excel('深圳300指数交易数据表.xlsx')    I1=A.iloc[:,1].values>='2016-01-01'    I2=A.iloc[:,1].values<='2016-12-31'    rdata=A.iloc[I1&I2,:].sort_values(['Idxtrd01'])    rdata = rdata.reset_index(drop=True)    cp = rdata['Idxtrd05']    x10 = cp.rolling(window=10, min_periods=1).mean()    x20 = cp.rolling(window=20, min_periods=1).mean()    x30 = cp.rolling(window=30, min_periods=1).mean()    x60 = cp.rolling(window=60, min_periods=1).mean()if nm=='9计算深圳300指数2016年10、20、30、60日收盘指数移动平均值':   left,right=st.columns(2)   with left:        st.subheader('原始数据')        st.dataframe(keydata)        st.subheader('代码')        st.code(temp_code9,language='python')        st.subheader('计算深圳300指数2016年10、20、30、60日收盘指数移动平均值')        st.datafrmae(x10,x20,x30,x60)  

 10. 现价指标计算

基于10日移动平均线,计算现价相对指标(现价/MA10)。这一指标反映了当前价格相对于短期趋势的位置,是判断超买超卖状态的重要工具。

with open('temp10.py','r',encoding='utf-8') as f:    temp_code10=f.read()    A=pd.read_excel('深圳300指数交易数据表.xlsx')    I1=A.iloc[:,1].values>='2016-01-01'    I2=A.iloc[:,1].values<='2016-12-31'    rdata=A.iloc[I1&I2,:].sort_values(['Idxtrd01'])    rdata = rdata.reset_index(drop=True)    cp = rdata['Idxtrd05']    ma10 = cp.rolling(window=10, min_periods=1).mean()    p10 = cp / ma10if nm=='10计算深圳300指数2016年现价指标':   left,right=st.columns(2)   with left:        st.subheader('原始数据')        st.dataframe(x10,x20,x30,x60)        st.subheader('代码')        st.code(temp_code10,language='python')        st.subheader('计算深圳300指数2016年现价指标')        st.dataframe(p10)  

 技术特点

1. 模块化设计:每个功能都有独立的temp模块,便于维护和扩展

2. 交互式界面:通过Streamlit侧边栏实现功能切换,用户体验友好

st.set_page_config(            page_title="33",  # 页面标题            layout='wide',        )with st.sidebar:    st.subheader('请选择申万行业执行功能')    List=['1股票代码获取','2股票财务指标数据获取','3股票财务指标数据处理','4财务指标数据主成分分析','5股票日交易数据获取','6股票交易指数的构造','7计算沪深300指数2014-2017年的年涨跌幅指标','8计算获得沪深300指数2016年收盘指数的关键转折点','9计算沪深300指数2016年10、20、30、60日收盘指数移动平均值','10计算沪深300指数2016年现价指标']    nm=st.selectbox(" ",List)

3. 数据可视化:虽然当前主要展示数据表格,但预留了matplotlib接口便于后续图表扩展

 应用价值

系统能够实现以下功能:

(1)快速筛选特定行业的股票

(2)进行深入的财务指标分析

(3)构建行业交易指数

(4)识别市场关键转折点

(5)计算多种技术指标

通过集成化的分析和直观的展示,帮助用户更好地理解家电行业的表现特征,为投资决策提供数据支持的同时,也为用户从数据获取、预处理、分析到结果展示,为用户提供了专业性的分析体验。

 
打赏
 
更多>同类资讯
0 条相关评论

推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  皖ICP备20008329号-18
Powered By DESTOON