五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Python用GARCH對(duì)ADBL股票價(jià)格時(shí)間序列趨勢(shì)滾動(dòng)預(yù)測(cè)、損失、可視化分析

2023-08-09 19:52 作者:拓端tecdat  | 我要投稿

全文鏈接:https://tecdat.cn/?p=33398

原文出處:拓端數(shù)據(jù)部落公眾號(hào)

金融市場(chǎng)的股票價(jià)格時(shí)間序列分析一直以來(lái)都是投資者和研究者關(guān)注的主題之一。準(zhǔn)確預(yù)測(cè)股票價(jià)格的趨勢(shì)對(duì)于制定有效的投資策略和決策具有重要意義。因此,許多研究人員使用各種統(tǒng)計(jì)方法和模型來(lái)分析和預(yù)測(cè)股票價(jià)格的變動(dòng)。

本文的目標(biāo)是幫助客戶應(yīng)用GARCH模型對(duì)ADBL(ABC Development Bank Limited)股票價(jià)格的時(shí)間序列進(jìn)行分析和預(yù)測(cè),并通過(guò)可視化分析的方式展示結(jié)果。ADBL是尼泊爾地區(qū)最大的商業(yè)銀行之一,其股票價(jià)格波動(dòng)對(duì)投資者和研究者來(lái)說(shuō)具有重要意義。

首先,我們將收集ADBL股票價(jià)格的歷史數(shù)據(jù),并對(duì)其進(jìn)行描述性統(tǒng)計(jì)和可視化分析,以獲取對(duì)股票價(jià)格的初步認(rèn)識(shí)。然后,我們將使用GARCH模型對(duì)ADBL股票價(jià)格的波動(dòng)進(jìn)行建模,并通過(guò)模型參數(shù)的估計(jì)和模型檢驗(yàn)來(lái)驗(yàn)證模型的適應(yīng)性。

接下來(lái),我們將利用已建立的GARCH模型對(duì)ADBL股票價(jià)格的未來(lái)走勢(shì)進(jìn)行預(yù)測(cè)。預(yù)測(cè)結(jié)果將以圖表和可視化方式呈現(xiàn),以便讀者更加直觀地理解和分析。

最后,我們將對(duì)模型的預(yù)測(cè)效果進(jìn)行評(píng)估,并討論模型的局限性和未來(lái)研究的方向。通過(guò)本文的研究,我們希望為投資者和研究者提供一個(gè)有效的工具和方法,幫助他們更好地理解和預(yù)測(cè)ADBL股票價(jià)格的趨勢(shì)。

導(dǎo)入庫(kù)

# 廣義自回歸條件異方差(GARCH模型)from sklearn.model_selection import train_test_splitfrom sklearn.metrics import mean_squared_error ? ? plt.rcParams['figure.figsize'] = (12,6)

這段代碼的主要作用是導(dǎo)入所需的庫(kù)和模塊,為接下來(lái)的數(shù)據(jù)處理、圖表繪制和模型評(píng)估等操作提供必要的工具和函數(shù)。

導(dǎo)入數(shù)據(jù)

# df = df[df['Date'] >= '2015-01-01']df.head() ? ? ? ?

這段代碼主要是導(dǎo)入數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行處理的操作。具體而言,代碼的功能如下:

  1. pd.read_csv('ADBL_data.csv'): 使用?pandas?庫(kù)的?read_csv()?函數(shù)讀取名為 "ADBL_data.csv" 的 CSV 文件,并將數(shù)據(jù)加載到一個(gè)名為?df?的數(shù)據(jù)框(DataFrame)中。

  2. df['Date'] = pd.to_datetime(df.Date): 將?df?數(shù)據(jù)框中的 "Date" 列轉(zhuǎn)換為日期時(shí)間類型。這里使用?pd.to_datetime()?函數(shù)將日期字符串轉(zhuǎn)換為日期時(shí)間格式。

  3. # df = df[df['Date'] >= '2015-01-01']: 這一行代碼是對(duì)數(shù)據(jù)進(jìn)行篩選的注釋,表示根據(jù)日期進(jìn)行過(guò)濾,只保留日期大于等于 "2015-01-01" 的數(shù)據(jù)。注釋符號(hào)?#?表示該行代碼不會(huì)被執(zhí)行。

  4. df.head(): 打印輸出?df?數(shù)據(jù)框的前幾行數(shù)據(jù),默認(rèn)顯示前5行。通過(guò)調(diào)用?head()?方法可以快速查看數(shù)據(jù)框的結(jié)構(gòu)和內(nèi)容。

綜上所述,這段代碼的作用是讀取名為 "ADBL_data.csv" 的 CSV 文件,并將其加載到名為?df?的數(shù)據(jù)框中。然后對(duì)數(shù)據(jù)進(jìn)行了格式轉(zhuǎn)換并打印出前幾行的數(shù)據(jù)。?

"ADBL的時(shí)間序列圖"

plt.ylabel("Price")plt.show()

df.reset_index(drop=True, inplace=True)df

df.returns.plot() plt.show()

df.returns.describe()

? ? # "平方股票收益的自相關(guān)圖"plot_acf(df.returns**2)plt.show() ? ?

從ACF圖中可以看出,在1個(gè)滯后時(shí)間步長(zhǎng)內(nèi),方差存在顯著的正相關(guān)關(guān)系。

識(shí)別 p 和 q

# 基于最小AIC確定的最佳p和q項(xiàng)for p in range(1, 15): ?for q in range(1, 15): ? ?try: ? ? print(f'GARCH order is ({p}, {q})') ? ?

?這段代碼的主要功能是基于最小化赤池信息準(zhǔn)則(AIC)來(lái)確定 GARCH 模型的最佳 p 和 q 值。具體而言,代碼的執(zhí)行過(guò)程如下:

  1. 創(chuàng)建一個(gè)空字典?dict_aic,用于保存每個(gè)不同 p 和 q 值組合對(duì)應(yīng)的 AIC 值。

  2. 使用兩個(gè)嵌套的循環(huán)遍歷從 1 到 14 的所有整數(shù)值。外層循環(huán)控制 p 值的范圍,內(nèi)層循環(huán)控制 q 值的范圍。

  3. 在每次循環(huán)迭代中,嘗試構(gòu)建一個(gè) GARCH 模型,其中 vol 參數(shù)設(shè)為 'Garch',p 參數(shù)設(shè)為當(dāng)前的外層循環(huán)變量 p,q 參數(shù)設(shè)為當(dāng)前的內(nèi)層循環(huán)變量 q。

  4. 如果成功擬合模型,則計(jì)算該模型的 AIC 值,并將其保存到?dict_aic?字典中對(duì)應(yīng)的鍵值對(duì)中,鍵為 (p, q),值為 AIC 值。

綜上所述,這段代碼的作用是通過(guò)遍歷多個(gè) p 和 q 值的組合,并擬合 GARCH 模型來(lái)計(jì)算對(duì)應(yīng)的 AIC 值。然后,基于最小 AIC 值確定最佳的 p 和 q 值,并輸出結(jié)果。

訓(xùn)練/測(cè)試分割

# 將訓(xùn)練集和測(cè)試集按照70/30的比例分割st.shape)

模型訓(xùn)練

model.summary()

?這段代碼的目的是使用 GARCH 模型對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行擬合,并打印出模型的摘要信息。

具體而言,代碼的執(zhí)行流程如下:

  1. 創(chuàng)建一個(gè) GARCH 模型對(duì)象并將其賦值給變量?model,其中?X_train?是作為訓(xùn)練數(shù)據(jù)的輸入。vol='Garch'?表示使用 GARCH 方式進(jìn)行建模。p?和?q?是 GARCH 模型中的參數(shù),分別表示 ARCH 部分和 GARCH 部分的滯后階數(shù)。

綜上所述,這段代碼的作用是創(chuàng)建一個(gè) GARCH 模型對(duì)象并使用訓(xùn)練數(shù)據(jù)進(jìn)行擬合,然后打印出模型的摘要信息,以便查看模型擬合的結(jié)果和相關(guān)統(tǒng)計(jì)指標(biāo)。

測(cè)試集上的滾動(dòng)預(yù)測(cè)

# 基于滾動(dòng)測(cè)試集預(yù)測(cè)波動(dòng)性。forecasts = list()for i in range(X_test.shape[0]): ? ?forecasts.appe

這段代碼的目的是基于滾動(dòng)測(cè)試集預(yù)測(cè)波動(dòng)性。

具體而言,代碼的執(zhí)行流程如下:

  1. 創(chuàng)建一個(gè)空列表?forecasts,用于保存每個(gè)時(shí)間點(diǎn)的波動(dòng)性預(yù)測(cè)結(jié)果。

  2. 進(jìn)行一個(gè)循環(huán),循環(huán)次數(shù)根據(jù)測(cè)試數(shù)據(jù)的行數(shù)來(lái)確定,每次循環(huán)表示一個(gè)時(shí)間點(diǎn)的波動(dòng)性預(yù)測(cè)。

  3. 在每次循環(huán)迭代中,首先獲取用于預(yù)測(cè)的測(cè)試數(shù)據(jù)。通過(guò)?df.returns[:-(X_test.shape[0] - i)]?獲取了從開(kāi)始到當(dāng)前循環(huán)迭代索引位置的訓(xùn)練數(shù)據(jù)。

  4. 創(chuàng)建一個(gè) GARCH 模型對(duì)象,并將預(yù)測(cè)數(shù)據(jù)作為輸入。模型對(duì)象中的?p?和?q?參數(shù)由之前確定的值指定。

綜上所述,這段代碼的作用是在每個(gè)時(shí)間點(diǎn)上,基于滾動(dòng)的測(cè)試數(shù)據(jù)來(lái)預(yù)測(cè)波動(dòng)性。通過(guò)一個(gè)循環(huán),在每次循環(huán)迭代中,根據(jù)當(dāng)前的訓(xùn)練數(shù)據(jù)來(lái)構(gòu)建 GARCH 模型,并使用該模型進(jìn)行波動(dòng)性預(yù)測(cè),將預(yù)測(cè)結(jié)果保存在?forecasts?列表中。

損失分析

from sklearn.metri# 計(jì)算均方根誤差testScore = mean_sq

# 參考訓(xùn)練集最后一個(gè)指數(shù)的實(shí)際收盤價(jià),根據(jù)預(yù)測(cè)收益生成收盤價(jià)# 今日值 = 昨日值 + (pct_returns * 昨日值) / 100pred_vals = []for i in range(len(forecasts)): ?if pred_vals: ? ?pre# 今日值 = 昨日值 + (pct_returns * 昨日值) / 100testSco

date_range = df['Date'][-X_test.shape[0]:] ? ? plt.title(plt.legend(fontsize=14)plt.show()


?最受歡迎的見(jiàn)解

1.R語(yǔ)言對(duì)S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略

2.R語(yǔ)言改進(jìn)的股票配對(duì)交易策略分析SPY—TLT組合和中國(guó)股市投資組合

3.R語(yǔ)言時(shí)間序列:ARIMA GARCH模型的交易策略在外匯市場(chǎng)預(yù)測(cè)應(yīng)用

4.TMA三均線期指高頻交易策略的R語(yǔ)言實(shí)現(xiàn)

5.r語(yǔ)言多均線量化策略回測(cè)比較

6.用R語(yǔ)言實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)股票實(shí)例

7.r語(yǔ)言預(yù)測(cè)波動(dòng)率的實(shí)現(xiàn):ARCH模型與HAR-RV模型

8.R語(yǔ)言如何做馬爾科夫轉(zhuǎn)換模型markov switching model

9.matlab使用Copula仿真優(yōu)化市場(chǎng)風(fēng)險(xiǎn)


Python用GARCH對(duì)ADBL股票價(jià)格時(shí)間序列趨勢(shì)滾動(dòng)預(yù)測(cè)、損失、可視化分析的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
松桃| 象州县| 施甸县| 五河县| 海南省| 蒙自县| 盈江县| 韶关市| 元谋县| 资阳市| 丹寨县| 佛冈县| 麻城市| 平邑县| 招远市| 大理市| 榆树市| 阿鲁科尔沁旗| 定兴县| 墨江| 达孜县| 渝北区| 九江县| 宁陵县| 辽阳市| 裕民县| 长沙市| 四平市| 谢通门县| 新郑市| 缙云县| 肇源县| 扬州市| 泉州市| 衢州市| 青浦区| 永济市| 德江县| 垣曲县| 宣化县| 来凤县|