Python金融應用編程:衍生品訂價和套期保值的隨機過程

原文連接:http://tecdat.cn/?p=5620

原文出處:拓端數據部落公衆號

隨機過程對定量融資的許多方面都頗有用,包括但不限於衍生品訂價,風險管理和投資管理。這些應用程序將在本文後面進一步詳細討論。本節介紹了量化融資中使用的一些流行的隨機過程及其在Python中的實現。機器學習

模型參數

模型參數類包含如下隨機過程使用的全部參數。爲了便於理解,這些參數的前綴是它們所用的隨機過程的名稱。隨機過程的校準將涉及尋找與某些歷史數據相符的參數值。工具

繪製結果圖

下面的代碼使用Matplotlib來繪製一組隨機過程。學習

布朗運動隨機過程

布朗運動 是由懸浮在氣體或液體中的顆粒表現出的隨機運動。這種隨機運動是由顆粒與液體或氣體中的原子或分子碰撞引發的。布朗運動以植物學家羅伯特·布朗的名字命名,他觀察了1827年的隨機運動。 優化

在實踐中,布朗運動不用於模擬資產價格。我將其包含在內,由於它是本文中討論的每一個其餘隨機過程的基礎。spa

def plot\_stochastic\_processes(processes, title):
    """
此方法繪製具備指定標題的隨機過程列表
     :return:繪製兩個圖
    """
    plt.style.use(\['bmh'\])
    fig, ax = plt.subplots(1)
    fig.suptitle(title, fontsize=16)
    ax.set_xlabel('Time, t')
    ax.set_ylabel('Simulated Asset Price')
    x_axis = numpy.arange(0, len(processes\[0\]), 1)
    for i in range(len(processes)):
        plt.plot(x_axis, processes\[i\])
    plt.show()

如下是此方法生成的輸出示例。code

def brownian\_motion\_log_returns(param):
 
    sqrt\_delta\_sigma = math.sqrt(param.all\_delta) * param.all\_sigma
    return nrand.normal(loc=0, scale=sqrt\_delta\_sigma, size=param.all_time)


def brownian\_motion\_levels(param):
   
    return convert\_to\_prices(param, brownian\_motion\_log_returns(param))

使用布朗運動隨機過程模擬資產價格:5條路徑

使用布朗運動隨機過程模擬資產價格:500條路徑

幾何布朗運動隨機過程

幾何布朗運動(GBM)由費舍爾布萊克和邁倫斯科爾斯推廣,他們在1973年的論文「期權訂價和公司負債」中使用它來推導出Black Scholes方程。幾何布朗運動基本上是布朗運動,具備漂移份量和波動率份量。公式以下orm

其中是資產價格S在時間t的變化 ; μ是每一年預期的百分比漂移,dt表明時間,σ是資產價格中預期的每日波動率,Wt是Wiener過程,也稱爲布朗運動。以下所示,布朗運動代碼用於幾何布朗運動方法以構造Wt的序列。ip

如下是此方法生成的輸出示例。請注意,平均而言,生成的路徑隨着時間的推移而向上漂移,而且可能的收盤價格變化較大。在這個例子中,路徑以每一年14%的平均速率增加,所以預期收益率等於14%,分別爲三年和一年(800天)。rem

使用幾何布朗運動隨機過程模擬資產價格。get

Merton跳躍擴散隨機過程

Robert C. Merton是最先解決Fisher Black和Myron Scholes提出的幾何布朗隨機過程當中一些侷限性的學者之一。1997年,默頓和斯科爾斯因其工做得到了諾貝爾經濟學獎。

其中是具備速率泊松過程λ和ÿ是對數正態分佈的隨機變量。

請注意,因爲跳躍擴散過程引入了向下的不連續或跳躍,所以資產的平均預期收益率略低。

使用默頓跳躍擴散幾何布朗運動隨機過程模擬資產價格。

Heston隨機波動率過程

原始的幾何布朗運動隨機過程假設隨時間的波動是恆定的。在1990年代早期,Steven Heston放寬了這個假設,並將幾何布朗運動模型擴展到包括隨機波動率。 

請注意,隨着時間的推移,資產價格會變得更加不穩定,從而致使潛在資產價格在預測結束時飆升。出現這種現象是由於我將長期平均波動率設定爲遠高於起始波動率的數字。

使用Heston隨機波動率幾何布朗運動隨機過程模擬資產價格。

COX INGERSOLL ROSS隨機過程

在COX INGERSOLL ROSS(CIR) 隨機過程是用來描述一段時間的利率變化。

 其中是Wiener過程,a是過程均值回覆的速率(較大的數字致使更快的均值回覆過程),b是長期平均利率,σ是過程的波動率。CIR隨機過程以下。 

利用Cox Ingersoll Ross均值迴歸隨機過程模擬利率。

ORNSTEIN-UHLENBECK隨機過程

Ornstein Uhlenbeck過程以Leonard Ornstein和George Eugene Uhlenbeck命名。Ornstein Uhlenbeck隨機過程與CIR過程之間的區別在於CIR過程將隨機份量乘之前一個利率值的平方根。 

 其中是Wiener過程,a是過程均值回覆的速率(較大的數字致使更快的均值回覆過程),b是長期平均利率,σ是過程的波動率。 

利用Ornstein Uhlenbeck均值迴歸隨機過程模擬利率。

衍生品訂價和套期保值的隨機過程

隨機過程在量化金融中的最大應用是衍生品訂價。

當對衍生品進行訂價時,大多數量子將使用兩種方法中的一種。要麼爲他們訂價創建Black Scholes模型,要麼他們將使用模擬方法來估計導數的值。這兩種技術都嚴重依賴於使用隨機過程來模擬底層證券。

===

衍生訂價方法一 Black Schole

Black Scholes模型用於在一組假設下對特定類型的衍生品合約進行訂價。這些假設包括:(1)存在無風險利率,任何金額能夠借入或借出,(2)基礎價格根據幾何布朗運動隨機過程,(3)進化基礎不支付股息,(4)市場上沒有套利機會,(5)市場交易成本爲零,(6)能夠買入或賣出任何數量。 

在這些假設下,能夠導出着名的Black Scholes偏微分方程。 

Black Scholes公式以及各類形式期權訂價公式的推導,是過去三十年中衍生品交易所大量增加的主要緣由。

導數訂價 方法二 - 模擬方法

鑑於Black Scholes公式隱含的侷限性和假設,一般採用蒙特卡羅方法(模擬)來爲更少的簡化假設。

這兩個選項在計算複雜性和時間之間進行權衡。每次想要對導數進行訂價時,使用模擬方法計算複雜度更高,可是爲替代隨機過程推導Black Scholes偏微分方程的「等價」更加耗時,而後仍然找到封閉形式的衍生品訂價式。所以,大多使用模擬方法

想要這樣作的緣由以下圖所示。事實上,你如何選擇和校準你的隨機過程將對期權的預期收益產生重大影響

紅色橢圓形顯示市場跳躍的位置 。

===

使用衍生工具進行套期保值

套期保值是風險管理戰略。可對衝風險包括股票風險,利率風險,貨幣風險,信用風險,波動風險和商品風險。套期保值是經過投資與投資組合中的基礎負相關的資產來完成的。最簡單的例子是在股票上買入看跌期權。當股票表現不佳時,看跌期權表現良好,而總體投資組合並無像沒有對衝時那樣糟糕。淨效應是收益降低。

公司和基金將嘗試肯定投資組合所面臨的風險因素並對衝這些風險因素。

除了我上面提到的問題以外,還有一些額外的「現實世界」問題。一個例子是通常成本和套期保值程序的複雜性(套期保值可能很是昂貴)。對於組織而言,問題在於,在出現不利損失的狀況下,對衝風險或僅僅保留更多資本是否更合理。近年來,諸如Solvency II和Basel III等法規要求銀行,對衝基金和保險公司預留更多資金來支持其投資組合。儲備一般保留在高流動性證券中,預期收益很低,如國庫券。

結論

隨機過程對於描述咱們世界中的隨機過程很是有用。它們用於工程,遺傳學,物理學和定量金融。數量使用隨機過程來預測市場可能的回報和利率隨時間的變化。隨機過程一般與蒙特卡羅方法結合使用。

很是感謝您閱讀本文,有任何問題請在下面留言!


最受歡迎的看法

1.用R語言模擬混合制排隊隨機服務排隊系統

2.R語言中使用排隊論預測等待時間

3.R語言中實現馬爾可夫鏈蒙特卡羅MCMC模型

4.R語言中的馬爾科夫機制轉換(Markov regime switching)模型

5.matlab貝葉斯隱馬爾可夫hmm模型

6.用R語言模擬混合制排隊隨機服務排隊系統

7.Python基於粒子羣優化的投資組合優化

8.R語言馬爾可夫轉換模型研究交通傷亡人數事故預測

9.用機器學習識別不斷變化的股市情況——隱馬爾可夫模型的應用

相關文章
相關標籤/搜索