const METPointer Event::MET() const { return MET(Globals::metAlgorithm); }
{ Fprintf(TOSCREENANDFILE,"First reset date greater than contract maturity!\n"); status+=1; } } return status; } extern PricingMethod MET(TR_ZBO); extern PricingMethod MET(TR_SWAPTION); extern PricingMethod MET(TR_BERMUDANSWAPTION); PricingMethod* MOD_OPT(methods)[]={ &MET(TR_ZBO), &MET(TR_SWAPTION), &MET(TR_BERMUDANSWAPTION), NULL }; DynamicTest* MOD_OPT(tests)[]={ NULL }; Pricing MOD_OPT(pricing)={ ID_MOD_OPT, MOD_OPT(methods), MOD_OPT(tests), MOD_OPT(ChkMix) };
{ if ((ptOpt->PathDep.Val.V_NUMFUNC_2)->Par[4].Val.V_PDOUBLE<ptMod->S0.Val.V_PDOUBLE) { Fprintf(TOSCREENANDFILE,"Maximum lower than spot!\n"); status+=1; }; } return status; } extern PricingMethod MET(AP_Asian_FMMMER); extern PricingMethod MET(AP_FixedAsian_FusaiMeucciMER); extern PricingMethod MET(MC_Merton_FixedLookback); extern PricingMethod MET(MC_Merton_FloatingLookback); PricingMethod *MOD_OPT(methods)[]={ &MET(AP_Asian_FMMMER), &MET(AP_FixedAsian_FusaiMeucciMER), &MET(MC_Merton_FixedLookback), &MET(MC_Merton_FloatingLookback), NULL }; DynamicTest* MOD_OPT(tests)[]={ NULL }; Pricing MOD_OPT(pricing)={ ID_MOD_OPT, MOD_OPT(methods), MOD_OPT(tests), MOD_OPT(ChkMix) };
} int CALC(AP_Asian_FMMKOU)(void *Opt,void *Mod,PricingMethod *Met) { return AVAILABLE_IN_FULL_PREMIA; } static int MET(Init)(PricingMethod *Met,Option *Opt) { if ( Met->init == 0) { Met->init=1; Met->Par[0].Val.V_INT2=52; Met->Par[1].Val.V_INT2=3000; } return OK; } PricingMethod MET(AP_Asian_FMMKOU)= { "AP_Asian_FMM_KOU", {{"Nb.of Monitoring Dates",INT2,{2000},ALLOW }, {"Nb.of Integration Points ",INT2,{1000},ALLOW}, {" ",PREMIA_NULLTYPE,{0},FORBID}}, CALC(AP_Asian_FMMKOU), {{"Price",DOUBLE,{100},FORBID},{"Delta",DOUBLE,{100},FORBID} ,{" ",PREMIA_NULLTYPE,{0},FORBID}}, CHK_OPT(AP_Asian_FMMKOU), CHK_ok, MET(Init) };
int status=OK; if ((ptOpt->Maturity.Val.V_DATE)<=(ptMod->T.Val.V_DATE)) { Fprintf(TOSCREENANDFILE,"Current date greater than maturity!\n"); status+=1; }; return status; } extern PricingMethod MET(AP_MedvedevScaillet); extern PricingMethod MET(AP_GrzelakOosterlee); PricingMethod* MOD_OPT(methods)[]={ &MET(AP_MedvedevScaillet), &MET(AP_GrzelakOosterlee), NULL }; DynamicTest* MOD_OPT(tests)[]={ NULL }; Pricing MOD_OPT(pricing)={ ID_MOD_OPT, MOD_OPT(methods), MOD_OPT(tests), MOD_OPT(ChkMix) };
#include "static_merton_stdr.h" int MOD_OPT(ChkMix)(Option *Opt,Model *Mod) { return OK; } extern PricingMethod MET(AP_MASDEMONTORTIZ); PricingMethod* MOD_OPT(methods)[]={ &MET(AP_MASDEMONTORTIZ), NULL }; DynamicTest* MOD_OPT(tests)[]={ NULL }; Pricing MOD_OPT(pricing)={ ID_MOD_OPT, MOD_OPT(methods), MOD_OPT(tests), MOD_OPT(ChkMix) };