發表文章

人工智慧金融投資決策_Monte Carlo Simulation

圖片
Black-Scholes 選擇權定價公式 買權(Call Option) ​ 賣權(Put Option) ​ 其中: S 0 S_0 S 0 ​ : 目前股票價格 ,也就是時間 t = 0 t=0 t = 0 時的股價。 K K K : 履約價格(Strike Price) 。 r r r : 無風險利率(Risk-free Rate) 。 T T T : 選擇權剩餘期間 ,以「年」為單位;實務上通常以交易日換算,例如一年約 252 個交易日 。 σ \sigma σ :股票價格的 年化波動率(Volatility) 。 N ( x ) N(x) N ( x ) : 標準常態分布的累積分布函數(CDF) 。 其中: ​ 以及: ​ 而 N ( x ) N(x) N ( x ) 可以理解成一個標準常態分布隨機變數,小於等於 x 的累積機率。 其數學表示為: 白話理解 Black-Scholes 公式就是利用 目前股價、履約價、無風險利率、到期時間、波動率 這 5 個主要因素,計算歐式買權與賣權的理論價格。 其中 d 1 d_1 d 1 ​ 、 d 2 d_2 d 2 ​ 可以先把它們視為公式中的「中間計算值」, 再透過標準常態分布的累積機率 N ( d 1 ) N(d_1) N ( d 1 ​ ) 、 N ( d 2 ) N(d_2) N ( d 2 ​ ) ,最後算出 Call 與 Put 的理論價格。 蒙地卡羅模擬 是科學計算中最重要且最普遍的數值方法之一。 最早應用於曼哈頓計畫(Manhattan Project),之後也被用於氫彈的研發。 優點 廣泛應用於量化金融(Quantitative Finance),近年隨著 GPU 的發展而更加普及。 當評價問題中包含大量隨機因素,多到無法直接使用一般數值方法進行評價時,蒙地卡羅模擬特別有用。 當標的變數的機率分布較為複雜,使得直接求解相當困難時,也適合使用蒙地卡羅模擬。 適合處理**報酬取決於標的資產價格路徑(Path-dependent)**的金融商品。 缺點 使用蒙地卡羅方法評價美式選擇權(American Options)並不容易,雖然仍有方法可以做到。 計算效率相對較低,通常需要進行大量模擬,才能使選擇權價格逐漸收斂到較穩定的結果。 Ref htt...

人工智慧金融投資決策_ 利用Bi-section反推求解Volatility_希臘字風險係數

圖片
https://mwrona.com/posts/bisection-method/ 二分逼近法(Bisection Method) 當處於連續函數情境,則適合去套用bisection方法。 以下是一個推導的動畫示意 求解 f(x) = x² - 2 = 0 ,即找到 √2 ≈ 1.4142... 根據上面的數學式子很明顯會知道要求解的根位於1~2之間 那我們一開始就取二分,也就是中間值1.5 1.5帶入式子計算 => 1.5²  -2 > 0 代表我們猜的中間值取大了 這時候就要再去二分了,取的是[1,1.5]之間的中間值也就是1.25。 1.25帶入式子計算 => 1.25² -2 < 0 代表我們猜的中間值取小了 這時候就要再去二分了,取的是[1.25,1.5]之間的中間值 後續就持續往中間去逼近要求解的根,這就是Bi-Section 所以程式演算法每一次都會圍繞在[a,b]區間做三件事 先找中間值 接著判斷根在哪一半,再去調整左右哪側要取代為新的中間值 只要目前左右邊界 a 和 b 的距離還大於 0.000001,就繼續二分。 二分逼近法程式範例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 def f (x): return x** 2 - 2 a, b = 1 , 2 while b - a > 0.000001 : c = (a + b) / 2 if f(a) * f(c) < 0 : b = c else : a = c print ((a + b) / 2 ) 運行結果 利用Bi-section反推求解Volatility 選擇權定價主要是以 S 0 S_0 S 0 ​    、 K 、 r 、 T、volatility來計算call 和 put的價格 其中以下這些都是能根據當時市場狀況和合約內容直接得知或推得,也是固定值: S 0 S_0 S 0 ​ :時間 0 時的股票價格 K K K :履約價(合約到期價格) r r r :無風險利率 T T T :選擇權的存續期間,以年為單位,通常以交易日計算,例如一年為 252 個交易日 而唯獨V...

VB6寫DLL註冊給Classic ASP網頁使用_VB6的ActiveX DLL專案建構

圖片
  ASP呼叫DLL寫好的VB6封裝函數 執行結果 Step1.新增VB6的ActiveX DLL專案 Step2.到專案屬性面板去更改Project Name跟Project Description以及調整其Threading Model設置為Apartment Threaded Step3.更改Class名稱設置為MyFunction Step4.撰寫函數功能邏輯 Step5.將專案跟cls程式檔存檔 Step6.選擇製成dll Step7.新增註冊用.bat檔案,放在跟dll同樣目錄位置 雙點擊執行按OK https://expect7.pixnet.net/blog/posts/5058511170

人工智慧金融投資決策_複利計算(Compounding the Interest)_Put-Call Parity(買賣權平價關係)、Black-Scholes Formulas

圖片
  https://www.wallstreetmojo.com/put-call-parity/ 利息的複利計算(Compounding the Interest) 附息證券的價值不僅取決於利率,也取決於利息的複利計算頻率。 (PS:假設取得的利息會以相同利率再投資。) 令: P 0 P_0 P 0 ​ :初始時間 t 0 t_0 t 0 ​ 的本金金額 r r r :年利率 n n n :年數 則經過第 n n n 年後,債券的價值為: 其中: P n P_n P n ​ :經過 n n n 年後的本金與利息總額 P 0 P_0 P 0 ​ :初始本金 r r r :每年的利率 n n n :投資年數 若提高利息支付頻率,也就是增加複利計算的次數,假設每年計息 m > 1 m>1 m > 1 次,則 P n P_n P n ​ 的價值為: 其中: m m m :每年的複利計算次數 r m \frac{r}{m} m r ​ :每一期的利率 n m nm nm :在 n n n 年內的總計息次數 假設有一項無風險證券,其固定利率為 r r r ,並且在一段 τ > 0 \tau>0 τ > 0 的期間內採用 連續複利 ,則其價值為: 其中: P 0 P_0 P 0 ​ :初始時間 t 0 t_0 t 0 ​ 的投資本金 P τ P_{\tau} P τ ​ :從時間 t 0 t_0 t 0 ​ 投資至 t 0 + τ t_0+\tau t 0 ​ + τ 時的到期價值 r r r :固定年利率 τ \tau τ :投資期間 e x e^x e x :指數函數 例如,100 歐元以年利率 10% 連續複利一年,其價值為: P 1 = 100 e 0.1 ≈ 110.517 P_1=100e^{0.1}\approx110.517 P 1 ​ = 100 e 0.1 ≈ 110.517 測試程式 #1-1. r = 0.1 #年利率百分之10 100 *( 1 + r )** 10 #100元投入,投資10年獲得259.37元 #1-2.離散的發行,年利率 10% 時,100 歐元在一年內受到複利計息...