當actor-critic遇到black-scholes - 財務

Olive avatar
By Olive
at 2023-01-28T14:45

Table of Contents

※ [本文轉錄自 DataScience 看板 #1ZrCHlhy ]

作者: subgn ( ) 看板: DataScience
標題: [心得] 當actor-critic遇到black-scholes
時間: Sat Jan 28 14:44:57 2023

Medium網頁好讀版
https://tinyurl.com/u4au6u2e


本文試著將Reinforcement Learning的Actor-Critic模式與選擇權評價模型裡的投資組合
複製框架(delta hedge)兩種極為相似的概念整合,實作出可以同時計算選擇權價格(對應
到RL的critic)與避險比率(對應到RL的actor)的強化學習框架。
https://miro.medium.com/max/750/1*Jzkn6FmYbD0UC_GkukwHvg.png

Black-Scholes Model

相信交易過選擇權的人一定都對Black-Scholes與Delta不陌生(已經熟悉Black-Scholes的
讀者可以直接跳過這一段,這邊不打算花太多篇幅講解它)。首先,根據此理論,選擇權
評價公式長這樣:
https://miro.medium.com/max/750/1*Jzkn6FmYbD0UC_GkukwHvg.png

還有一個很重要的公式,Delta,代表若要複製一個選擇權的報酬,所需持有的標的物的
數量,就是前面選擇權價格公式的其中一部分:
https://miro.medium.com/max/252/1*dE53bK_AWzr8o3-dXkAbVQ.png


Black-Scholes雖然是一套從純理論出發的公式,但他能在實務中屹立長久,靠的就是這
個評價模型 與 複製報酬的架構。在這個架構中,造市者藉由持有一個特定比例(delta)
的選擇權標的物,就可以對沖掉選擇權價格的漲跌。至於這價格公式與Delta公式怎麼來
的?簡單的說,先假設股價的走勢呈現幾何布朗運動(這是最基礎的假設,當然也有更複
雜的模型,例如固定收益的LMM或是Hull-White),再套入Ito’s Lemma得到一個微分方程
,接著再以選擇權的到期報酬(payoff),以買權為例,Max(0, stock price — strike)
,作為邊界條件去解微分方程式,就可以得到價格公式與delta公式。

https://miro.medium.com/max/538/1*qOd9yf62We6Ysay0sDHSiA.png
描述股價瞬時變動的幾何布朗運動模型


Actor-Critic

這裡同樣的,已經對強化學習的Actor-Critic演算法熟悉的讀者可以跳過這段,因為網路
上有太多優秀的教學資源,所以這邊我同樣的也簡單的介紹一下就好。Actor-Critic是一
種結合policy based與value based的強化學習演算法,Actor負責執行動作,Critic負責
替前者執行的動作給予評價。兩者各自有一個類神經網路,Actor靠Critic給出的評價來
以policy-gradient更新參數,Critic則是藉由Actor實際與環境互動出來的結果,以
Bellman-Equation來更新參數。

藉由不斷的「環境互動 — 更新Policy — 更新Critic」的循環,最終達到策略最佳化的
目的。而回顧Black-Scholes的框架,他的價格公式與Delta公式,是由對股價走勢的假設
(幾何布朗運動)決定,並由數學推導(解微分方程)來獲得。而強化學習的Actor與Critic
的函數,是由Agent與環境的互動出來的經驗決定,並由學習獲得,這兩者有很多相似之
處,因此把Actor Critic稍加改造應該可以訓練出一個不用理解Black-Scholes Model就
可以近似出其價格公式與Delta公式的神經網路。


Critic的更新方法:
https://miro.medium.com/max/588/1*kL8PqGCaaaxv6EjOcGz7qg.png

這邊的→符號,是指以梯度下降法更新神經網路權重θ,使左邊的值趨近右邊值,也就是
以右邊為target來訓練θ。Critic是用來衡量根據目前狀態St,未來所有Reward的折現期
望值(是的,折現期望值,這點也跟財務工程的思維很像),如果我們要用一個神經網路來
估計選擇權價值,回顧一下,Black-Scholes框架的一個重點就是用delta避險來複製選擇
權,那我們會希望評估值的變動會儘量接近避險部位價值的變動

https://miro.medium.com/max/616/1*zI3FcKVQQ_nTnJbSUNUbvw.png

移項後再把delta*St替換為RL 領域熟悉的符號r,就得到

https://miro.medium.com/max/632/1*BgIZkrwjxvL8kdl3-WpZ2g.png
(選擇權版本的critic更新公式,注意rt的部分與原版A2C正副相反)


訓練Actor

除了訓練評價函數V(也就是critic)來計算選擇權價格以外,我們還需要一個actor來決定
delta避險部位,而這次是反過來,critic要去指導actor函數,critic透過advantage
function來告訴actor,剛剛選的action是好還是壞。

https://miro.medium.com/max/720/1*V0gHx98xs5aLW7FJXjrI2A.png
(原版actor critic的期望reward的梯度)


注意在原本的actor-critic框架中,Actor是產生一組離散的機率分佈,代表執行各種
action的機率,訓練actor的方式是讓reward總和的期望值最大化,而要最大化期望值,
就是靠advantage function來告訴actor什麼action是好,什麼action是壞,數學上來說
就是用policy gradient來更新這個policy的權重。

https://miro.medium.com/max/1094/1*sNVHuhAliTKOyxGAeRoBng.png
(原版actor critic的期望reward的梯度)

但是因為我們要決定的是一個避險比例delta,它只是一個數值,而非在多個action中選
一個來執行(離散機率分佈),所以問題更簡單,只要讓他產生的delta值去逼近
advantage function(這就成為一個簡單的regression problem)


實作


建立起理論基礎後,下一步就是來實作了,作為一個概念驗證專案(POC),這邊先不打算
從實際市場歷史股價來訓練,而是先用Black-Scholes Model產生出模擬股價(雖然原本的
目的是做出model-less架構),並用這些模擬價格訓練出選擇權估值函數與delta函數,並
驗證算出來的值是否與Black-Scholes公式相差不遠。

程式碼部分如下,首先是產生模擬股價的BlackProcess類
https://medium.com/media/ad9ff5c07bec38ad1ee711fad713756b

再來是強化學習必定要有的自定義Env類,這邊並沒有繼承openAI的env,而是直接創建新
的類
https://medium.com/media/083e21555e72a3fc27412557766028a7

還有產生actor與critic model的function,餵給actor與critic的input有5個,分別是價
內程度、價內程度的平方、剩餘天期、剩餘天期的平方、價內程度*剩餘天期。(值得注意
的是,因為選擇權價格永遠大於0,所以critic最後一層的activation要用sigmoid,而
delta值有正有負(看是call還是put),所以actor最後一層activation選tanh。)

https://medium.com/media/dd4f17469493152f7ec6e9324bf6ac35

以及定義好要進行神經網路學習的loss function:
https://medium.com/media/33f25206127a3fc90fb6d324fcdb510b

接著是actor-critic的訓練流程:
https://medium.com/media/d4e2fc91b531013789648686a1d912cd

最後是結合再一起進行測試,假設的初始股價S0=1,波動度30%,無風險利率1%,天期為
30日,履約價K=1.1。
https://medium.com/media/ec1dc2f0d99fce3d08c1d55ef29799d8

測試的結果,可以發現不論是估值還是delta算出來的結果跟Black-Scholes公式天差底遠
,在經過50回合訓練後,神經網路預估的選擇權價值是0.0106,Black-Scholes公式計算
值為0.0347,delta方面,神經網路預估值是-0.0689,Black-Scholes公式計算值為0.521


為了解決這個問題,在真正開始actor-critic互動式訓練之前,先對兩者分別進行「預訓
練」。


首先是actor(delta預估函數)的預訓練,假設天期為10個交易日的選擇權,則我們製作一
個輸出10個delta值的Model,因為用delta避險倉位要能複製選擇權的最終payoff,所以
讓輸出的delta各自乘以對應時間的dS,相加後,再加上選擇權初始價值,整個總和讓它
逼近選擇權到期時的Payoff,因為我們還沒有正確的價格函數,所以選擇一個價外選擇權
,並假設其價格等於0。


https://miro.medium.com/max/828/1*WjxUgS8OFwUo5hsJ4M0f5w.png

接著利用預訓練完畢的actor(delta預估函數)來預訓練critic(估值函數),從期末的
payoff值開始,以反序方式,藉由本期估值等於下一期估值減去避險部位損益,當作估值
函數的神經網路學習目標。

https://miro.medium.com/max/640/1*BCWsULH9oG4mwWvwIUhnYw.png

在先對模型施以預訓練後再進入actor-critic後,我們發現兩個模型很快地進入狀況,在
50回合訓練後,估值方面,神經網路的預估為0.0373,Black-Scholes公式解為0.0347,
delta方面,神經網路的預估為0.4471,Black-Scholes計算值為0.5210。


雖然這只是一個用模擬價格訓練出來的Proof of Concept模型,還是最簡單的vanilla選
擇權,但是它初步驗證了將actor-critic與Black-Shcoles兩個框架相似之處融合之後的
可行性。


--
Tags: 財務

All Comments

新春開戶送開運元寶

Elvira avatar
By Elvira
at 2023-01-18T20:37
※ [本文轉錄自 Broker 看板 #1Zn-NlFf ] 作者: ccyouu (ccyouu) 看板: Broker 標題: [情報] 新春開戶送開運元寶 時間: Wed Jan 18 20:28:29 2023 ----------------------------------------- 原 ...

期貨選擇權技術分析專班-政府補助

Hedy avatar
By Hedy
at 2023-01-18T12:40
報名截止日:112/2/10 訓練日期:112/02/13 ~ 112/04/12 上課時間:每週一18:30~21:30上課、每週三18:30~21:30上課 課程代碼:147537 繳費方式:報名時應先繳全額訓練費用 8,200(符合特定資格得全額補助) 訓練費用:如下 學員負擔:1,640 政府負擔:6 ...

系所請益

Xanthe avatar
By Xanthe
at 2022-12-14T21:01
各位好 本身對數學、程式、和金融都有興趣 目前在考慮清大的科管還是理院的學士班 因為還不真的很確定未來走的職業 所以想選學士班 對以後的工作背景是希望在金融業工作有理工技能傍身而不是純管院的技能 目前看到符合這種類型的工作有:數金quant、精算、HFT等類型的工作 目前在選擇上很猶豫,請益大家的建議 ...

台股與台指期貨交易策略實務專班

James avatar
By James
at 2022-11-25T16:52
訓練單位:臺灣證券期貨產業工會 保險證號:07090416Y 課程代碼:144273 繳費方式:報名時應先繳全額訓練費用5,000(符合特定資格得全額補助) 訓練費用:如下 學員負擔:1,000 政府負擔:4,000 每班人數:25 人 訓練時數:30 小時 訓練日期:111/12/06 ~ 112/01/1 ...

python 期權演算法交易實務

Gary avatar
By Gary
at 2022-11-16T20:54
python 期權演算法交易實務 書況近全新 售400 站內信。台北車站、公館站、古亭站面交 https://i.imgur.com/X8nHGq4.jpg https://i.imgur.com/KXXuLcK.jpg ----- Sent from JPTT on my iPhone - ...