// additional option public string set_option(int scheduleNum, string optionType) { try { Excel_structuredBondViewModel e_structuredBondVM = this.InstVM_.Excel_interfaceViewModel_ as Excel_structuredBondViewModel; if (optionType.ToUpper() == "NONE") { e_structuredBondVM.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_[scheduleNum].Excel_additionalOptionViewModel_ = new Excel_noneOptionViewModel(); } else if (optionType.ToUpper() == "CALLABLE" || optionType.ToUpper() == "CALL") { e_structuredBondVM.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_[scheduleNum].Excel_additionalOptionViewModel_ = new Excel_callableOptionViewModel(); } else if (optionType.ToUpper() == "PUTTABLE" || optionType.ToUpper() == "PUT") { e_structuredBondVM.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_[scheduleNum].Excel_additionalOptionViewModel_ = new Excel_puttableOptionViewModel(); } else { throw new Exception(); } return("set option complete : " + optionType + " , type : [ none , callable , puttable ]"); } catch (Exception) { return("set fail , " + optionType + " , type : [ none , callable , puttable ] , default setting is none"); } }
public string addFixedCoupon(DateTime calculationStartDate, DateTime calculationEndDate, DateTime payoffDate, double fixedRate) { try { #region CheckParameter if (calculationStartDate >= calculationEndDate) { throw new Exception("startDate must be earlier than endDate"); } #endregion Excel_fixedCouponScheduleViewModel e_fcsvm = new Excel_fixedCouponScheduleViewModel(); e_fcsvm.EventDate_ = payoffDate; e_fcsvm.CalculationStartDate_ = calculationStartDate; e_fcsvm.CalculationEndDate_ = calculationEndDate; e_fcsvm.PayoffDate_ = payoffDate; e_fcsvm.FixedRate_ = fixedRate.ToString(); Excel_structuredBondViewModel e_sbvm = this.InstVM_.Excel_interfaceViewModel_ as Excel_structuredBondViewModel; e_sbvm.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_.Add(e_fcsvm); int schNum = e_sbvm.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_.Count - 1; //this.instVM_.Excel_interfaceViewModel_ = e_sbvm; List <string> member = fixedCpnMember_; List <string> value = new List <string>() { "structuredBond", "fixedCpn_sch", schNum.ToString(), StringConverter.xmlDateTimeToDateString(calculationStartDate), StringConverter.xmlDateTimeToDateString(calculationEndDate), StringConverter.xmlDateTimeToDateString(payoffDate), fixedRate.ToString() }; e_fcsvm.VBA_description_ = this.vba_description(member, value); return("OK"); } catch (Exception) { return("fixedCpn Add Fail"); } }
public int get_scheduleNum() { try { Excel_structuredBondViewModel e_structuredBondVM = this.InstVM_.Excel_interfaceViewModel_ as Excel_structuredBondViewModel; return(e_structuredBondVM.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_.Count); } catch (Exception) { return(0); } }
public string get_optionInfo(int scheduleNum, InfoType infoType) { try { Excel_structuredBondViewModel e_structuredBondVM = this.InstVM_.Excel_interfaceViewModel_ as Excel_structuredBondViewModel; string vba_desc = e_structuredBondVM.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_[scheduleNum] .Excel_additionalOptionViewModel_.vba_desciption(scheduleNum); return(this.infoParsing(vba_desc, infoType)); } catch (Exception e) { return("not implemented : " + e.Message); } }
public string get_sch_info(int scheduleNum, InfoType infoType) { try { Excel_structuredBondViewModel e_structuredBondVM = this.InstVM_.Excel_interfaceViewModel_ as Excel_structuredBondViewModel; string vba_desc = e_structuredBondVM.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_[scheduleNum].VBA_description_; return(this.infoParsing(vba_desc, infoType)); } catch (Exception e) { string errStr = "get couponSchdule info fail: " + e.Message; return(errStr); } }
public string addConditionMultiRangAccrualFixedCoupon(DateTime calculationStartDate, DateTime calculationEndDate, DateTime payoffDate, List <double> lowerRngList, List <string> referenceUnderCodeList, List <double> upperRngList, double fixedRate) { try { Excel_multiCondi_structuredAccrualCouponScheduleViewModel e_mc_sacsvm = new Excel_multiCondi_structuredAccrualCouponScheduleViewModel(); e_mc_sacsvm.EventDate_ = payoffDate; e_mc_sacsvm.CalculationStartDate_ = calculationStartDate; e_mc_sacsvm.CalculationEndDate_ = calculationEndDate; e_mc_sacsvm.PaymentDate_ = payoffDate; int rangeCount = lowerRngList.Count; for (int i = 0; i < rangeCount; i++) { Range1DViewModel accRng1D = new Range1DViewModel(); accRng1D.LowerBound_ = lowerRngList[i].ToString(); DateTime effDate = this.InstVM_.Excel_interfaceViewModel_.Excel_issueInfoViewModel_.EffectiveDate_; //this.addUnderlying(Excel_loaderViewModel.loadUnderInfo2(effDate, referenceUnderCodeList[i])); this.addUnderlying(referenceUnderCodeList[i]); Excel_choiceUnderlyingCalcIDViewModel choiceUnderCalcIDVM = new Excel_choiceUnderlyingCalcIDViewModel(); choiceUnderCalcIDVM.EventDate_ = payoffDate; Excel_selectedUnderlyingViewModel selectedUnder = new Excel_selectedUnderlyingViewModel(); selectedUnder.Code_ = referenceUnderCodeList[i]; selectedUnder.NameTrans_ = new NameTrans(referenceUnderCodeList[i]); selectedUnder.Checked_ = true; choiceUnderCalcIDVM.Excel_selectedUnderlyingViewModel_.Add(selectedUnder); accRng1D.UpperBound_ = upperRngList[i].ToString(); e_mc_sacsvm.Range1DViewModel_.Add(accRng1D); e_mc_sacsvm.Excel_underlyingCalcIDViewModel_.Add(choiceUnderCalcIDVM); } Excel_constReturnCalViewModel e_crcvm = new Excel_constReturnCalViewModel(); e_crcvm.ConstReturn_ = fixedRate.ToString(); e_mc_sacsvm.Excel_returnCalcInfoViewModel_.Add(e_crcvm); //e_mc_sacsvm.FixedRate_ = fixedRate.ToString(); Excel_structuredBondViewModel e_sbvm = this.InstVM_.Excel_interfaceViewModel_ as Excel_structuredBondViewModel; e_sbvm.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_.Add(e_mc_sacsvm); //this.instVM_.Excel_interfaceViewModel_ = e_sbvm; return("OK"); } catch (Exception) { return("conditionMultiRangAccrualFixedCoupon add Fail."); throw; } }
public string addSingleConditionDualRangAccrualFixedCoupon(DateTime calculationStartDate, DateTime calculationEndDate, DateTime payoffDate, List <double> lowerRngList, List <string> referenceUnderCodeList, List <double> upperRngList, double fixedRate) { try { #region CheckParameter if (calculationStartDate >= calculationEndDate) { throw new Exception("startDate must be earlier than endDate"); } //// check underlying //if ( !this.hasUnderlyings(underlyings)) // throw new Exception(underlyings + " does not exist. add underlying first."); #endregion Excel_multiCondi_multiRng_structuredAccrualCouponScheduleViewModel e_mc_mr_sacsvm = new Excel_multiCondi_multiRng_structuredAccrualCouponScheduleViewModel(); e_mc_mr_sacsvm.EventDate_ = payoffDate; e_mc_mr_sacsvm.CalculationStartDate_ = calculationStartDate; e_mc_mr_sacsvm.CalculationEndDate_ = calculationEndDate; e_mc_mr_sacsvm.PayoffDate_ = payoffDate; int rangeCount = lowerRngList.Count; Excel_multi_rangeNDViewModel e_m_rngNDVM = new Excel_multi_rangeNDViewModel(); for (int i = 0; i < rangeCount; i++) { Range1DViewModel accRng1D = new Range1DViewModel(); accRng1D.LowerBound_ = lowerRngList[i].ToString(); DateTime effDate = this.InstVM_.Excel_interfaceViewModel_.Excel_issueInfoViewModel_.EffectiveDate_; //this.addUnderlying(Excel_loaderViewModel.loadUnderInfo2(effDate, referenceUnderCodeList[i])); this.addUnderlying(referenceUnderCodeList[i]); Excel_choiceUnderlyingCalcIDViewModel choiceUnderCalcIDVM = new Excel_choiceUnderlyingCalcIDViewModel(); choiceUnderCalcIDVM.EventDate_ = payoffDate; Excel_selectedUnderlyingViewModel selectedUnder = new Excel_selectedUnderlyingViewModel(); selectedUnder.Code_ = referenceUnderCodeList[i]; selectedUnder.NameTrans_ = new NameTrans(referenceUnderCodeList[i]); selectedUnder.Checked_ = true; choiceUnderCalcIDVM.Excel_selectedUnderlyingViewModel_.Add(selectedUnder); accRng1D.UpperBound_ = upperRngList[i].ToString(); e_m_rngNDVM.Range1DViewModel_.Add(accRng1D); e_m_rngNDVM.Excel_underlyingCalcIDViewModel_.Add(choiceUnderCalcIDVM); } e_mc_mr_sacsvm.Excel_multi_rangeNDViewModel_.Add(e_m_rngNDVM); Excel_constReturnCalViewModel e_crcvm = new Excel_constReturnCalViewModel(); e_crcvm.ConstReturn_ = fixedRate.ToString(); e_mc_mr_sacsvm.Excel_returnCalcInfoViewModel_.Add(e_crcvm); //e_mc_sacsvm.FixedRate_ = fixedRate.ToString(); Excel_structuredBondViewModel e_sbvm = this.InstVM_.Excel_interfaceViewModel_ as Excel_structuredBondViewModel; e_sbvm.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_.Add(e_mc_mr_sacsvm); //this.instVM_.Excel_interfaceViewModel_ = e_sbvm; return("OK"); } catch (Exception) { return("singleConditionDualRangAccrualFixedCoupon Add Fail"); } }
public string addVanillaCoupon(DateTime calculationStartDate, DateTime calculationEndDate, DateTime payoffDate, double gearing, double spread, string underlyingCode) { try { #region CheckParameter if (calculationStartDate >= calculationEndDate) { throw new Exception("startDate must be earlier than endDate"); } // check underlying if (!this.hasUnderlyings(underlyingCode)) { throw new Exception(underlyingCode + " does not exist. add underlying first."); } #endregion Excel_vanillaFloatingCouponScheduleViewModel e_vfcsvm = new Excel_vanillaFloatingCouponScheduleViewModel(); // ---------------- underlying part //this.addUnderlying(underlyingCode); Excel_underlyingCalcInfoViewModel e_ucivm = this.InstVM_.Excel_interfaceViewModel_.Excel_underlyingCalcInfoViewModel_; e_vfcsvm.Excel_underlyingCalcInfoViewModel_ = e_ucivm; Excel_underlyingCalcIDViewModel e_mucidvm = Excel_underlyingCalcIDViewModel.CreateExcel_underlyingCalcID("CHOICE"); e_mucidvm.EventDate_ = payoffDate; e_mucidvm.setUnderlying(e_ucivm); e_mucidvm.selectUnderlyings(underlyingCode); e_vfcsvm.Excel_underlyingCalcIDViewModel_ = e_mucidvm; // ----------------- coupon part e_vfcsvm.EventDate_ = payoffDate; e_vfcsvm.CalculationStartDate_ = calculationStartDate; e_vfcsvm.CalculationEndDate_ = calculationEndDate; e_vfcsvm.PayoffDate_ = payoffDate; e_vfcsvm.Gearing_ = gearing.ToString(); e_vfcsvm.Spread_ = spread.ToString(); e_vfcsvm.OutGearing_ = "1.0"; e_vfcsvm.OutSpread_ = "0.0"; e_vfcsvm.Cap_ = "99.0"; e_vfcsvm.Floor_ = "-99.0"; Excel_structuredBondViewModel e_sbvm = this.InstVM_.Excel_interfaceViewModel_ as Excel_structuredBondViewModel; e_sbvm.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_.Add(e_vfcsvm); int schNum = e_sbvm.Excel_couponScheduleListViewModel_.Excel_couponScheduleViewModel_.Count - 1; //this.instVM_.Excel_interfaceViewModel_ = e_sbvm; List <string> member = vanillaFloatingCpnMember_; List <string> value = new List <string>() { "structuredBond", "vanillaCpn_sch", schNum.ToString(), StringConverter.xmlDateTimeToDateString(calculationStartDate), StringConverter.xmlDateTimeToDateString(calculationEndDate), StringConverter.xmlDateTimeToDateString(payoffDate), gearing.ToString(), spread.ToString(), underlyingCode }; e_vfcsvm.VBA_description_ = this.vba_description(member, value); return("OK"); } catch (Exception) { return("vanillaCpn Add Fail"); throw; } }