1: PACKAGE BODY XTR_MM_COVERS AS
2: /* $Header: xtrmmcvb.pls 120.29.12010000.2 2008/08/06 10:43:40 srsampat ship $ */
3:
4: ----------------------------------------------------------------------------------------------------------------
5: -- This is just a cover function that determines whether CALC_DAYS_RUN or
334: v_extensive BOOLEAN := FALSE;
335: v_ann_basis NUMBER;
336: v_day_count NUMBER;
337: BEGIN
338: -- xtr_risk_debug_pkg.dpush('XTR_MM_COVERS.FUTURE_VALUE');
339:
340: --Determine whether p_compounding_freq is necessary
341: IF p_in_rec.p_rate_type='P' THEN
342: v_cf_necessary := TRUE;
438: 'or ''D'' or ''DR''.');
439:
440: END IF;
441:
442: -- xtr_risk_debug_pkg.dpop('XTR_MM_COVERS.FUTURE_VALUE');
443:
444: END future_value;
445:
446:
498: v_day_count NUMBER;
499: v_ann_basis NUMBER;
500: BEGIN
501: IF xtr_risk_debug_pkg.g_Debug THEN
502: xtr_risk_debug_pkg.dpush('XTR_MM_COVERS.PRESENT_VALUE');
503: END IF;
504:
505: --Determine whether p_compounding_freq is necessary
506: IF p_in_rec.p_rate_type='P' THEN
618: 'or ''D'' or ''DR''.');
619: END IF;
620:
621: IF xtr_risk_debug_pkg.g_Debug THEN
622: xtr_risk_debug_pkg.dpop('XTR_MM_COVERS.PRESENT_VALUE');
623: END IF;
624:
625: END present_value;
626:
742: v_df_out xtr_rate_conversion.df_out_rec_type;
743:
744: BEGIN
745: IF xtr_risk_debug_pkg.g_Debug THEN
746: xtr_risk_debug_pkg.dpush('XTR_MM_COVERS.INTEREST_FORWARD_RATE');
747: END IF;
748:
749: IF (p_in_rec.p_indicator IN ('D','d')) THEN
750: xtr_mm_formulas.fra_price_df(p_in_rec.p_t, p_in_rec.p_T1,
780: 'or ''D''.');
781: END IF;
782:
783: IF xtr_risk_debug_pkg.g_Debug THEN
784: xtr_risk_debug_pkg.dpop('XTR_MM_COVERS.INTEREST_FORWARD_RATE');
785: END IF;
786: END interest_forward_rate;
787:
788:
857: v_strike NUMBER;
858:
859: BEGIN
860: IF xtr_risk_debug_pkg.g_Debug THEN
861: xtr_risk_debug_pkg.dpush('XTR_MM_COVERS.BLACK_OPTION_PRICE_CV');
862: END IF;
863:
864: --we want all rates to be Actual/365 output to find the forward rate
865: v_rc_in.p_day_count_basis_out := 'ACTUAL365'; -- bug 3509267
994: p_out_rec.p_Nd1_a := v_bo_out.p_Nd1_a;
995: p_out_rec.p_Nd2_a := v_bo_out.p_Nd2_a;
996:
997: IF xtr_risk_debug_pkg.g_Debug THEN
998: xtr_risk_debug_pkg.dpop('XTR_MM_COVERS.BLACK_OPTION_PRICE_CV');
999: END IF;
1000: END black_option_price_cv;
1001:
1002:
1312: l_precision NUMBER;
1313: l_ext_precision NUMBER;
1314: l_min_acct_unit NUMBER;
1315: l_rounding_type VARCHAR2(1) := 'R';
1316: l_comp_coupon XTR_MM_COVERS.COMPOUND_CPN_REC_TYPE;
1317: l_bond_rec XTR_MM_COVERS.BOND_INFO_REC_TYPE;
1318: l_amt1 number;
1319: l_amt2 number;
1320: l_amt3 number;
1313: l_ext_precision NUMBER;
1314: l_min_acct_unit NUMBER;
1315: l_rounding_type VARCHAR2(1) := 'R';
1316: l_comp_coupon XTR_MM_COVERS.COMPOUND_CPN_REC_TYPE;
1317: l_bond_rec XTR_MM_COVERS.BOND_INFO_REC_TYPE;
1318: l_amt1 number;
1319: l_amt2 number;
1320: l_amt3 number;
1321: -------------------------------------------------------------------------