DBA Data[Home] [Help]

APPS.QRM_FX_FORMULAS dependencies on XTR_RISK_DEBUG_PKG

Line 101: XTR_RISK_DEBUG_PKG.dpush(null,'QRM_FX_FORMULAS.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;

Line 113: XTR_RISK_DEBUG_PKG.dlog('FX_GK_OPTION_SENS_CV: ' || 'day count: '||p_day_count);

109: -- find days to maturity
110: XTR_CALC_P.calc_days_run_c(p_rec_in.p_spot_date, p_rec_in.p_maturity_date,
111: '30/', null, p_day_count, p_annual_basis);
112: IF (g_proc_level>=g_debug_level) THEN
113: XTR_RISK_DEBUG_PKG.dlog('FX_GK_OPTION_SENS_CV: ' || 'day count: '||p_day_count);
114: END IF;
115:
116: -- convert base int rate to continous compounded 30/360 day count basis
117: IF NOT (p_rec_in.p_rate_type_for IN ('C','c') AND

Line 130: XTR_RISK_DEBUG_PKG.dlog('FX_GK_OPTION_SENS_CV: ' || 'CONVERTED continuous base int rate:'||p_base_int_rate);

126: p_conv_in.p_rate_in := p_rec_in.p_rate_for;
127: XTR_RATE_CONVERSION.rate_conversion(p_conv_in, p_conv_out);
128: p_base_int_rate := p_conv_out.p_rate_out;
129: IF (g_proc_level>=g_debug_level) THEN
130: XTR_RISK_DEBUG_PKG.dlog('FX_GK_OPTION_SENS_CV: ' || 'CONVERTED continuous base int rate:'||p_base_int_rate);
131: END IF;
132: END IF;
133:
134: -- convert contra int rate to continuous compounded 30/360 day count basis

Line 148: XTR_RISK_DEBUG_PKG.dlog('FX_GK_OPTION_SENS_CV: ' || 'continuous contra int rate:'||p_contra_int_rate);

144: p_conv_in.p_rate_in := p_rec_in.p_rate_dom;
145: XTR_RATE_CONVERSION.rate_conversion(p_conv_in, p_conv_out);
146: p_contra_int_rate := p_conv_out.p_rate_out;
147: IF (g_proc_level>=g_debug_level) THEN
148: XTR_RISK_DEBUG_PKG.dlog('FX_GK_OPTION_SENS_CV: ' || 'continuous contra int rate:'||p_contra_int_rate);
149: END IF;
150: END IF;
151:
152: -- determine whether to invert strike price

Line 161: XTR_RISK_DEBUG_PKG.dlog('FX_GK_OPTION_SENS_CV: ' || 'strike rate is: '||p_strike_rate);

157: IF (p_base_ccy <> p_rec_in.p_ccy_for) THEN
158: p_strike_rate := 1/p_rec_in.p_strike_rate;
159: END IF;
160: IF (g_proc_level>=g_debug_level) THEN
161: XTR_RISK_DEBUG_PKG.dlog('FX_GK_OPTION_SENS_CV: ' || 'strike rate is: '||p_strike_rate);
162: END IF;
163:
164: fx_gk_option_sens(p_day_count, p_base_int_rate, p_contra_int_rate,
165: p_rec_in.p_spot_rate, p_strike_rate, p_rec_in.p_volatility,

Line 181: XTR_RISK_DEBUG_PKG.dpop(null,'QRM_FX_FORMULAS.FX_GK_OPTION_SENS_CV');

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:

Line 221: XTR_RISK_DEBUG_PKG.dpush(null,'QRM_FX_FORMULAS.FX_GK_OPTION_SENS');

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;

Line 244: XTR_RISK_DEBUG_PKG.dpop(null,'QRM_FX_FORMULAS.FX_GK_OPTION_SENS');

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

Line 286: XTR_RISK_DEBUG_PKG.dpush(null,'QRM_FX_FORMULAS.FX_FORWARD_DELTA_SPOT');

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;

Line 311: XTR_RISK_DEBUG_PKG.dpop(null,'QRM_FX_FORMULAS.FX_FORWARD_DELTA_SPOT');

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;

Line 402: xtr_risk_debug_pkg.dpush(null,'QRM_FX_FROMULAS.FX_FORWARD_RHO');

398:
399:
400: BEGIN
401: IF (g_proc_level>=g_debug_level) THEN
402: xtr_risk_debug_pkg.dpush(null,'QRM_FX_FROMULAS.FX_FORWARD_RHO');
403: END IF;
404: v_forward_rate_base.extend;
405: v_forward_rate_base.extend;
406: v_forward_rate_shifted.extend;

Line 450: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base bid forward rate: '||v_forward_rate_base(1));

446:
447: --bidfirst
448: v_rho(1):=(v_forward_rate_shifted(1) - v_forward_rate_base(1))/.0001;
449: IF (g_proc_level>=g_debug_level) THEN
450: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base bid forward rate: '||v_forward_rate_base(1));
451: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base bid forward rate shifted: '||v_forward_rate_shifted(1));
452: END IF;
453: --ask
454: v_rho(2):=(v_forward_rate_shifted(2) - v_forward_rate_base(2))/.0001;

Line 451: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base bid forward rate shifted: '||v_forward_rate_shifted(1));

447: --bidfirst
448: v_rho(1):=(v_forward_rate_shifted(1) - v_forward_rate_base(1))/.0001;
449: IF (g_proc_level>=g_debug_level) THEN
450: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base bid forward rate: '||v_forward_rate_base(1));
451: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base bid forward rate shifted: '||v_forward_rate_shifted(1));
452: END IF;
453: --ask
454: v_rho(2):=(v_forward_rate_shifted(2) - v_forward_rate_base(2))/.0001;
455: IF (g_proc_level>=g_debug_level) THEN

Line 456: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base ask forward rate: '||v_forward_rate_base(2));

452: END IF;
453: --ask
454: v_rho(2):=(v_forward_rate_shifted(2) - v_forward_rate_base(2))/.0001;
455: IF (g_proc_level>=g_debug_level) THEN
456: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base ask forward rate: '||v_forward_rate_base(2));
457: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base ask forward rate shifted: '||v_forward_rate_shifted(2));
458: END IF;
459: IF p_out = 'B' THEN
460: IF (g_proc_level>=g_debug_level) THEN

Line 457: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base ask forward rate shifted: '||v_forward_rate_shifted(2));

453: --ask
454: v_rho(2):=(v_forward_rate_shifted(2) - v_forward_rate_base(2))/.0001;
455: IF (g_proc_level>=g_debug_level) THEN
456: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base ask forward rate: '||v_forward_rate_base(2));
457: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base ask forward rate shifted: '||v_forward_rate_shifted(2));
458: END IF;
459: IF p_out = 'B' THEN
460: IF (g_proc_level>=g_debug_level) THEN
461: xtr_risk_debug_pkg.dpop('FX_FORWARD_RHO: ' || 'Rho');

Line 461: xtr_risk_debug_pkg.dpop('FX_FORWARD_RHO: ' || 'Rho');

457: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'base ask forward rate shifted: '||v_forward_rate_shifted(2));
458: END IF;
459: IF p_out = 'B' THEN
460: IF (g_proc_level>=g_debug_level) THEN
461: xtr_risk_debug_pkg.dpop('FX_FORWARD_RHO: ' || 'Rho');
462: END IF;
463: return v_rho;
464: END IF;
465: END IF;

Line 501: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_base bid',v_forward_rate_base(1));

497: END IF;
498:
499: --bid first
500: IF (g_proc_level>=g_debug_level) THEN
501: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_base bid',v_forward_rate_base(1));
502: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_base ask',v_forward_rate_base(2));
503: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_shifted bid',v_forward_rate_shifted(1));
504: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_shifted ask',v_forward_rate_shifted(2));
505: END IF;

Line 502: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_base ask',v_forward_rate_base(2));

498:
499: --bid first
500: IF (g_proc_level>=g_debug_level) THEN
501: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_base bid',v_forward_rate_base(1));
502: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_base ask',v_forward_rate_base(2));
503: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_shifted bid',v_forward_rate_shifted(1));
504: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_shifted ask',v_forward_rate_shifted(2));
505: END IF;
506: IF p_out = 'C' THEN

Line 503: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_shifted bid',v_forward_rate_shifted(1));

499: --bid first
500: IF (g_proc_level>=g_debug_level) THEN
501: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_base bid',v_forward_rate_base(1));
502: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_base ask',v_forward_rate_base(2));
503: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_shifted bid',v_forward_rate_shifted(1));
504: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_shifted ask',v_forward_rate_shifted(2));
505: END IF;
506: IF p_out = 'C' THEN
507: --just calculating contra

Line 504: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_shifted ask',v_forward_rate_shifted(2));

500: IF (g_proc_level>=g_debug_level) THEN
501: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_base bid',v_forward_rate_base(1));
502: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_base ask',v_forward_rate_base(2));
503: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_shifted bid',v_forward_rate_shifted(1));
504: xtr_risk_debug_pkg.dlog('FX_FORWARD_RHO: ' || 'v_forward_rate_shifted ask',v_forward_rate_shifted(2));
505: END IF;
506: IF p_out = 'C' THEN
507: --just calculating contra
508: v_rho(1):=(v_forward_rate_shifted(1) - v_forward_rate_base(1))/.0001;

Line 520: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra bid forward rate: '||v_forward_rate_base(1));

516: v_rho(3):=(v_forward_rate_shifted(1) - v_forward_rate_base(1))/.0001;
517: --ask
518: v_rho(4):=(v_forward_rate_shifted(2) - v_forward_rate_base(2))/.0001;
519: IF (g_proc_level>=g_debug_level) THEN
520: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra bid forward rate: '||v_forward_rate_base(1));
521: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra bid forward rate shifted: '||v_forward_rate_shifted(1));
522: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra ask forward rate: '||v_forward_rate_base(2));
523: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra ask forward rate shifted: '||v_forward_rate_shifted(2));
524: END IF;

Line 521: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra bid forward rate shifted: '||v_forward_rate_shifted(1));

517: --ask
518: v_rho(4):=(v_forward_rate_shifted(2) - v_forward_rate_base(2))/.0001;
519: IF (g_proc_level>=g_debug_level) THEN
520: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra bid forward rate: '||v_forward_rate_base(1));
521: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra bid forward rate shifted: '||v_forward_rate_shifted(1));
522: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra ask forward rate: '||v_forward_rate_base(2));
523: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra ask forward rate shifted: '||v_forward_rate_shifted(2));
524: END IF;
525: END IF;

Line 522: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra ask forward rate: '||v_forward_rate_base(2));

518: v_rho(4):=(v_forward_rate_shifted(2) - v_forward_rate_base(2))/.0001;
519: IF (g_proc_level>=g_debug_level) THEN
520: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra bid forward rate: '||v_forward_rate_base(1));
521: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra bid forward rate shifted: '||v_forward_rate_shifted(1));
522: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra ask forward rate: '||v_forward_rate_base(2));
523: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra ask forward rate shifted: '||v_forward_rate_shifted(2));
524: END IF;
525: END IF;
526: IF (g_proc_level>=g_debug_level) THEN

Line 523: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra ask forward rate shifted: '||v_forward_rate_shifted(2));

519: IF (g_proc_level>=g_debug_level) THEN
520: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra bid forward rate: '||v_forward_rate_base(1));
521: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra bid forward rate shifted: '||v_forward_rate_shifted(1));
522: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra ask forward rate: '||v_forward_rate_base(2));
523: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra ask forward rate shifted: '||v_forward_rate_shifted(2));
524: END IF;
525: END IF;
526: IF (g_proc_level>=g_debug_level) THEN
527: xtr_risk_debug_pkg.dpop(null,'QRM_FX_FROMULAS.FX_FORWARD_RHO');

Line 527: xtr_risk_debug_pkg.dpop(null,'QRM_FX_FROMULAS.FX_FORWARD_RHO');

523: XTR_RISK_DEBUG_PKG.dlog('FX_FORWARD_RHO: ' || 'contra ask forward rate shifted: '||v_forward_rate_shifted(2));
524: END IF;
525: END IF;
526: IF (g_proc_level>=g_debug_level) THEN
527: xtr_risk_debug_pkg.dpop(null,'QRM_FX_FROMULAS.FX_FORWARD_RHO');
528: END IF;
529: return v_rho;
530: END IF;
531: END FX_FORWARD_RHO;

Line 619: XTR_RISK_DEBUG_PKG.dpush(null,'QRM_FX_FROMULAS.FV_FXO');

615: p_fx_out XTR_FX_FORMULAS.GK_OPTION_CV_OUT_REC_TYPE;
616:
617: BEGIN
618: IF (g_proc_level>=g_debug_level) THEN
619: XTR_RISK_DEBUG_PKG.dpush(null,'QRM_FX_FROMULAS.FV_FXO');
620: END IF;
621: IF (p_price_model = 'GARMAN_KOHL') THEN
622: -- get base/contra currencies straight
623: p_base_ccy := p_buy_ccy;

Line 627: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'base ccy: '||p_base_ccy);

623: p_base_ccy := p_buy_ccy;
624: p_contra_ccy := p_sell_ccy;
625: get_base_contra(p_base_ccy, p_contra_ccy, p_dummy);
626: IF (g_proc_level>=g_debug_level) THEN
627: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'base ccy: '||p_base_ccy);
628: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'contra ccy: '||p_contra_ccy);
629: END IF;
630:
631: IF (p_deal_subtype = 'BUY') THEN

Line 628: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'contra ccy: '||p_contra_ccy);

624: p_contra_ccy := p_sell_ccy;
625: get_base_contra(p_base_ccy, p_contra_ccy, p_dummy);
626: IF (g_proc_level>=g_debug_level) THEN
627: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'base ccy: '||p_base_ccy);
628: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'contra ccy: '||p_contra_ccy);
629: END IF;
630:
631: IF (p_deal_subtype = 'BUY') THEN
632: p_side := 'A';

Line 658: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'volatility: '||p_volatility);

654: IF (p_volatility = 0) THEN
655: raise QRM_MM_FORMULAS.e_option_vol_zero;
656: END IF;
657: IF (g_proc_level>=g_debug_level) THEN
658: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'volatility: '||p_volatility);
659: END IF;
660:
661: -- get interest rate buy buy currency (ask side)
662: p_md_in.p_side := 'A';

Line 668: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'buy ccy interp int rate: '||p_buy_int_rate);

664: p_md_in.p_ccy := p_buy_ccy;
665: XTR_MARKET_DATA_P.get_md_from_set(p_md_in, p_md_out);
666: p_buy_int_rate := p_md_out.p_md_out;
667: IF (g_proc_level>=g_debug_level) THEN
668: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'buy ccy interp int rate: '||p_buy_int_rate);
669: END IF;
670:
671: -- get interest rate for sell currency (bid side);
672: p_md_in.p_side := 'B';

Line 677: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'sell ccy interp int rate: '||p_sell_int_rate);

673: p_md_in.p_ccy := p_sell_ccy;
674: XTR_MARKET_DATA_P.get_md_from_set(p_md_in, p_md_out);
675: p_sell_int_rate := p_md_out.p_md_out;
676: IF (g_proc_level>=g_debug_level) THEN
677: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'sell ccy interp int rate: '||p_sell_int_rate);
678: END IF;
679:
680: -- convert buy/sell interest rate into base/contra
681: IF (p_buy_ccy = p_base_ccy) THEN

Line 690: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'base ccy int rate: '||p_base_rate);

686: p_contra_rate := p_buy_int_rate;
687: END IF;
688:
689: IF (g_proc_level>=g_debug_level) THEN
690: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'base ccy int rate: '||p_base_rate);
691: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'contra ccy int rate: '||p_contra_rate);
692: END IF;
693:
694: -- convert to continuously compounded rates

Line 691: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'contra ccy int rate: '||p_contra_rate);

687: END IF;
688:
689: IF (g_proc_level>=g_debug_level) THEN
690: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'base ccy int rate: '||p_base_rate);
691: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'contra ccy int rate: '||p_contra_rate);
692: END IF;
693:
694: -- convert to continuously compounded rates
695: p_conv_in.p_start_date := p_spot_date;

Line 708: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'base ccy compounded int rate: '||p_base_rate);

704: XTR_RATE_CONVERSION.rate_conversion(p_conv_in, p_conv_out);
705: p_contra_rate := p_conv_out.p_rate_out;
706:
707: IF (g_proc_level>=g_debug_level) THEN
708: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'base ccy compounded int rate: '||p_base_rate);
709: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'contra ccy compounded int rate: '||p_contra_rate);
710: END IF;
711:
712: -- get fx spot rate

Line 709: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'contra ccy compounded int rate: '||p_contra_rate);

705: p_contra_rate := p_conv_out.p_rate_out;
706:
707: IF (g_proc_level>=g_debug_level) THEN
708: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'base ccy compounded int rate: '||p_base_rate);
709: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'contra ccy compounded int rate: '||p_contra_rate);
710: END IF;
711:
712: -- get fx spot rate
713: IF (p_sell_ccy = p_base_ccy) THEN

Line 735: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'strike price: '||p_strike);

731: p_md_in.p_side := p_side;
732: XTR_MARKET_DATA_P.get_md_from_set(p_md_in, p_md_out);
733: p_spot_rate := p_md_out.p_md_out;
734: IF (g_proc_level>=g_debug_level) THEN
735: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'strike price: '||p_strike);
736: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'fx spot rate: '||p_spot_rate);
737: END IF;
738:
739: -- Garman Kohlhagen

Line 736: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'fx spot rate: '||p_spot_rate);

732: XTR_MARKET_DATA_P.get_md_from_set(p_md_in, p_md_out);
733: p_spot_rate := p_md_out.p_md_out;
734: IF (g_proc_level>=g_debug_level) THEN
735: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'strike price: '||p_strike);
736: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'fx spot rate: '||p_spot_rate);
737: END IF;
738:
739: -- Garman Kohlhagen
740: p_fx_in.p_spot_date := p_spot_date;

Line 760: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate foreign: '||p_fx_in.p_rate_for);

756: p_fx_in.p_strike_rate := p_strike;
757: p_fx_in.p_volatility := p_volatility;
758:
759: IF (g_proc_level>=g_debug_level) THEN
760: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate foreign: '||p_fx_in.p_rate_for);
761: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate domestic: '||p_fx_in.p_rate_dom);
762: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK spot rate: '||p_fx_in.p_spot_rate);
763: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK strike rate: '||p_fx_in.p_strike_rate);
764: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK volatility: '||p_fx_in.p_volatility);

Line 761: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate domestic: '||p_fx_in.p_rate_dom);

757: p_fx_in.p_volatility := p_volatility;
758:
759: IF (g_proc_level>=g_debug_level) THEN
760: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate foreign: '||p_fx_in.p_rate_for);
761: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate domestic: '||p_fx_in.p_rate_dom);
762: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK spot rate: '||p_fx_in.p_spot_rate);
763: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK strike rate: '||p_fx_in.p_strike_rate);
764: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK volatility: '||p_fx_in.p_volatility);
765: END IF;

Line 762: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK spot rate: '||p_fx_in.p_spot_rate);

758:
759: IF (g_proc_level>=g_debug_level) THEN
760: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate foreign: '||p_fx_in.p_rate_for);
761: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate domestic: '||p_fx_in.p_rate_dom);
762: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK spot rate: '||p_fx_in.p_spot_rate);
763: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK strike rate: '||p_fx_in.p_strike_rate);
764: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK volatility: '||p_fx_in.p_volatility);
765: END IF;
766:

Line 763: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK strike rate: '||p_fx_in.p_strike_rate);

759: IF (g_proc_level>=g_debug_level) THEN
760: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate foreign: '||p_fx_in.p_rate_for);
761: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate domestic: '||p_fx_in.p_rate_dom);
762: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK spot rate: '||p_fx_in.p_spot_rate);
763: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK strike rate: '||p_fx_in.p_strike_rate);
764: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK volatility: '||p_fx_in.p_volatility);
765: END IF;
766:
767: XTR_FX_FORMULAS.fx_gk_option_price_cv(p_fx_in, p_fx_out);

Line 764: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK volatility: '||p_fx_in.p_volatility);

760: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate foreign: '||p_fx_in.p_rate_for);
761: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK rate domestic: '||p_fx_in.p_rate_dom);
762: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK spot rate: '||p_fx_in.p_spot_rate);
763: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK strike rate: '||p_fx_in.p_strike_rate);
764: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'GK volatility: '||p_fx_in.p_volatility);
765: END IF;
766:
767: XTR_FX_FORMULAS.fx_gk_option_price_cv(p_fx_in, p_fx_out);
768: p_call_price := p_fx_out.p_CALL_PRICE;

Line 775: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'garman kohlhagen fwd rate: '||p_forward_rate);

771: IF (p_for_ccy <> p_base_ccy) THEN
772: p_forward_rate := 1/p_forward_rate;
773: END IF;
774: IF (g_proc_level>=g_debug_level) THEN
775: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'garman kohlhagen fwd rate: '||p_forward_rate);
776: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'call price: '||p_call_price);
777: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'put price: '||p_put_price);
778: END IF;
779:

Line 776: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'call price: '||p_call_price);

772: p_forward_rate := 1/p_forward_rate;
773: END IF;
774: IF (g_proc_level>=g_debug_level) THEN
775: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'garman kohlhagen fwd rate: '||p_forward_rate);
776: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'call price: '||p_call_price);
777: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'put price: '||p_put_price);
778: END IF;
779:
780: -- calculate fair value, which is call/put_price * base amount

Line 777: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'put price: '||p_put_price);

773: END IF;
774: IF (g_proc_level>=g_debug_level) THEN
775: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'garman kohlhagen fwd rate: '||p_forward_rate);
776: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'call price: '||p_call_price);
777: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'put price: '||p_put_price);
778: END IF;
779:
780: -- calculate fair value, which is call/put_price * base amount
781: -- in deal contra ccy (domestic ccy);

Line 800: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'FAIR VALUE: '||p_fair_value);

796: IF (p_deal_subtype = 'SELL') THEN
797: p_fair_value := p_fair_value * (-1);
798: END IF;
799: IF (g_proc_level>=g_debug_level) THEN
800: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'FAIR VALUE: '||p_fair_value);
801: END IF;
802: END IF;
803: IF (g_proc_level>=g_debug_level) THEN
804: XTR_RISK_DEBUG_PKG.dpop(null,'QRM_FX_FROMULAS.fv_fxo');

Line 804: XTR_RISK_DEBUG_PKG.dpop(null,'QRM_FX_FROMULAS.fv_fxo');

800: XTR_RISK_DEBUG_PKG.dlog('fv_fxo: ' || 'FAIR VALUE: '||p_fair_value);
801: END IF;
802: END IF;
803: IF (g_proc_level>=g_debug_level) THEN
804: XTR_RISK_DEBUG_PKG.dpop(null,'QRM_FX_FROMULAS.fv_fxo');
805: END IF;
806: END fv_fxo;
807:
808:

Line 853: XTR_RISK_DEBUG_PKG.dpush(null,'QRM_FX_FROMULAS.FV_FX');

849: p_mm_out XTR_MM_COVERS.presentValue_out_rec_type;
850:
851: BEGIN
852: IF (g_proc_level>=g_debug_level) THEN
853: XTR_RISK_DEBUG_PKG.dpush(null,'QRM_FX_FROMULAS.FV_FX');
854: END IF;
855: IF (p_price_model = 'FX_FORWARD') THEN
856: p_base_amt := ABS(p_buy_amount);
857: p_contra_amt := ABS(p_sell_amount);

Line 862: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'base ccy: ' || p_base_ccy);

858: p_base_ccy := p_buy_ccy;
859: p_contra_ccy := p_sell_ccy;
860: get_base_contra(p_base_ccy, p_contra_ccy, p_reverse);
861: IF (g_proc_level>=g_debug_level) THEN
862: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'base ccy: ' || p_base_ccy);
863: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'contra ccy: ' || p_contra_ccy);
864: END IF;
865: -- set p_side depend on ask or bid
866: -- also set amount to negative if appropriate

Line 863: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'contra ccy: ' || p_contra_ccy);

859: p_contra_ccy := p_sell_ccy;
860: get_base_contra(p_base_ccy, p_contra_ccy, p_reverse);
861: IF (g_proc_level>=g_debug_level) THEN
862: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'base ccy: ' || p_base_ccy);
863: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'contra ccy: ' || p_contra_ccy);
864: END IF;
865: -- set p_side depend on ask or bid
866: -- also set amount to negative if appropriate
867: IF (p_reverse = TRUE) THEN

Line 910: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'spot rate: ' || p_spot_rate);

906: p_md_in.p_bond_code := null;
907: XTR_MARKET_DATA_P.get_md_from_set(p_md_in, p_md_out);
908: p_spot_rate := p_md_out.p_md_out;
909: IF (g_proc_level>=g_debug_level) THEN
910: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'spot rate: ' || p_spot_rate);
911: END IF;
912:
913: -- get base ccy interest rate
914: p_md_in.p_indicator := 'Y';

Line 919: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'base int rate: ' || p_base_yield_rate);

915: p_md_in.p_side := p_base_side;
916: XTR_MARKET_DATA_P.get_md_from_set(p_md_in, p_md_out);
917: p_base_yield_rate := p_md_out.p_md_out;
918: IF (g_proc_level>=g_debug_level) THEN
919: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'base int rate: ' || p_base_yield_rate);
920: END IF;
921:
922: -- get contra ccy interest rate
923: p_md_in.p_ccy := p_contra_ccy;

Line 928: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'contra int rate: ' || p_contra_yield_rate);

924: p_md_in.p_side := p_contra_side;
925: XTR_MARKET_DATA_P.get_md_from_set(p_md_in, p_md_out);
926: p_contra_yield_rate := p_md_out.p_md_out;
927: IF (g_proc_level>=g_debug_level) THEN
928: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'contra int rate: ' || p_contra_yield_rate);
929: END IF;
930:
931: -- get fx forward rate (immature deal)
932: XTR_FX_FORMULAS.fx_forward_rate(p_spot_rate, p_base_yield_rate,

Line 936: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'forward rate: ' || p_forward_rate);

932: XTR_FX_FORMULAS.fx_forward_rate(p_spot_rate, p_base_yield_rate,
933: p_contra_yield_rate, p_num_days, p_num_days, p_year_basis,
934: p_year_basis,p_forward_rate);
935: IF (g_proc_level>=g_debug_level) THEN
936: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'forward rate: ' || p_forward_rate);
937: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'contra amt: '||p_contra_amt);
938: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'base amt: '||p_base_amt);
939: END IF;
940:

Line 937: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'contra amt: '||p_contra_amt);

933: p_contra_yield_rate, p_num_days, p_num_days, p_year_basis,
934: p_year_basis,p_forward_rate);
935: IF (g_proc_level>=g_debug_level) THEN
936: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'forward rate: ' || p_forward_rate);
937: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'contra amt: '||p_contra_amt);
938: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'base amt: '||p_base_amt);
939: END IF;
940:
941: -- calculate undiscounted fair value in contra currency

Line 938: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'base amt: '||p_base_amt);

934: p_year_basis,p_forward_rate);
935: IF (g_proc_level>=g_debug_level) THEN
936: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'forward rate: ' || p_forward_rate);
937: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'contra amt: '||p_contra_amt);
938: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'base amt: '||p_base_amt);
939: END IF;
940:
941: -- calculate undiscounted fair value in contra currency
942: p_fair_value := p_base_amt * p_forward_rate + p_contra_amt;

Line 944: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'undiscounted fair value in contra ccy: '||p_fair_value);

940:
941: -- calculate undiscounted fair value in contra currency
942: p_fair_value := p_base_amt * p_forward_rate + p_contra_amt;
943: IF (g_proc_level>=g_debug_level) THEN
944: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'undiscounted fair value in contra ccy: '||p_fair_value);
945: END IF;
946:
947:
948: IF (p_contra_ccy <> p_sob_ccy) THEN

Line 956: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'sob yield rate: '||p_sob_yield_rate);

952: p_side := 'M';
953: XTR_MARKET_DATA_P.get_md_from_set(p_md_in, p_md_out);
954: p_sob_yield_rate := p_md_out.p_md_out;
955: IF (g_proc_level>=g_debug_level) THEN
956: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'sob yield rate: '||p_sob_yield_rate);
957: END IF;
958:
959: -- calculate fx spot rate from contra to sob ccy
960: p_md_in.p_indicator := 'S';

Line 967: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'sob spot rate: '||p_sob_spot_rate);

963: p_md_in.p_contra_ccy := p_sob_ccy;
964: XTR_MARKET_DATA_P.get_md_from_set(p_md_in, p_md_out);
965: p_sob_spot_rate := p_md_out.p_md_out;
966: IF (g_proc_level>=g_debug_level) THEN
967: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'sob spot rate: '||p_sob_spot_rate);
968: END IF;
969:
970: -- calculate fx forward rate from contra to sob ccy
971: XTR_FX_FORMULAS.fx_forward_rate(p_sob_spot_rate,

Line 975: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'sob forward rate: '||p_sob_forward_rate);

971: XTR_FX_FORMULAS.fx_forward_rate(p_sob_spot_rate,
972: p_contra_yield_rate, p_sob_yield_rate, p_num_days,
973: p_num_days, p_year_basis, p_year_basis, p_sob_forward_rate);
974: IF (g_proc_level>=g_debug_level) THEN
975: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'sob forward rate: '||p_sob_forward_rate);
976: END IF;
977: ELSE
978: p_sob_forward_rate := 1;
979: p_sob_yield_rate := p_contra_yield_rate;

Line 985: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'undiscounted fair value in sob ccy:' ||p_fair_value);

981:
982: -- calculate fair value in sob ccy (undiscounted)
983: p_fair_value := p_fair_value * p_sob_forward_rate;
984: IF (g_proc_level>=g_debug_level) THEN
985: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'undiscounted fair value in sob ccy:' ||p_fair_value);
986: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'sob discount rate: '||p_sob_yield_rate);
987: END IF;
988: -- discount fair value to spot date
989: p_mm_in.p_indicator := 'Y';

Line 986: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'sob discount rate: '||p_sob_yield_rate);

982: -- calculate fair value in sob ccy (undiscounted)
983: p_fair_value := p_fair_value * p_sob_forward_rate;
984: IF (g_proc_level>=g_debug_level) THEN
985: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'undiscounted fair value in sob ccy:' ||p_fair_value);
986: XTR_RISK_DEBUG_PKG.dlog('fv_fx: ' || 'sob discount rate: '||p_sob_yield_rate);
987: END IF;
988: -- discount fair value to spot date
989: p_mm_in.p_indicator := 'Y';
990: p_mm_in.p_future_val := p_fair_value;

Line 1005: XTR_RISK_DEBUG_PKG.dpop(null,'QRM_FX_FROMULAS.FV_FX');

1001: XTR_MM_COVERS.present_value(p_mm_in, p_mm_out);
1002: p_fair_value := p_mm_out.P_PRESENT_VAL;
1003: END IF;
1004: IF (g_proc_level>=g_debug_level) THEN
1005: XTR_RISK_DEBUG_PKG.dpop(null,'QRM_FX_FROMULAS.FV_FX');
1006: END IF;
1007: END fv_fx;
1008:
1009: