Пример #1
0
        // 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");
            }
        }
Пример #2
0
        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");
            }
        }
Пример #3
0
        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);
            }
        }
Пример #4
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);
            }
        }
Пример #5
0
        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);
            }
        }
Пример #6
0
        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;
            }
        }
Пример #7
0
        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");
            }
        }
Пример #8
0
        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;
            }
        }