期權
估計 Delta 的路徑導數
我正在嘗試使用路徑導數方法(Broadie 和 Glasserman(1996))估計 delta,我堅持這部分:
這是定義的另一個符號:
這是我到目前為止編寫的 C++ 程式碼:
void Pathwise_Derivative(double S0, double K, double r, double sigma, double T, int M, int N){ double dt = T/N; double S[N+1]; for(int i = 0; i < M; i++){ S[0] = S0; for(int j = 0; j < N; j++){ double Z = gaussian_box_muller(); S[j+1] = S[j]*exp( (r - (sigma*sigma)/(2))*dt + sigma*sqrt(dt)*Z); } } // Estimating Delta int I[N+1]; I[0] = 0; for(int i = 1; i <= N; i++){ if(S[i] > K){ I[i] = 1; }else{ I[i] = 0; } } double delta = 0.0; for(int i = 1; i <= N; i++){ delta += exp(-r*T)*(S[i]/S0)*I[i]; } }
我只是不明白估計 delta 並將其轉換為 C++ 程式碼的公式,非常感謝任何建議。
注意:此程式碼未經測試。
totDelta = 0.0 for(int i = 0; i < M; i++){ double Z = gaussian_box_muller(); ST = S0*exp( (r - (sigma*sigma)/(2.0))*T + sigma*sqrt(T)*Z); if(ST > K){ I = 1; }else{ I = 0; } Delta = exp(-r*T)*(ST/S0)*I; totDelta += Delta } return(totDelta/M); /* Average Delta over M MonteCarlo trials */