




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第八章滬深300指數預測Python金融數據分析與應用(微課版)目錄CONTENTS滬深300指數概述8.1數據說明與預處理8.2滬深300指數分析8.3滬深300指數走勢預測8.4案例報告——基于數據挖掘的滬深300指數走勢預測8.58.1滬深300指數概述8.1滬深300指數概述滬深300指數是我國股票市場的重要指標之一,由上海和深圳證券市場中市值高、流動性好的300只股票組成,反映了我國A股市場的整體表現。該指數具有較強的市場代表性和良好的投資跟蹤價值,被廣泛應用于業績評價、投資研究和金融產品創新等領域。隨著我國資本市場的進一步開放,滬深300指數在國際金融市場中的影響力也在不斷提升。1代表性強:覆蓋了滬深兩市中市值高、流動性好的上市公司,能夠較好地反映市場整體趨勢。234行業覆蓋廣泛:覆蓋了多個行業,包括金融、消費、工業、能源等,有助于投資者構建多元化的投資組合。市場影響力大:作為我國股市的重要基準指數,滬深300指數對市場情緒和投資者行為有著顯著的影響。投資跟蹤工具多樣化:基于滬深300指數的交易所交易基金(ExchangeTradedFund,ETF)、指數基金、期貨和期權等金融產品豐富,為投資者提供了多樣化的投資和風險管理工具。8.2數據說明與預處理8.2數據說明與預處理使用pandas讀取Excel文件“滬深300指數歷史行情數據.xlsx”,并展示數據結構,將“日期”字段設置為DataFrame的索引,以便后續研究指數走勢,示例代碼如下:8.2.1數據說明importpandasaspddata=pd.read_excel('滬深300指數歷史行情數據.xlsx')#將“日期”列轉換為日期時間類型,并設置“日期”為索引data['日期']=pd.to_datetime(data['日期'])data.set_index('日期',inplace=True)data.tail()#展示最后5行數據?8.2?數據說明與預處理8.2.2?數據預處理???在進行數據分析之前,必須對原始數據進行預處理,以確保數據質量并滿足后續分析需求,基本步驟如下。步驟1?數據清洗。檢查并處理重復值、缺失值和異常值步驟2?數據指標計算與選取。基于原始數據構建新的特征或變量以構建預測模型?print('數據集中是否存在重復值:\n',any(data.duplicated()))#重復值檢查print('數據集中是否存在缺失值:\n',any(data.isnull()))#缺失值檢查data.dropna(inplace=True)#刪除缺失值?#構建目標變量Y:收盤價的漲跌data['漲跌']=data['漲跌幅'].apply(lambdax:1ifx>0else0)#選擇特征和目標變量features=data[['開盤','收盤','最高','最低','成交量','成交額','日收益率','SMA20','RSI12','MACD線','MACD信號線','MACD柱狀線','K線','D線','J線']]target=data['漲跌']8.3滬深300指數分析8.3滬深300指數分析滬深300指數的描述性分析是對數據集的基本特征進行總結和概括。這包括計算交易數據的基本統計量,如均值、中位數、標準差、最小值和最大值等。通過這些統計量,可以初步了解滬深300指數的整體表現。8.3.1滬深300指數描述性分析#新建特征和目標變量的數據副本用于可視化data_features_target=features.copy()#新建特征的數據副本進行分析data_features_target['漲跌']=target#在新建副本上增加目標變量Y的數據列#描述性統計data_features_target.describe().T8.3滬深300指數分析8.3.2滬深300指數可視化分析cou=data_features_target['漲跌'].value_counts()plt.bar(cou.index,cou.values,color=['lightgray','green'])plt.xlabel('漲跌情況')plt.ylabel('頻數')plt.xticks([0,1],rotation=0)#注意:若需在條形圖上方顯示頻數,需使用plt.text()函數plt.show()(1)目標變量Y(漲跌)可視化分析首先觀察目標變量的分布情況,以評估數據樣本分布的平衡性。8.3滬深300指數分析8.3.2滬深300指數可視化分析#分組箱線圖importseabornassnsplt.figure(figsize=(14,10))fori,columninenumerate(features.columns,1):plt.subplot(3,5,i)sns.boxplot(x='漲跌',y=column,data=data_features_target)
ifi<=4:
plt.ylabel(f'{column}價(元)’)
ifi==5:
plt.ylabel(f'{column}(股)’)
ifi==6:
plt.ylabel(f'{column}(元)')plt.grid(False)#去除網格線plt.tight_layout()plt.show()(2)目標變量Y(漲跌)與各特征變量可視化分析由于目標變量屬于定性變量,其他各特征變量均為定量變量,因此可繪制分組箱線圖,用于觀察各特征變量與目標變量的數據關系。8.3滬深300指數分析8.3.2滬深300指數可視化分析#繪制開盤、收盤與SMA20的時間序列圖plt.rcParams['font.sans-serif']='SimHei'#設置中文顯示plt.figure(figsize=(10,5))plt.plot(data_features_target.index,data_features_target[‘開盤’],label=‘開盤價(元)')plt.plot(data_features_target.index,data_features_target[‘收盤’],label=‘收盤價(元)',linestyle=':')plt.plot(data_features_target.index,data_features_target['SMA20'],label='SMA20',linestyle='--')plt.xlabel('年')plt.ylabel(‘收盤價(元)')plt.legend()plt.show()(3)各特征變量可視化分析步驟1了解長期趨勢。8.3滬深300指數分析8.3.2滬深300指數可視化分析#經典風格K線圖importmplfinanceasmpf#重命名列以符合mplfinance的要求data_candle=data_features_target.copy()m=(data_candle.index>=‘2023-05-01’)&(data_candle.index<‘2024-05-24’)#截取部分數據以顯示價格變動data_candle=data_candle[m]data_candle.rename(columns={'開盤':'Open','最高':'High','最低':'Low','收盤':'Close','成交量':'Volume'},inplace=True)#創建一個包含必要列的新DataFramedata_candlestick=data_candle[['Open','High','Low','Close','Volume']]#繪制經典風格K線圖mpf.plot(data_candlestick,type='candle',mav=(5,20),volume=True,style='classic',ylabel='Price',ylabel_lower='Volume',datetime_format='%Y-%m',tight_layout=True,show_nontrading=False)(3)各特征變量可視化分析步驟2觀察短期波動。8.3滬深300指數分析8.3.2滬深300指數可視化分析#繪制日收益率時間序列圖plt.figure(figsize=(10,5))plt.plot(data_features_target.index,data_features_target['日收益率'],label='日收益率')plt.xlabel('年')plt.ylabel('日收益率')plt.show()(3)各特征變量可視化分析步驟3了解市場動態。繪制日收益率時間序列圖。#繪制RSI12指標圖plt.figure(figsize=(10,5))plt.plot(data_features_target.index,data_features_target['RSI12'],label='RSI12')plt.axhline(y=30,color='grey',linestyle='--')plt.axhline(y=70,color='grey',linestyle='--')plt.xlabel('年')plt.ylabel('RSI12值')plt.show()步驟4通過技術指標輔助判斷市場趨勢和股票的潛在買賣時機,分別繪制RSI12指標圖、MACD指標圖以及KDJ指標圖。8.4滬深300指數走勢預測8.4滬深300指數走勢預測模型構建前需進行訓練集和測試集的劃分,本案例選擇預測一個完整年度數據,因此將2019年到2022年全年數據作為訓練集、2023年全年數據作為測試集。8.4.1數據準備train=data_features_target[(data_features_target.index>'2019-01-01')&(data_features_target.index<='2022-12-31')]test=data_features_target[(data_features_target.index>='2023-01-01')&(data_features_target.index<='2023-12-31')]print(len(train),len(test))8.4滬深300指數走勢預測8.4.1數據準備運行代碼可知,訓練集有939條樣本,測試集有242條樣本。接下來,分別定義訓練集與測試集的特征變量與目標變量,并在訓練集上對數據進行標準化處理,然后使用訓練集擬合對象對測試集特征進行標準化,這樣處理后的數據集可以更好地用于機器學習模型的訓練和預測,示例代碼如下:fromsklearn.preprocessingimportStandardScaler#數據標準化X=train.drop(columns=['漲跌'])scaler=StandardScaler()X_train=scaler.fit_transform(X)y_train=train['漲跌']X_test=test.drop(columns=['漲跌'])X_test_scaled=scaler.transform(X_test)#測試集y_test=test['漲跌']?8.4滬深300指數走勢預測8.4.2??模型訓練及性能評價????通過sklearn庫構建3個分類模型,并輸出模型的準確率、分類報告和混淆矩陣,方便進行模型評價與對比,以下僅展示隨機森林的示例代碼:?fromsklearn.linear_modelimportLogisticRegressionfromsklearn.treeimportDecisionTreeClassifierfromsklearn.ensembleimportRandomForestClassifierfromsklearn.metricsimportaccuracy_score,classification_report,confusion_matrix,roc_curve,auc#隨機森林forest_clf=RandomForestClassifier(random_state=1)#固定隨機種子forest_clf.fit(X_train,y_train)forest_clf_pred=forest_clf.predict(X_test)forest_clf_prob=forest_clf.predict_proba(X_test)[:,1]forest_clf_acc=accuracy_score(y_test,forest_clf_pred)forest_clf_cm=confusion_matrix(y_test,forest_clf_pred)forest_clf_fpr,forest_clf_tpr,_=roc_curve(y_test,forest_clf_prob)forest_clf_auc=auc(forest_clf_fpr,forest_clf_tpr)print('隨機森林準確率:',forest_clf_auc)print('隨機森林分類報告:\n',classification_report(y_test,forest_clf_pred))print('隨機森林混淆矩陣:\n',forest_clf_cm)?同時,繪制ROC曲線和AUC值,便于進一步解釋模型效果,示例代碼如下:?#繪制ROC曲線plt.figure(figsize=(6,5))plt.rcParams['font.sans-serif']='SimHei'#設置中文顯示plt.plot(forest_clf_fpr,forest_clf_tpr,label=f'隨機森林(AUC={forest_clf_auc:.2f})',linestyle='--')plt.plot([0,1],[0,1],linestyle='--')plt.xlim([0.0,1.0])plt.ylim([0.0,1.05])plt.xlabel('FPR')plt.ylabel('TPR')plt.title('ROC曲線')plt.legend(loc="lowerright")plt.show()?代碼運行結果可提供模型對比的分析基礎。8.4滬深300指數走勢預測8.4.3模型預測結果通過模型性能評價和綜合對比,選擇性能最佳的模型隨機森林進行滬深300指數走勢預測,示例代碼如下:y_pred=forest_clf.predict(X_test)results=pd.DataFrame({'Actual':y_test,'Predicted':y_pred})#組合實際值和預測值results.sort_values('日期',ascending=False,inplace=True)#按日期倒序排列results.head()#輸出前5行結果8.5案例報告——基于數據挖掘的滬深300指數走勢預測8.5案例報告——基于數據挖掘的滬深300指數走勢預測滬深300指數作為我國A股市場的核心指數之一,對于投資者、金融機構以及監管層都具有重要的意義。深入了解滬深300指數的特點和應用,預測其走勢,對于把握市場動態、優化投資組合和制定市場策略具有重要作用。8.5.1背景介紹本案例以滬深300指數為研究對象,通過第三方數據接口獲取2019年1月2日到2024年5月23日(約5年)的每日歷史行情數據,然后對數據進行篩選和整合,共有1306條數據。在數據分析前需進行數據預處理。8.5.2數據說明(1)數據清洗經檢測,數據不存在重復值,但存在一定比例的缺失值,因此對缺失值進行刪除后,獲得1273條數據。8.5案例報告——基于數據挖掘的滬深300指數走勢預測8.5.2數據說明(2)數據指標計算與選取變量變量類型變量說明因變量漲跌定性變量1代表上漲,0代表下跌自變量日期日期時間類型交易日,本案例為2019年1月2日到2024年5月23日的滬深300指數歷史行情數據,已設置為索引開盤定量變量開盤價,單位:元收盤定量變量收盤價,單位:元最高定量變量最高價,單位:元最低定量變量最低價,單位:元成交量定量變量單位:股成交額定量變量單位:元日收益率定量變量反映投資在一天內的收益變化情況SMA20定量變量本數據為20日簡單移動平均線RSI12定量變量本數據為12日相對強弱指標MACD線定量變量本數據為12日和26日的平滑異同移動平均線MACD信號線定量變量MACD線的移動平均線MACD柱狀線定量變量MACD線與信號線之間的差異K線定量變量當前價格相對于一定時間段內的價格范圍的位置D線定量變量隨機值K的3周期移動平均線J線定量變量通過計算3倍的K線值減去2倍的D線值得到滬深300指數分析變量及其說明8.5案例報告——基于數據挖掘的滬深300指數走勢預測8.5.3滬深300指數分析(1)滬深300指數描述性分析因變量及各特征變量計數均為1273,其中開盤價、收盤價、最高價、最低價的均值分別為4210.93元、4212.68元、4240.82元、4180.70元。(2)滬深300指數可視化分析①目標變量Y(漲跌):通過繪制目標變量Y(漲跌)的柱形圖,可評估數據樣本的頻數統計和分布是否均衡,如圖8-3所示。漲、跌的頻數相差不大,分布較為均衡,其中跌的頻數略微高于漲,原因預計為含有部分持平的頻數。
目標變量Y(漲跌)柱形圖8.5案例報告——基于數據挖掘的滬深300指數走勢預測8.5.3滬深300指數分析(2)滬深300指數可視化分析②目標變量Y(漲跌)與各特征變量:
決策變量Y(漲跌)與各特征變量的分組箱線圖8.5案例報告——基于數據挖掘的滬深300指數走勢預測8.5.3滬深300指數分析(2)滬深300指數可視化分析③典型特征變量:開盤價、收盤價、SMA20長期趨勢。價格變動及成交量短期波動8.5案例報告——基于數據挖掘的滬深300指數走勢預測8.5.3滬深300指數分析(2)滬深300指數可視化分析日收益率市場波動:通過繪制日收益率時間序列圖,可進一步評估長期市場收益動態。技術指標:通過RSI12、MACD及KDJ指標,可進一步評估市場風險點及買入賣出節點。觀察RSI12指標圖可發現,2019年2月、2020年7月和2023年1月有部分時間RSI12指標超過70,表明滬深300指數在這幾個時間段可能處于超買狀態,而在2020年2月、2022年3和4月有部分時間RSI12指標低于30,可能處于超賣狀態。日收益率時間序列圖
技術指標圖從MACD指標圖可知,在2019年5月、2020年4月和2022年9月等部分時間點,MACD線穿越零軸,即從負值變為正值或從正值變為負值,表示該時間段內市場動力發生重大變化,并且2020年7月的MACD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CI 467-2024復合集流體(銅箔)
- T/SHBX 012-2024制藥一次性工藝袋泄漏測試方法壓力衰減法
- 上蔡小學六年級數學試題
- 上海安全管理試題及答案
- 2025新版二手房房屋買賣合同2篇
- 正規版個人租房合同范本4篇
- 臨時工委托合同6篇
- 代理合同-產品代理銷售合同2篇
- 工程返傭合同7篇
- T/ZHCA 029-2024化妝品舒緩功效測試角質形成細胞白介素-8生成抑制法
- 事故隱患內部報告獎勵制度
- 工學云周報范文200字
- 西方文論經典導讀智慧樹知到期末考試答案章節答案2024年浙江大學
- 中國居民膳食指南(全)
- 四川省職工住房補貼實施辦法
- 遼寧醫院明細.xls
- JYC全自動變頻抗干擾介質損耗測試儀
- 報考廣東警官學院考生政審表
- 《加工配方設計》PPT課件.ppt
- 綜合辦公室安全工作職責
- 質量環境及職業健康安全管理手冊
評論
0/150
提交評論