1: PACKAGE BODY QRM_FX_FORMULAS AS
2: /* $Header: qrmfxflb.pls 115.19 2003/11/22 00:36:22 prafiuly ship $ */
3:
4: /*-------------------------------------------------------------
5: FX_GK_OPTION_SENS_CV
97: p_reverse BOOLEAN;
98:
99: BEGIN
100: IF (g_proc_level>=g_debug_level) THEN --bug 3236479
101: XTR_RISK_DEBUG_PKG.dpush(null,'QRM_FX_FORMULAS.FX_GK_OPTION_SENS_CV');
102: END IF;
103:
104: IF (p_rec_in.p_volatility = 0) THEN
105: raise QRM_MM_FORMULAS.e_option_vol_zero;
177: p_rec_out.p_gamma := p_gamma;
178: p_rec_out.p_vega := p_vega;
179:
180: IF (g_proc_level>=g_debug_level) THEN --bug 3236479
181: XTR_RISK_DEBUG_PKG.dpop(null,'QRM_FX_FORMULAS.FX_GK_OPTION_SENS_CV');
182: END IF;
183: END FX_GK_OPTION_SENS_CV;
184:
185:
217: v NUMBER := vol / 100;
218:
219: BEGIN
220: IF (g_proc_level>=g_debug_level) THEN --bug 3236479
221: XTR_RISK_DEBUG_PKG.dpush(null,'QRM_FX_FORMULAS.FX_GK_OPTION_SENS');
222: END IF;
223: IF (vol = 0) THEN
224: raise QRM_MM_FORMULAS.e_option_vol_zero;
225: END IF;
240: l_rho_f_call := -t*EXP((-r_f)*t)*l_spot_rate*n_d1;
241: l_rho_f_put := t*EXP((-r_f)*t)*l_spot_rate*(1-n_d1);
242:
243: IF (g_proc_level>=g_debug_level) THEN --bug 3236479
244: XTR_RISK_DEBUG_PKG.dpop(null,'QRM_FX_FORMULAS.FX_GK_OPTION_SENS');
245: END IF;
246: END FX_GK_OPTION_SENS;
247:
248: -- modified by sankim 9/14/01
282: v_results XTR_MD_NUM_TABLE:= XTR_MD_NUM_TABLE();
283:
284: BEGIN
285: IF (g_proc_level>=g_debug_level) THEN --bug 3236479
286: XTR_RISK_DEBUG_PKG.dpush(null,'QRM_FX_FORMULAS.FX_FORWARD_DELTA_SPOT');
287: END IF;
288:
289: v_results.extend;
290: v_results.extend;
307: v_results(2):= (p_df_contra_bid/p_df_base_ask);
308: END IF;
309:
310: IF (g_proc_level>=g_debug_level) THEN --bug 3236479
311: XTR_RISK_DEBUG_PKG.dpop(null,'QRM_FX_FORMULAS.FX_FORWARD_DELTA_SPOT');
312: END IF;
313:
314: RETURN v_results;
315: END FX_FORWARD_DELTA_SPOT;
1006: END IF;
1007: END fv_fx;
1008:
1009:
1010: END QRM_FX_FORMULAS;