DBA Data[Home] [Help]

APPS.XTR_MM_COVERS dependencies on XTR_RATE_CONVERSION

Line 330: v_in_rec xtr_rate_conversion.df_in_rec_type;

326: ----------------------------------------------------------------------------*/
327: PROCEDURE future_value(p_in_rec IN futureValue_in_rec_type,
328: p_out_rec IN OUT NOCOPY futureValue_out_rec_type) IS
329:
330: v_in_rec xtr_rate_conversion.df_in_rec_type;
331: v_out_rec xtr_rate_conversion.df_out_rec_type;
332: v_rate NUMBER;
333: v_cf_necessary BOOLEAN := FALSE;
334: v_extensive BOOLEAN := FALSE;

Line 331: v_out_rec xtr_rate_conversion.df_out_rec_type;

327: PROCEDURE future_value(p_in_rec IN futureValue_in_rec_type,
328: p_out_rec IN OUT NOCOPY futureValue_out_rec_type) IS
329:
330: v_in_rec xtr_rate_conversion.df_in_rec_type;
331: v_out_rec xtr_rate_conversion.df_out_rec_type;
332: v_rate NUMBER;
333: v_cf_necessary BOOLEAN := FALSE;
334: v_extensive BOOLEAN := FALSE;
335: v_ann_basis NUMBER;

Line 367: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);

363: v_in_rec.p_rate:=p_in_rec.p_rate;
364: v_in_rec.p_rate_type:=p_in_rec.p_rate_type;
365: v_in_rec.p_compound_freq:=p_in_rec.p_compound_freq;
366: v_in_rec.p_day_count_basis:=p_in_rec.p_day_count_basis;
367: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);
368: v_rate:=v_out_rec.p_result;
369: p_out_rec.p_future_val:=p_in_rec.p_present_val/v_rate;
370: ELSIF (p_in_rec.p_day_count<=p_in_rec.p_annual_basis) THEN
371: xtr_mm_formulas.future_value_yield_rate(p_in_rec.p_present_val,

Line 382: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);

378: v_in_rec.p_indicator:='T';
379: v_in_rec.p_day_count:=p_in_rec.p_day_count;
380: v_in_rec.p_annual_basis:=p_in_rec.p_annual_basis;
381: v_in_rec.p_rate:=p_in_rec.p_rate;
382: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);
383: v_rate:=v_out_rec.p_result;
384: p_out_rec.p_future_val:=p_in_rec.p_present_val/v_rate;
385: END IF;
386: ELSIF (p_in_rec.p_indicator = 'DR') THEN

Line 393: xtr_rate_conversion.discount_to_yield_rate(p_in_rec.p_rate,

389: --able to convert to discount factor
390: calc_days_run_c(p_in_rec.p_pv_date, p_in_rec.p_fv_date,
391: p_in_rec.p_day_count_basis, null, v_day_count, v_ann_basis);
392:
393: xtr_rate_conversion.discount_to_yield_rate(p_in_rec.p_rate,
394: v_day_count,
395: v_ann_basis,
396: v_rate);
397: --use discount factor method

Line 405: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);

401: v_in_rec.p_rate:=v_rate;
402: v_in_rec.p_rate_type:=p_in_rec.p_rate_type;
403: v_in_rec.p_compound_freq:=p_in_rec.p_compound_freq;
404: v_in_rec.p_day_count_basis:=p_in_rec.p_day_count_basis;
405: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);
406: v_rate:=v_out_rec.p_result;
407: p_out_rec.p_future_val:=p_in_rec.p_present_val/v_rate;
408: ELSIF (p_in_rec.p_day_count<=p_in_rec.p_annual_basis) THEN
409: xtr_mm_formulas.future_value_discount_rate(p_in_rec.p_present_val,

Line 417: xtr_rate_conversion.discount_to_yield_rate(p_in_rec.p_rate,

413: p_out_rec.p_future_val);
414: ELSE
415: -- use discount factor method, but first find the yield rate to be
416: --able to convert to discount factor
417: xtr_rate_conversion.discount_to_yield_rate(p_in_rec.p_rate,
418: p_in_rec.p_day_count,
419: p_in_rec.p_annual_basis,
420: v_rate);
421: --convert to disc. factor

Line 426: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);

422: v_in_rec.p_indicator:='T';
423: v_in_rec.p_day_count:=p_in_rec.p_day_count;
424: v_in_rec.p_annual_basis:=p_in_rec.p_annual_basis;
425: v_in_rec.p_rate:=v_rate;
426: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);
427: v_rate:=v_out_rec.p_result;
428:
429: --FV with disc. factor
430: p_out_rec.p_future_val:=p_in_rec.p_present_val/v_rate;

Line 494: v_in_rec xtr_rate_conversion.df_in_rec_type;

490: ----------------------------------------------------------------------------*/
491: PROCEDURE present_value(p_in_rec IN presentValue_in_rec_type,
492: p_out_rec IN OUT NOCOPY presentValue_out_rec_type) IS
493: v_rate NUMBER;
494: v_in_rec xtr_rate_conversion.df_in_rec_type;
495: v_out_rec xtr_rate_conversion.df_out_rec_type;
496: v_cf_necessary BOOLEAN := FALSE;
497: v_extensive BOOLEAN := FALSE;
498: v_day_count NUMBER;

Line 495: v_out_rec xtr_rate_conversion.df_out_rec_type;

491: PROCEDURE present_value(p_in_rec IN presentValue_in_rec_type,
492: p_out_rec IN OUT NOCOPY presentValue_out_rec_type) IS
493: v_rate NUMBER;
494: v_in_rec xtr_rate_conversion.df_in_rec_type;
495: v_out_rec xtr_rate_conversion.df_out_rec_type;
496: v_cf_necessary BOOLEAN := FALSE;
497: v_extensive BOOLEAN := FALSE;
498: v_day_count NUMBER;
499: v_ann_basis NUMBER;

Line 532: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);

528: v_in_rec.p_rate:=p_in_rec.p_rate;
529: v_in_rec.p_rate_type:=p_in_rec.p_rate_type;
530: v_in_rec.p_compound_freq:=p_in_rec.p_compound_freq;
531: v_in_rec.p_day_count_basis:=p_in_rec.p_day_count_basis;
532: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);
533: v_rate:=v_out_rec.p_result;
534: xtr_mm_formulas.present_value_discount_factor(v_rate,
535: p_in_rec.p_future_val,
536: p_out_rec.p_present_val);

Line 549: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);

545: v_in_rec.p_indicator:='T';
546: v_in_rec.p_day_count:=p_in_rec.p_day_count;
547: v_in_rec.p_annual_basis:=p_in_rec.p_annual_basis;
548: v_in_rec.p_rate:=p_in_rec.p_rate;
549: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);
550: v_rate:=v_out_rec.p_result;
551:
552: xtr_mm_formulas.present_value_discount_factor(v_rate,
553: p_in_rec.p_future_val,

Line 563: xtr_rate_conversion.discount_to_yield_rate(p_in_rec.p_rate,

559: --able to convert to discount factor
560: calc_days_run_c(p_in_rec.p_pv_date, p_in_rec.p_fv_date,
561: p_in_rec.p_day_count_basis, null, v_day_count, v_ann_basis);
562:
563: xtr_rate_conversion.discount_to_yield_rate(p_in_rec.p_rate,
564: v_day_count,
565: v_ann_basis,
566: v_rate);
567: --use discount factor method

Line 575: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);

571: v_in_rec.p_rate:=v_rate;
572: v_in_rec.p_rate_type:=p_in_rec.p_rate_type;
573: v_in_rec.p_compound_freq:=p_in_rec.p_compound_freq;
574: v_in_rec.p_day_count_basis:=p_in_rec.p_day_count_basis;
575: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);
576: v_rate:=v_out_rec.p_result;
577: xtr_mm_formulas.present_value_discount_factor(v_rate,
578: p_in_rec.p_future_val,
579: p_out_rec.p_present_val);

Line 589: xtr_rate_conversion.discount_to_yield_rate(p_in_rec.p_rate,

585: p_out_rec.p_present_val);
586: ELSE
587: -- use discount factor method, but first find the yield rate to be
588: --able to convert to discount factor
589: xtr_rate_conversion.discount_to_yield_rate(p_in_rec.p_rate,
590: p_in_rec.p_day_count,
591: p_in_rec.p_annual_basis,
592: v_rate);
593:

Line 599: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);

595: v_in_rec.p_indicator:='T';
596: v_in_rec.p_day_count:=p_in_rec.p_day_count;
597: v_in_rec.p_annual_basis:=p_in_rec.p_annual_basis;
598: v_in_rec.p_rate:=v_rate;
599: xtr_rate_conversion.discount_factor_conv(v_in_rec,v_out_rec);
600: v_rate:=v_out_rec.p_result;
601:
602: --PV with disc. factor
603: xtr_mm_formulas.present_value_discount_factor(v_rate,

Line 739: v_rc_in xtr_rate_conversion.rate_conv_in_rec_type;

735: p_out_rec OUT NOCOPY int_forw_rate_out_rec_type) AS
736:
737: v_rate_short NUMBER;
738: v_rate_long NUMBER;
739: v_rc_in xtr_rate_conversion.rate_conv_in_rec_type;
740: v_rc_out xtr_rate_conversion.rate_conv_out_rec_type;
741: v_df_in xtr_rate_conversion.df_in_rec_type;
742: v_df_out xtr_rate_conversion.df_out_rec_type;
743:

Line 740: v_rc_out xtr_rate_conversion.rate_conv_out_rec_type;

736:
737: v_rate_short NUMBER;
738: v_rate_long NUMBER;
739: v_rc_in xtr_rate_conversion.rate_conv_in_rec_type;
740: v_rc_out xtr_rate_conversion.rate_conv_out_rec_type;
741: v_df_in xtr_rate_conversion.df_in_rec_type;
742: v_df_out xtr_rate_conversion.df_out_rec_type;
743:
744: BEGIN

Line 741: v_df_in xtr_rate_conversion.df_in_rec_type;

737: v_rate_short NUMBER;
738: v_rate_long NUMBER;
739: v_rc_in xtr_rate_conversion.rate_conv_in_rec_type;
740: v_rc_out xtr_rate_conversion.rate_conv_out_rec_type;
741: v_df_in xtr_rate_conversion.df_in_rec_type;
742: v_df_out xtr_rate_conversion.df_out_rec_type;
743:
744: BEGIN
745: IF xtr_risk_debug_pkg.g_Debug THEN

Line 742: v_df_out xtr_rate_conversion.df_out_rec_type;

738: v_rate_long NUMBER;
739: v_rc_in xtr_rate_conversion.rate_conv_in_rec_type;
740: v_rc_out xtr_rate_conversion.rate_conv_out_rec_type;
741: v_df_in xtr_rate_conversion.df_in_rec_type;
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');

Line 760: xtr_rate_conversion.discount_factor_conv(v_df_in, v_df_out);

756: --convert the first rate: spot to start date rate
757: v_df_in.p_rate := p_in_rec.p_Rt;
758: v_df_in.p_day_count := p_in_rec.p_t;
759: v_df_in.p_annual_basis := p_in_rec.p_year_basis;
760: xtr_rate_conversion.discount_factor_conv(v_df_in, v_df_out);
761: v_rate_short := v_df_out.p_result;
762: IF xtr_risk_debug_pkg.g_Debug THEN
763: xtr_risk_debug_pkg.dlog('interest_forward_rate: ' || 'v_rate_short',v_rate_short);
764: END IF;

Line 769: xtr_rate_conversion.discount_factor_conv(v_df_in, v_df_out);

765: --convert the second rate: spot to maturity date rate
766: v_df_in.p_rate := p_in_rec.p_RT1;
767: v_df_in.p_day_count := p_in_rec.p_T1;
768: v_df_in.p_annual_basis := p_in_rec.p_year_basis;
769: xtr_rate_conversion.discount_factor_conv(v_df_in, v_df_out);
770: v_rate_long := v_df_out.p_result;
771: IF xtr_risk_debug_pkg.g_Debug THEN
772: xtr_risk_debug_pkg.dlog('interest_forward_rate: ' || 'v_rate_long',v_rate_long);
773: END IF;

Line 849: v_rc_in xtr_rate_conversion.rate_conv_in_rec_type;

845: ----------------------------------------------------------------------------*/
846: PROCEDURE black_option_price_cv (p_in_rec IN black_opt_cv_in_rec_type,
847: p_out_rec OUT NOCOPY black_opt_cv_out_rec_type) IS
848:
849: v_rc_in xtr_rate_conversion.rate_conv_in_rec_type;
850: v_rc_out xtr_rate_conversion.rate_conv_out_rec_type;
851: v_fr_in int_forw_rate_in_rec_type;
852: v_fr_out int_forw_rate_out_rec_type;
853: v_bo_in xtr_mm_formulas.black_opt_in_rec_type;

Line 850: v_rc_out xtr_rate_conversion.rate_conv_out_rec_type;

846: PROCEDURE black_option_price_cv (p_in_rec IN black_opt_cv_in_rec_type,
847: p_out_rec OUT NOCOPY black_opt_cv_out_rec_type) IS
848:
849: v_rc_in xtr_rate_conversion.rate_conv_in_rec_type;
850: v_rc_out xtr_rate_conversion.rate_conv_out_rec_type;
851: v_fr_in int_forw_rate_in_rec_type;
852: v_fr_out int_forw_rate_out_rec_type;
853: v_bo_in xtr_mm_formulas.black_opt_in_rec_type;
854: v_bo_out xtr_mm_formulas.black_opt_out_rec_type;

Line 887: xtr_rate_conversion.rate_conv_simple_annualized(v_rc_in, v_rc_out);

883: xtr_risk_debug_pkg.dlog('black_option_price_cv: ' || 'Short Compound Freq OUT',v_rc_in.p_compound_freq_out);
884: xtr_risk_debug_pkg.dlog('black_option_price_cv: ' || 'Short Rate IN',v_rc_in.p_rate_in);
885: END IF;
886:
887: xtr_rate_conversion.rate_conv_simple_annualized(v_rc_in, v_rc_out);
888: v_fr_in.p_Rt := v_rc_out.p_rate_out;
889:
890: --second, convert long rate to Actual/365
891: v_rc_in.p_rate_type_in := p_in_rec.p_rate_type_long;

Line 910: xtr_rate_conversion.rate_conv_simple_annualized(v_rc_in, v_rc_out);

906: xtr_risk_debug_pkg.dlog('black_option_price_cv: ' || 'Long Compound Freq OUT',v_rc_in.p_compound_freq_out);
907: xtr_risk_debug_pkg.dlog('black_option_price_cv: ' || 'Long Rate IN',v_rc_in.p_rate_in);
908: END IF;
909:
910: xtr_rate_conversion.rate_conv_simple_annualized(v_rc_in, v_rc_out);
911: v_fr_in.p_RT1 := v_rc_out.p_rate_out;
912:
913: --third, convert strike rate to Actual/365 (has to be the same basis as
914: --the forward rate

Line 935: xtr_rate_conversion.rate_conv_simple_annualized(v_rc_in, v_rc_out);

931: xtr_risk_debug_pkg.dlog('black_option_price_cv: ' || 'Strike Compound Freq OUT',v_rc_in.p_compound_freq_out);
932: xtr_risk_debug_pkg.dlog('black_option_price_cv: ' || 'Strike Rate IN',v_rc_in.p_rate_in);
933: END IF;
934:
935: xtr_rate_conversion.rate_conv_simple_annualized(v_rc_in, v_rc_out);
936: v_strike := v_rc_out.p_rate_out;
937:
938: --get t
939: calc_days_run_c(p_in_rec.p_spot_date, p_in_rec.p_start_date,

Line 969: xtr_rate_conversion.rate_conversion(v_rc_in, v_rc_out);

965: v_rc_in.p_rate_in := p_in_rec.p_ir_long;
966: v_rc_in.p_start_date := p_in_rec.p_spot_date;
967: v_rc_in.p_end_date := p_in_rec.p_maturity_date;
968: v_rc_in.p_compound_freq_in := p_in_rec.p_compound_freq_long;
969: xtr_rate_conversion.rate_conversion(v_rc_in, v_rc_out);
970: v_bo_in.p_T2_INT_RATE := v_rc_out.p_rate_out;
971: ELSE
972: v_bo_in.p_T2_INT_RATE := p_in_rec.p_ir_long;
973: END IF;