最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

PYTHON 用幾何布朗運(yùn)動模型和蒙特卡羅MONTE CARLO隨機(jī)過程模擬股票價格可視化分析耐克

2023-01-13 23:52 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=27099

最近我們被客戶要求撰寫關(guān)于模擬股票價格的研究報告,包括一些圖形和統(tǒng)計輸出。

金融資產(chǎn)/證券已使用多種技術(shù)進(jìn)行建模。該項目的主要目標(biāo)是使用幾何布朗運(yùn)動模型和蒙特卡羅模擬來模擬股票價格。該模型基于受乘性噪聲影響的隨機(jī)(與確定性相反)變量

該項目分兩部分完成:

  1. 第一部分涉及為幾何布朗運(yùn)動編寫代碼,并檢查和驗證它是否工作。這是使用 Python 中的幾個函數(shù)完成的,并使用迭代設(shè)置將后續(xù)股票價格建模為馬爾可夫鏈,給定初始起始價格 S0。驗證過程包括運(yùn)行多個模擬或隨機(jī)游走樣本,然后檢查結(jié)果分布,以查看股票價格、收益和波動性是否滿足某些屬性和假設(shè)。

  2. 第二階段涉及探索,將模型實際應(yīng)用于實際股票價格,并使用耐克股票的真實股票數(shù)據(jù)進(jìn)行回測。模擬是通過獲取收益率 μ 和波動率 σ 的樣本值并觀察股票價格演變的模擬數(shù)據(jù)和真實數(shù)據(jù)之間的相關(guān)程度來完成的。

模擬需要大約 10-15 分鐘才能完全運(yùn)行。請注意,對模擬結(jié)果的所有解釋都是通過解釋價格水平和收益率的結(jié)果分布的均值和方差等參數(shù)來完成的。

假設(shè)

此項目中使用了以下變量和符號列表:

  1. S0 - 初始股票價格

  2. St - 時間的股票價格,t

  3. μ - 在特定時間段內(nèi)平均的股票收益(漂移)率

  4. σ - 在特定時間段內(nèi)平均的股票波動率(標(biāo)準(zhǔn)差)

  5. dt - 模擬的時間步長,對應(yīng)于一天內(nèi)股票價格采樣的頻率

  6. N - 模擬的總天數(shù)。

  7. r - 無風(fēng)險利率,任何人都可以借/貸

還對股票市場/價格做出了以下假設(shè)。雖然這些假設(shè)確實有助于大大簡化模型,但它們非常現(xiàn)實,有助于在理想情況下制定模型。

  1. 股票價格遵循馬爾科夫過程,即是無記憶的,隨后的股票價格僅取決于當(dāng)前價值,而不取決于任何先前的價值。

  2. 與 N 相比,考慮的時間步長 dt 較短,即 Ndt>>1

  3. 市場完整高效,不存在套利機(jī)會。

  4. 沒有股息、交易成本或稅收考慮。

**

拓端

,贊8

**

拓端

,贊16

維納過程和幾何布朗運(yùn)動

維納過程(也稱為布朗運(yùn)動)是一個具有連續(xù)變量和連續(xù)時間的馬爾可夫過程。對于隨機(jī)變量 z,它有兩個重要的性質(zhì):

  1. 所有的 Δz 都是統(tǒng)計獨(dú)立的。

  2. dz = εdt

其中 ? 來自正態(tài)分布

通過將漂移項 a(x,t)dt 添加到隨機(jī)過程 dz 上,可以將維納過程進(jìn)一步推廣到 Ito 過程。?

對于股票價格,上述方程是 Ito 過程,也稱為幾何布朗運(yùn)動,描述了隨時間的隨機(jī)變化。請注意,μ 和 σ 分別是瞬時漂移和標(biāo)準(zhǔn)偏差率。S 遵循一個受乘性噪聲影響的隨機(jī)過程。這里還需要注意的是,幾何布朗運(yùn)動模型避免了負(fù)股票價格的問題。

為股票價格的解決方案建模

上述隨機(jī)微分方程 (SDE) 具有以下形式的解析解:

請注意,在上述等式中,常數(shù) μ 和 σ 分別對應(yīng)于股票價格的百分比漂移(收益)和百分比波動(標(biāo)準(zhǔn)差)率。Wt 指的是由 dz=?dt 給出的維納過程,如上所述。該解方程用于以下列方式迭代計算每個時間步的 St:

這里,t 是計算的時間步長,每個 St 僅取決于之前的起始價格 St?1,這是布朗運(yùn)動模型所要求的,因為它是一個馬爾可夫過程。請注意,通過選擇一個小的時間步長,我們可以接近連續(xù)時間的極限。

因此,給定某個時間步長,隨后的每個股票價格 St 完全由三個參數(shù)描述:

  1. 初始“開始”價格,St?1

  2. 百分比收益(漂移)率,μ

  3. 波動率或標(biāo)準(zhǔn)偏差率,σ

下面的代碼實現(xiàn)了上面描述的迭代過程。時間步長由 dt 給出,對應(yīng)于對股票價格進(jìn)行采樣的頻率,N 是模擬運(yùn)行的總天數(shù)。

#幾何布朗運(yùn)動模型#使用mu=收益率#sigma=波動率#dt=時間步長#Si=每個時間段的初始(開始)價格值#價格和收益的時間演變#使用布朗運(yùn)動模型來生成N天(時間段)的價格列表def?gices(mu,?sigma,?dt,?Si,?N):????pirr?=?np.zeros(N)?#初始化一個長度為N的向量來存儲價格值????pr_r[0]?=?Si?#存儲第一個價格值??????retrr?=?np.zeros(N)?#初始化向量來存儲返回值????????#還可以計算連續(xù)N之間的價格回報率????for?i?in?range?(1,N):????????#注意price[i-1]是每次迭代的Si????????pr_arr[i]?=?geoeti_bown(mu,?sigma,?dt,?price_arr[i-1])

運(yùn)行單個模擬/步行

這部分代碼只是調(diào)用上面編寫的函數(shù)并繪制結(jié)果。給出了收益率和波動率、起始價格和時間步長的樣本值。以下數(shù)字按出現(xiàn)順序顯示:

  1. 股票價格的演變,St 作為 N 的函數(shù)

  2. 股票價格水平的分布,繪制為直方圖。

  3. 收益和對數(shù)收益的分布,也繪制為直方圖。

在隨后的部分中進(jìn)行了多次模擬,以實際驗證模型的正確性。

#運(yùn)行單個模擬以檢查功能#使用?mu、sigma?和?Si?的樣本值進(jìn)行測試#調(diào)用函數(shù)Slst,?RitRlolist?=?gpes(mu,?sigma,?dt,?Si,?N)#繪制結(jié)果plt.figure(figsize=(15,5))

#用于獲取mu_multiple和sigma_multiple#將價格數(shù)組作為輸入并返回?mu?和?sigmadef?v_tun(price_array):????mu_single?=?0????sgm_sigle?=?0???? ????#計算模擬的平均收益率,mu和平均波動率,sigma????musigle?=?np.mean(mu_temp)????sigmsile?=?np.std(mu_temp) ????#Monte?Carlo?模擬幾何布朗運(yùn)動演化#運(yùn)行幾個模擬來生成幾個可能的價格演變數(shù)組#用它來計算平均波動率和回報率def?gmlie(mu,?sigma,?dt,?Si,?N,?sim_count):????cacies?=?np.zeros(shape=(N,sim_count))?#創(chuàng)建一個數(shù)組來存儲模擬值????#對于?alc_res?數(shù)組,我們只關(guān)心值????#創(chuàng)建數(shù)組來存儲每個的mu和sigma的值????m_mutple?=?np.zeros(sim_count)????sigmmiple?=?np.zeros(sim_count) ???? ????vl?=?np.linspace(0,N-1,N) ????#運(yùn)行模擬并繪制每個價格演變的結(jié)果????plt.figure(figsize=(20,20))

點擊標(biāo)題查閱往期內(nèi)容

R語言幾何布朗運(yùn)動GBM模擬股票價格優(yōu)化建立期權(quán)定價用概率加權(quán)收益曲線可視化

左右滑動查看更多

01

02

03

04

檢查和測試多個模擬的代碼

上面的代碼包含一個函數(shù),可以為幾何布朗運(yùn)動描述的隨機(jī)游走運(yùn)行多個模擬。還編寫了另一個計算給定輸入數(shù)組的平均收益和波動率水平的函數(shù)。這兩個函數(shù)都用于生成幾個模擬/隨機(jī)游走,如上圖所示。

上圖顯示了在相同起始價格、S0=100 和收益率和波動率、μ=0.2 和 σ=0.07 下運(yùn)行的 500 次模擬圖。使用的時間步長為 dt=0.01,表示每天對股票價格進(jìn)行頻繁抽樣。每條線代表使用前面描述的幾何布朗運(yùn)動模型建模的樣本隨機(jī)游走。然后通過繪制股票價格、收益和標(biāo)準(zhǔn)差的分布來分析使用這些模擬生成的數(shù)據(jù)。然后分析這些價格水平、收益和波動率的分布,以檢查其正確性和一致性。

從下面的第一張圖中可以看出,價格水平遵循近似對數(shù)正態(tài)分布。這實際上是一個預(yù)期的結(jié)果。解,St 是一個對數(shù)正態(tài)分布的隨機(jī)變量,其期望值和方差由下式給出:

從下面的第一幅圖中可以看出,對于 sim_count = 500 次模擬,價格水平確實近似于對數(shù)正態(tài)分布,平均值約為 200。使用 tats.lmfit 函數(shù)測量的均值和方差也與以上定義的值在合理的誤差范圍內(nèi)。對于使用上面給出的參數(shù)的模擬運(yùn)行,它們被計算為:

下面的第二張圖顯示了上面運(yùn)行的模擬的收益率分布??梢院苋菀椎赜^察到,收益呈正態(tài)分布,平均值約為 0.15,這是模擬中 μ 的輸入值。這種收益率的正態(tài)分布也是布朗運(yùn)動模型的預(yù)期結(jié)果。下面的第三張圖顯示了標(biāo)準(zhǔn)偏差率的分布,也可以觀察到其呈正態(tài)分布,平均值約為 0.07,這是模擬的 σ 輸入值。

因此,上述討論驗證了幾何布朗運(yùn)動編碼模型確實按預(yù)期工作,并生成與模型的屬性和假設(shè)相對應(yīng)的結(jié)果。自相似性也被證明適用于模型,其中不同的時間步長 dt 與調(diào)整后的 μ 和 σ 一起使用,以產(chǎn)生相似的價格水平和收益分布。這是模型的另一個預(yù)期結(jié)果,因為布朗運(yùn)動在不同尺度上表現(xiàn)出分形行為。

#繪制價格水平和收益的分布以檢查代碼的有效性#價格水平應(yīng)根據(jù)幾何布朗運(yùn)動模型呈對數(shù)正態(tài)分布#Retu?ate?和?Vlatiiy?應(yīng)該是正態(tài)分布的#Plot?價格水平plt.figure(figsize=(15,5))#與下面給出的均值和標(biāo)準(zhǔn)差的對數(shù)正態(tài)分布進(jìn)行比較logorman?=?Si*np.exp(mu*N*dt)logmvar?=?(Si**2)*np.exp(2*mu*N*dt)*(np.exp((sigma**2)*N*dt)-1)plt.plot(bns,lonm_dst,"g",lw=5)?#繪制預(yù)期的對數(shù)正態(tài)密度分布#繪制收益和波動率分布plt.figure(figsize=(15,5))

print(lono_ean)print(np.sqrt(loomvr))

探索:使用真實股票數(shù)據(jù)測試模型

一旦模型被檢查為正常工作,它就會用真實的庫存數(shù)據(jù)進(jìn)行測試。耐克 (NKE) 2013-2015 年的股價被用來回測該模型。并且使用上述幾何布朗運(yùn)動模型運(yùn)行 Monte Carlo 模擬。

以下值用于在兩年期間使用 NKE 的真實數(shù)據(jù)測試代碼。假設(shè)一年大約有 250 個工作日,N = 500 表示大約兩年的時間框架。通過將數(shù)據(jù)導(dǎo)入單獨(dú)的 .csv 文件并對股票價格的收益率和標(biāo)準(zhǔn)差進(jìn)行所需的計算來計算收益率和波動率。

  1. 截至 2013 年 1 月 2 日,起始價格 S0 為 52.4。兩年期末的預(yù)期價格 St 預(yù)計在 98.6 左右。

  2. 兩年年化收益率為 μ=0.13,這是使用雅虎財經(jīng)歷史記錄生成的價格列表計算得出的。

  3. 兩年年化波動率也從價格中獲得,σ=0.05。

以下代碼調(diào)用函數(shù)以通過幾何布朗運(yùn)動模型生成隨機(jī)游走。

#使用這些價格計算回報率和波動率。pprint(k.geical('2013-01-01',?'2015-01-01'))

#使用輸入?yún)?shù)的樣本值運(yùn)行多個模擬dt?=?0.01sim_count?=?500#調(diào)用函數(shù)并運(yùn)行模擬prie,?mu_arr,?sigrr?=?geiple(mu,?sgma,?dt,?Si,?N,?icont) 在?[29]?中:lorm_ean?=?Si*np.exp(mu*N*dt)

解釋模擬結(jié)果

從上圖中生成的隨機(jī)游走可以看出,我們在這里使用的模型乍一看似乎產(chǎn)生了正確方向和近似幅度的價格演變。由于它是一個隨機(jī)游走模型,重要的是要注意,結(jié)果只能解釋為價格水平或整體收益分布,而不是單個模擬。下面的代碼和數(shù)字為價格水平和收益率和波動率生成所需的分布圖。

首先需要注意的是,使用等式 E[St]=S0e(μN(yùn)t) 的對數(shù)正態(tài)分布價格水平的計算平均值為 100.374。這位于真實值 98.6 的 5% 誤差范圍內(nèi),是使用 500 次模擬生成的。

其次,可以看出幾何布朗運(yùn)動的所有性質(zhì)都得到滿足——價格水平服從對數(shù)正態(tài)分布,收益率和波動率正態(tài)分布,均值對應(yīng)于輸入?yún)?shù)值。

請注意,模擬還針對其他時間范圍和不同的股票價格運(yùn)行,平均而言,該模型顯示的值在圣路易斯真實價值的 10% 以內(nèi)。

#繪制價格水平的分布并返回以檢查真實數(shù)據(jù)的代碼#價格水平應(yīng)根據(jù)幾何布朗運(yùn)動模型呈對數(shù)正態(tài)分布#Return?Rate?和?Volatility?應(yīng)該是正態(tài)分布的#Plot?價格水平plt.hist(prestiple,bins=100,normed=1,label="R")#與下面給出的均值和標(biāo)準(zhǔn)差的對數(shù)正態(tài)分布進(jìn)行比較lognorm_mean?=?Si*np.exp(mu*N*dt)lognorm_var?=?(Si**2)*np.exp(2*mu*N*dt)*(np.exp((sigma**2)*N*dt)-1)#繪制預(yù)期的對數(shù)正態(tài)密度分布#繪制收益和波動率分布plt.hist(mu_arr,bins=100,normed=1,label="R")



評論和結(jié)論

從生成的模擬結(jié)果可以看出,幾何布朗運(yùn)動模型可以很好地使用上面討論的隨機(jī)過程來模擬股票價格。該模型首先被檢查以滿足幾何布朗運(yùn)動的特性,然后用真實的股票價格數(shù)據(jù)進(jìn)行回測。NKE 2013-2015 年的股票價格用于計算 μ 和 σ 的值,然后用于運(yùn)行該期間的模擬。股票價格的模擬結(jié)果和真實價值在 5% 的誤差范圍內(nèi)相似。

點擊文末?“閱讀原文”

獲取全文完整資料。

本文選自《PYTHON 用幾何布朗運(yùn)動模型和蒙特卡羅MONTE CARLO隨機(jī)過程模擬股票價格可視化分析耐克NKE股價時間序列數(shù)據(jù)》。

點擊標(biāo)題查閱往期內(nèi)容

R語言做復(fù)雜金融產(chǎn)品的幾何布朗運(yùn)動的模擬
MATLAB用COPULA模型進(jìn)行蒙特卡洛(MONTE CARLO)模擬和擬合股票收益數(shù)據(jù)分析
python中的copula:Frank、Clayton和Gumbel copula模型估計與可視化R語言中的copula GARCH模型擬合時間序列并模擬分析
matlab使用Copula仿真優(yōu)化市場風(fēng)險數(shù)據(jù)VaR分析
R語言多元Copula GARCH 模型時間序列預(yù)測
R語言Copula函數(shù)股市相關(guān)性建模:模擬Random Walk(隨機(jī)游走)
R語言實現(xiàn) Copula 算法建模依賴性案例分析報告
R語言ARMA-GARCH-COPULA模型和金融時間序列案例
R語言基于copula的貝葉斯分層混合模型的診斷準(zhǔn)確性研究
R語言COPULA和金融時間序列案例
matlab使用Copula仿真優(yōu)化市場風(fēng)險數(shù)據(jù)VaR分析
matlab使用Copula仿真優(yōu)化市場風(fēng)險
R語言多元CopulaGARCH模型時間序列預(yù)測
R語言Copula的貝葉斯非參數(shù)MCMC估計
R語言COPULAS和金融時間序列R語言乘法GARCH模型對高頻交易數(shù)據(jù)進(jìn)行波動性預(yù)測
R語言GARCH-DCC模型和DCC(MVT)建模估計
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進(jìn)行股價預(yù)測
R語言時間序列GARCH模型分析股市波動率
R語言ARMA-EGARCH模型、集成預(yù)測算法對SPX實際波動率進(jìn)行預(yù)測
matlab實現(xiàn)MCMC的馬爾可夫轉(zhuǎn)換ARMA - GARCH模型估計
Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模擬進(jìn)行股價預(yù)測
使用R語言對S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略
R語言用多元ARMA,GARCH ,EWMA, ETS,隨機(jī)波動率SV模型對金融時間序列數(shù)據(jù)建模
R語言股票市場指數(shù):ARMA-GARCH模型和對數(shù)收益率數(shù)據(jù)探索性分析
R語言多元Copula GARCH 模型時間序列預(yù)測
R語言使用多元AR-GARCH模型衡量市場風(fēng)險
R語言中的時間序列分析模型:ARIMA-ARCH / GARCH模型分析股票價格
R語言用Garch模型和回歸模型對股票價格分析
GARCH(1,1),MA以及歷史模擬法的VaR比較
matlab估計arma garch 條件均值和方差模型
R語言ARMA-GARCH-COPULA模型和金融時間序列案例


PYTHON 用幾何布朗運(yùn)動模型和蒙特卡羅MONTE CARLO隨機(jī)過程模擬股票價格可視化分析耐克的評論 (共 條)

分享到微博請遵守國家法律
乐至县| 清苑县| 大英县| 巴彦县| 当阳市| 平果县| 宜丰县| 通化市| 全州县| 白银市| 中山市| 福州市| 巴林左旗| 印江| 明光市| 康保县| 调兵山市| 简阳市| 宜昌市| 淮南市| 明溪县| 那坡县| 射阳县| 郸城县| 临武县| 西吉县| 徐闻县| 松桃| 麻江县| 德清县| 灵石县| 华亭县| 静宁县| 宾阳县| 广西| 延寿县| 大同县| 娄烦县| 松滋市| 汉阴县| 呼和浩特市|