《金融建模基礎(chǔ)》課件第5章-結(jié)合金融場(chǎng)景演示 SciPy 等模塊編程_第1頁(yè)
《金融建?;A(chǔ)》課件第5章-結(jié)合金融場(chǎng)景演示 SciPy 等模塊編程_第2頁(yè)
《金融建?;A(chǔ)》課件第5章-結(jié)合金融場(chǎng)景演示 SciPy 等模塊編程_第3頁(yè)
《金融建?;A(chǔ)》課件第5章-結(jié)合金融場(chǎng)景演示 SciPy 等模塊編程_第4頁(yè)
《金融建?;A(chǔ)》課件第5章-結(jié)合金融場(chǎng)景演示 SciPy 等模塊編程_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

結(jié)合金融場(chǎng)景演示DESIGNED&WORDPRESSALLBYALONIC主講老師王海英SciPy等模塊編程目錄CONTENTS5.1

SciPy模塊5.2

statsmodels模塊5.3

波動(dòng)率模型與arch模塊5.4

datetime模塊5.5

本章小結(jié)&拓展閱讀在對(duì)復(fù)雜的金融產(chǎn)品進(jìn)行估值時(shí),經(jīng)常會(huì)用到積分。下面,就以金融領(lǐng)域常用的標(biāo)準(zhǔn)正態(tài)分布作為示例介紹如何通過(guò)SciPy求積分。在2.5.1節(jié)介紹過(guò),如果隨機(jī)變量x服從標(biāo)準(zhǔn)正態(tài)分布,則它的概率密度函數(shù)如下:5.1SciPy模塊5.1.1求積分從表5-2不難發(fā)現(xiàn),不同的積分函數(shù)計(jì)算得到的結(jié)果會(huì)存在細(xì)微的差異。其中,函數(shù)quad、quadrature和romberg得到的結(jié)果之間的差異至少發(fā)生在小數(shù)點(diǎn)后的第9位;但是,函數(shù)fixed_quad與其他3個(gè)函數(shù)計(jì)算結(jié)果之間的差異在小數(shù)點(diǎn)后的第4位就出現(xiàn)了。金融領(lǐng)域經(jīng)常運(yùn)用到插值法,比如針對(duì)利率曲線的擬合,通過(guò)導(dǎo)入SciPy的子模塊interpolate可以進(jìn)行插值運(yùn)算,并且最常用的是一維數(shù)據(jù)的插值運(yùn)算,需要通過(guò)函數(shù)interp1d完成,注意函數(shù)中的1是阿拉伯?dāng)?shù)字1而不是英文小寫字母l。該函數(shù)的主要格式和參數(shù)如右:interp1d(x,y,kind),其中,x和y是一系列已知的數(shù)據(jù)點(diǎn),并且有y=f(x)的函數(shù)關(guān)系式;kind表示求插值的具體方法,常用的方法見表5-3。5.1SciPy模塊5.1.2插值法結(jié)合以上的分析和圖5-1,可以發(fā)現(xiàn)運(yùn)用最鄰近插值法和階梯插值法得到的4年期國(guó)債到期收益率是相同的。相比之下,運(yùn)用線性插值法、2階樣條曲線插值法、3階樣條曲線插值法所得到的結(jié)果則均不相同。5.1SciPy模塊5.1.3求解方程組1.運(yùn)用solve函數(shù)求解求解方程組是一項(xiàng)比較煩瑣的工作,但是運(yùn)用SciPy子模塊linalg就可以輕松求解方程組,具體是運(yùn)用函數(shù)solve,該函數(shù)的格式和參數(shù)如右:

其中,參數(shù)a必須是N行、N列的數(shù)組,相當(dāng)于方程組等號(hào)左邊的系數(shù)矩陣;b是包括N個(gè)元素的一維數(shù)組,相當(dāng)于方程組等號(hào)右邊的向量。下面,就運(yùn)用solve函數(shù)求解例5-3中的4只股票權(quán)重,具體的代碼如右:2.運(yùn)用fsolve函數(shù)求解同時(shí),對(duì)于例5-3也可以運(yùn)用SciPy的子模塊optimize中的fsolve函數(shù)求解,該函數(shù)的格式如右:

其中,func代表求解的方程式,需要通過(guò)def語(yǔ)法自定義一個(gè)函數(shù);x0表示初始猜測(cè)的解。5.1SciPy模塊5.1.4最優(yōu)化方法在金融領(lǐng)域,無(wú)論是定價(jià)還是資產(chǎn)配置,求解最優(yōu)值都是一項(xiàng)最基礎(chǔ)的工作。同時(shí),在求解最優(yōu)值的過(guò)程中,需要面臨諸多的約束條件,包括資金的約束、權(quán)重的約束、風(fēng)險(xiǎn)暴露的約束等。所以,許多金融問(wèn)題抽象而言就是求解帶約束條件的最大值或最小值。1.一個(gè)案例該投資機(jī)構(gòu)的資金為1億元,以2020年12月31日的收盤價(jià)投資,希望實(shí)現(xiàn)投資組合收益率的最大化,同時(shí)要求整個(gè)投資組合的平均市盈率不超過(guò)15倍。此外,每只股票不允許賣空,需計(jì)算應(yīng)該配置的每只股票權(quán)重和股數(shù)。對(duì)于這個(gè)示例,假設(shè)第i只股票的股價(jià)用Pi表示,年化收益率用Ri表示,市盈率用γi表示,在投資組合中的權(quán)重用wi表示,i=1,2,,5"。用數(shù)學(xué)表達(dá)式表述以上的最優(yōu)問(wèn)題,具體如右:5.1SciPy模塊2.具體的Python演示以例5-4作為示例演示如何運(yùn)用SciPy求解最優(yōu)值,一共分為3個(gè)步驟。第1步:計(jì)算每只股票的最優(yōu)配置權(quán)重。具體的代碼如下:第2步:根據(jù)每只股票的最優(yōu)配置權(quán)重,計(jì)算得到該投資組合的最高期望收益率。具體的代碼如下:第3步:當(dāng)投資組合的期望收益率最高時(shí),計(jì)算對(duì)應(yīng)購(gòu)買每只股票的股票數(shù)量。注意,計(jì)算股票數(shù)量時(shí)需要向下取整,也就是運(yùn)用1.5.1節(jié)介紹的int函數(shù)(見表1-11)。具體的代碼如下:5.1SciPy模塊3.變更的案例【例5-5】沿用例5-4的信息,但是由于該投資機(jī)構(gòu)看好未來(lái)A股市場(chǎng),導(dǎo)致風(fēng)險(xiǎn)的偏好有所提升,因此需要改變一個(gè)約束條件,即把原先的整體投資組合的平均市盈率“不超過(guò)15倍”變更為“不超過(guò)20倍”,其他的條件都不變,需要重新計(jì)算投資組合中每只股票配置的最優(yōu)權(quán)重和股數(shù),具體分為兩個(gè)步驟。第1步:計(jì)算在新的約束條件下,每只股票配置的最優(yōu)權(quán)重以及投資組合的收益率。具體的代碼如下:以上的結(jié)果表明,變更了約束條件以后,相比原先的權(quán)重?cái)?shù)據(jù),中國(guó)國(guó)航、上海醫(yī)藥以及永輝超市的權(quán)重依然為0;同時(shí),工商銀行的權(quán)重下降至1.55%,長(zhǎng)江電力的權(quán)重則上升至98.45%。同時(shí),由于風(fēng)險(xiǎn)偏好提升,因此整個(gè)投資組合的最高期望收益率同步上升至21.42%,這也說(shuō)明了投資機(jī)構(gòu)如要承擔(dān)更高的風(fēng)險(xiǎn)則需要更高的預(yù)期回報(bào)率給予補(bǔ)償。第2步:計(jì)算在新的約束條件下,每只股票配置的最優(yōu)股票數(shù)量。具體的代碼如下:以上計(jì)算的股票數(shù)量依然未考慮A股市場(chǎng)的交易規(guī)則。5.1SciPy模塊5.1.5統(tǒng)計(jì)功能在SciPy中,也有一個(gè)專門的統(tǒng)計(jì)分析子模塊stats,其相關(guān)功能包括描述性統(tǒng)計(jì)、概率分析和正態(tài)性統(tǒng)計(jì)檢驗(yàn)等,下面依次介紹。1.描述性統(tǒng)計(jì)【例5-6】以A股市場(chǎng)的中小板指數(shù)和創(chuàng)業(yè)板指數(shù)2018年至2020年的日漲跌幅數(shù)據(jù)作為分析對(duì)象,表5-7列出了部分?jǐn)?shù)據(jù)。下面,就運(yùn)用SciPy子模塊stats的統(tǒng)計(jì)函數(shù)進(jìn)行演示,分為兩個(gè)步驟。需要提醒的是,由于分析對(duì)象包括中小板指數(shù)和創(chuàng)業(yè)板指數(shù)這兩個(gè)變量,因此在表5-8輸出結(jié)果的每個(gè)數(shù)組中均包含兩個(gè)元素:第一個(gè)元素對(duì)應(yīng)中小板指數(shù),第二個(gè)元素對(duì)應(yīng)創(chuàng)業(yè)板指數(shù)。5.1SciPy模塊在子模塊stats中,也有與NumPy類似的分布函數(shù)。表5-9整理了金融領(lǐng)域比較常用的分布函數(shù)。2.概率分析通過(guò)若干個(gè)示例演示表5-10的部分函數(shù)用法:5.1SciPy模塊在金融領(lǐng)域,許多模型首先會(huì)假定變量的樣本值是服從正態(tài)分布的,因此在構(gòu)建金融模型之前,需要對(duì)樣本數(shù)據(jù)開展正態(tài)性檢驗(yàn),根據(jù)檢驗(yàn)結(jié)果確定下一步的分析與建模方案。子模塊stats提供了檢驗(yàn)變量分布的多種函數(shù),具體的函數(shù)如表5-11所示。3.正態(tài)性統(tǒng)計(jì)檢驗(yàn)【例5-11】沿用例5-6的信息,檢驗(yàn)中小板指數(shù)和創(chuàng)業(yè)板指數(shù)2018年至2020年的日漲跌幅數(shù)據(jù)是否服從正態(tài)分布,并且依次運(yùn)用KS檢驗(yàn)、Anderson-Darling檢驗(yàn)、Shapiro-Wilk檢驗(yàn)等方法進(jìn)行檢驗(yàn),相關(guān)的檢驗(yàn)共分為4個(gè)步驟。注意,在輸出的結(jié)果中,第1個(gè)數(shù)組代表統(tǒng)計(jì)量,第2個(gè)數(shù)組代表P值。顯然normaltest函數(shù)的結(jié)果依然表明在1%的顯著性水平上拒絕中小板指數(shù)、創(chuàng)業(yè)板指數(shù)的日漲跌幅服從正態(tài)分布的假設(shè)。綜合以上的4種檢驗(yàn)方法,可以得出中小板指數(shù)、創(chuàng)業(yè)板指數(shù)的日漲跌幅均不服從正態(tài)分布的結(jié)論。statsmodels最早起源于SciPy子模塊stats中的models工具包,最初由喬納森·泰勒(JonathanTaylor)編寫,但后來(lái)從SciPy中被移除了。在2009年的谷歌代碼夏季峰會(huì)(GoogleSummerofCode)期間,其經(jīng)過(guò)修正、測(cè)試、改進(jìn)并最終以全新的獨(dú)立模塊statsmodels對(duì)外發(fā)布。此后,statsmodels的開發(fā)團(tuán)隊(duì)不斷添加新模型、繪圖工具和統(tǒng)計(jì)方法,使得它最終成為一款功能強(qiáng)大的統(tǒng)計(jì)分析工具包。在使用該模塊之前依然需要導(dǎo)入并且查看版本信息,具體的代碼如下:5.2statsmodels模塊第1步:導(dǎo)入statsmodels的子模塊api。第2步:除了導(dǎo)入相關(guān)的因變量(被解釋變量)、自變量(解釋變量)的數(shù)據(jù)以外,還需要對(duì)自變量的數(shù)據(jù)增加一列常數(shù)項(xiàng)。第3步:構(gòu)建相關(guān)的線性回歸模型。在這一步中,可以根據(jù)需要運(yùn)用不同的線性回歸模型,具體的模型類型和對(duì)應(yīng)的函數(shù)如表5-12所示。第4步:用fit函數(shù)創(chuàng)建一個(gè)線性回歸的結(jié)果對(duì)象,結(jié)果對(duì)象包含線性回歸模型的結(jié)果參數(shù)和模型診斷信息。下面就通過(guò)交通銀行A股與H股的案例具體演示如何運(yùn)用statsmodels構(gòu)建普通最小二乘法回歸模型。5.2statsmodels模塊從以上的描述性統(tǒng)計(jì)可以看到,無(wú)論是交通銀行A股還是H股,日平均收益率均為負(fù)數(shù),并且H股收益率的標(biāo)準(zhǔn)差略高于A股,這在一定程度上說(shuō)明H股的風(fēng)險(xiǎn)會(huì)略高于A股。第2步:導(dǎo)入statsmodels的子模塊api;同時(shí),以交通銀行H股日收益率作為因變量,A股日收益率作為自變量,構(gòu)建普通最小二乘法回歸模型。具體的代碼如右:輸出結(jié)果中,R-squared代表線性回歸模型的判定系數(shù),Adj.R-squared代表矯正的判定系數(shù)(適用于有多個(gè)自變量的多元回歸模型)。本例的判定系數(shù)等于0.246表明交通銀行H股收益率有24.6%可以通過(guò)交通銀行A股收益率進(jìn)行解釋;自變量的P值等于0.00表明交通銀行A股作為解釋變量在1%的顯著性水平下是顯著的,這意味著交通銀行A股確實(shí)是影響交通銀行H股收益率的一個(gè)重要因子;同時(shí),自變量的系數(shù)coef等于0.6388表明當(dāng)交通銀行A股收益率變化1%時(shí),可以導(dǎo)致交通銀行H股收益率變化0.6388×1%=0.6388%。5.2statsmodels模塊第3步:結(jié)合散點(diǎn)圖對(duì)線性回歸模型進(jìn)行可視化(見圖5-4)。具體的代碼如下:圖5-4中的直線就是基于圖中的散點(diǎn)同時(shí)運(yùn)用普通最小二乘法回歸模型擬合得到的線性結(jié)果。通過(guò)對(duì)圖5-4仔細(xì)觀察可以發(fā)現(xiàn),圖中的大多數(shù)散點(diǎn)是集中在直線附近的,也有少數(shù)散點(diǎn)是遠(yuǎn)離直線的。在衍生產(chǎn)品定價(jià)和風(fēng)險(xiǎn)管理中,我們對(duì)當(dāng)前波動(dòng)率是很感興趣的,這是因?yàn)樾枰獙?duì)單一金融資產(chǎn)或者投資組合在一個(gè)較短時(shí)間內(nèi)的價(jià)值變化進(jìn)行估計(jì);同時(shí),在對(duì)衍生產(chǎn)品定價(jià)時(shí),往往需要對(duì)衍生產(chǎn)品整個(gè)期限內(nèi)的波動(dòng)率進(jìn)行預(yù)測(cè),這就需要用到波動(dòng)率模型。波動(dòng)率模型的一個(gè)顯著特點(diǎn)是假設(shè)波動(dòng)率不是常數(shù),具體而言就是在某些期間波動(dòng)率可能相對(duì)較低,而在其他期間波動(dòng)率可能相對(duì)較高,以跟蹤波動(dòng)率隨時(shí)間的變化。最常用的波動(dòng)率模型主要有兩個(gè):一個(gè)是自回歸條件異方差(Auto-RegressiveConditionalHeteroscedasticity,ARCH)模型,另一個(gè)是廣義自回歸條件異方差(GeneralizedAuto-RegressiveConditionalHeteroscedasticity,GARCH)模型。本節(jié)將重點(diǎn)討論估計(jì)波動(dòng)率的方法、主要的波動(dòng)率模型以及用于波動(dòng)率建模的第三方模塊5.3波動(dòng)率模型與arch模塊5.3.1估計(jì)波動(dòng)率5.3波動(dòng)率模型與arch模塊5.3.2ARCH模型ARCH模型是過(guò)去數(shù)十年里金融計(jì)量學(xué)領(lǐng)域最重大的創(chuàng)新之一。在所有的波動(dòng)率模型中,基于ARCH模型而衍生出來(lái)的模型無(wú)論是理論研究的深度還是實(shí)際運(yùn)用的廣度都是獨(dú)一無(wú)二的。5.3波動(dòng)率模型與arch模塊5.3.3GARCH模型5.3.4arch模塊arch模塊是用于構(gòu)建波動(dòng)率模型和其他金融計(jì)量模型的Python第三方模塊,目前主要功能包括單變量波動(dòng)率模型、拔靴法或自舉法(bootstrapping)、多對(duì)比分析過(guò)程以及單位根檢驗(yàn)。由于該模塊未能集成在Anaconda中,因此可以通過(guò)打開AnacondaPrompt,并且輸入以下命令在線安裝該模塊的最新版本:pipinstallarch由于arch模塊是第三方模塊,因此在調(diào)用前需要導(dǎo)入模塊并且查看版本信息,具體的代碼如下:In[80]:importarch#導(dǎo)入arch模塊In[81]:arch.__version__#查看版本信息Out[81]:'4.15'5.3波動(dòng)率模型與arch模塊在arch模塊中,構(gòu)建ARCH模型和GARCH模型需要運(yùn)用arch_model函數(shù),該函數(shù)的格式及常用參數(shù)如下:arch_model(y,x,mean,lags,vol,p,o,q,dist)arch_model函數(shù)的主要參數(shù)及其含義如表5-14所示。需要注意的是,arch_model函數(shù)返回的結(jié)果是一個(gè)結(jié)果類的對(duì)象,需要針對(duì)結(jié)果運(yùn)用fit函數(shù)154第5章結(jié)合金融場(chǎng)景演示SciPy等模塊編程進(jìn)行擬合并得到擬合結(jié)果的對(duì)象,然后針對(duì)擬合結(jié)果的對(duì)象運(yùn)用summary函數(shù)輸出最終的模型參數(shù)和統(tǒng)計(jì)量,該代碼處理方式與5.2節(jié)構(gòu)建線性回歸模型是非常類似的。下面就通過(guò)A股市場(chǎng)中小板指數(shù)的案例進(jìn)行演示。5.3波動(dòng)率模型與arch模塊【例5-13】沿用例5-6中的相關(guān)信息,對(duì)2018年至2020年中小板指數(shù)的日漲跌幅構(gòu)建波動(dòng)率模型,選用的模型是ARCH(1)模型和GARCH(1,1)模型,具體分為4個(gè)步驟。5.3波動(dòng)率模型與arch模塊通過(guò)對(duì)圖5-5和圖5-6的目測(cè)可以發(fā)現(xiàn),ARCH(1)模型和GARCH(1,1)模型的標(biāo)準(zhǔn)化殘差時(shí)間序列是比較相似的;相反,這兩個(gè)模型的條件波動(dòng)率時(shí)間序列則存在著一定的差異。5.4datetime模塊金融變量的取值往往與時(shí)間是密不可分的。Python擁有一個(gè)內(nèi)置的處理時(shí)間對(duì)象的datetime模塊,該模塊以簡(jiǎn)單的方式提供日期和時(shí)間,它不僅支持日期和時(shí)間的算法,而且能實(shí)現(xiàn)屬性的提取以及格式的輸出與操作。datetime模塊主要包含六大時(shí)間類型,具體見表5-15。由于金融領(lǐng)域最常用的是datetime模塊中的datetime類型,因此本節(jié)主要圍繞datetime類型展開。首先依然需要導(dǎo)入datetime模塊,具體的代碼如下:In[92]:importdatetimeasdt

#導(dǎo)入datetime模塊并縮寫為dt5.4.1創(chuàng)建時(shí)間對(duì)象datetime類型的主要格式以及參數(shù)如下:datetime(year,month,day,hour,minute,second,microsecond,tzinfo)其中,參數(shù)year、month、day為必填項(xiàng),其余為選填項(xiàng)。下面通過(guò)若干個(gè)示例演示如何創(chuàng)建時(shí)間對(duì)象。5.4datetime模塊5.4.2訪問(wèn)時(shí)間對(duì)象的屬性時(shí)間對(duì)象的屬性包括年(year)、月(month)、日(day)、時(shí)(hour)、分(minute)、秒(second)、微秒(microsecond)等。以例5-15中創(chuàng)建的時(shí)間對(duì)象T2為例,演示訪問(wèn)時(shí)間對(duì)象的具體屬性和相關(guān)代碼,具體見表5-16。5.4.3時(shí)間對(duì)象的運(yùn)算1.時(shí)間對(duì)象的比較在金融領(lǐng)域,有時(shí)需要比較兩個(gè)時(shí)間的大小關(guān)系。在Python中關(guān)于時(shí)間對(duì)象的比較有兩種處理方式:一種是運(yùn)用datetime模塊的內(nèi)置函數(shù),另一種是直接運(yùn)用Python的關(guān)系運(yùn)算符號(hào)(參見1.4.2節(jié)的表1-8)。結(jié)合例5-14至例5-16中創(chuàng)建的時(shí)間對(duì)象,表5-17歸納了這兩種比較的處理方式以及相關(guān)代碼的演示。5.4datetime模塊2.時(shí)間間隔的計(jì)算在對(duì)金融產(chǎn)品定價(jià)的過(guò)程中,需要計(jì)算不同時(shí)間之間的間隔長(zhǎng)度,比如金融產(chǎn)品的定價(jià)日距離到期日的剩余天數(shù)。在datetime模塊中,可以方便地計(jì)算不同時(shí)間對(duì)象之間的間隔長(zhǎng)度,主要運(yùn)用days、seconds和microseconds等函數(shù),其中seconds函數(shù)和microseconds函數(shù)在金融高頻交易中被廣泛運(yùn)用。結(jié)合例5-14至例5-16中創(chuàng)建的時(shí)間對(duì)象,表5-18列出了相關(guān)函數(shù)的功能以及代碼的演示。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論