public string set_hullWhiteModel(string underCode, double currentValue, double alpha, double sigma, YieldTermStructure fittingCurve)
        {
            try
            {
                Excel_standardHifiveParaViewModel e_sphvm = this.InstVM_.Excel_parameterViewModel_ as Excel_standardHifiveParaViewModel;

                // under 에서 tenor를 가져옴
                string tenor = "3M"; // defaultrrrr

                bool setFlag = false;

                Excel_hullWhiteOneFactorViewModel e_hwvm = new Excel_hullWhiteOneFactorViewModel();

                foreach (var item in e_sphvm.Excel_underlyingCalcInfo_paraViewModel_.Excel_underlyingInfo_paraViewModel_)
                {
                    if (underCode == item.KrCode_)
                    {
                        e_hwvm.CurrentValue_ = currentValue.ToString();

                        e_hwvm.Alpha_      = alpha.ToString();
                        e_hwvm.Volatility_ = sigma.ToString();

                        e_hwvm.Excel_yieldCurveViewModel_ = fittingCurve.Excel_yieldCurveViewModel_;

                        item.Excel_underlyingModel_paraViewModel_ = e_hwvm;

                        setFlag = true;
                    }
                }

                Excel_rateInfoViewModel e_rateInfoVM = new Excel_rateInfoViewModel();

                foreach (var item in this.InstVM_.Excel_interfaceViewModel_.Excel_underlyingCalcInfoViewModel_.Excel_underlyingInfoViewModel_)
                {
                    if (underCode == item.KrCode_)
                    {
                        Excel_interestRateViewModel e_irvm = item as Excel_interestRateViewModel;

                        e_hwvm.setInterestRateInfo(e_irvm);
                    }
                }



                if (!setFlag)
                {
                    throw new Exception(underCode + " doesn't exist");
                }

                return("set hullWhit_model complete : " + underCode);
            }
            catch (Exception e)
            {
                return("set fail : " + e.Message);
            }
        }
Пример #2
0
        public string set_forwardModel(string underCode, double currentValue, string tenor, YieldTermStructure fittingCurve)
        {
            try
            {
                Excel_standardSwapParaViewModel e_sspvm = this.InstVM_.Excel_parameterViewModel_ as Excel_standardSwapParaViewModel;

                // under 에서 tenor를 가져옴
                //string tenor = "3M"; // defaultrrrr
                if (e_sspvm.Excel_underlyingCalcInfo_paraViewModel_.Excel_underlyingInfo_paraViewModel_.Count == 0)
                {
                    throw new Exception("underlying parameter is empty");
                }

                bool findFlag = false;

                foreach (var item in e_sspvm.Excel_underlyingCalcInfo_paraViewModel_.Excel_underlyingInfo_paraViewModel_)
                //foreach (var item in InstVM_.Excel_interfaceViewModel_.Excel_underlyingCalcInfoViewModel_.Excel_underlyingInfoViewModel_)
                {
                    if (underCode.ToUpper() == item.KrCode_.ToUpper())
                    {
                        Excel_forwardModelViewModel e_fmvm = new Excel_forwardModelViewModel();

                        e_fmvm.CurrentValue_ = currentValue.ToString();
                        e_fmvm.Tenor_        = tenor;

                        e_fmvm.Excel_yieldCurveViewModel_ = fittingCurve.Excel_yieldCurveViewModel_;

                        item.Excel_underlyingModel_paraViewModel_ = e_fmvm;

                        findFlag = true;
                    }
                }

                if (!findFlag)
                {
                    throw new Exception(underCode + " does not exist");
                }

                return("load complete");
            }
            catch (Exception e)
            {
                return("load fail : " + e.Message);
            }
        }
        public string set_forwardModel(string underCode, double currentValue, string tenor, YieldTermStructure fittingCurve)
        {
            try
            {
                Excel_standardSwapParaViewModel e_sspvm = this.InstVM_.Excel_parameterViewModel_ as Excel_standardSwapParaViewModel;

                // under 에서 tenor를 가져옴
                //string tenor = "3M"; // defaultrrrr
                if (e_sspvm.Excel_underlyingCalcInfo_paraViewModel_.Excel_underlyingInfo_paraViewModel_.Count == 0)
                    throw new Exception("underlying parameter is empty");

                bool findFlag = false;

                foreach (var item in e_sspvm.Excel_underlyingCalcInfo_paraViewModel_.Excel_underlyingInfo_paraViewModel_)
                //foreach (var item in InstVM_.Excel_interfaceViewModel_.Excel_underlyingCalcInfoViewModel_.Excel_underlyingInfoViewModel_)
                {

                    if (underCode.ToUpper() == item.KrCode_.ToUpper())
                    {
                        Excel_forwardModelViewModel e_fmvm = new Excel_forwardModelViewModel();

                        e_fmvm.CurrentValue_ = currentValue.ToString();
                        e_fmvm.Tenor_ = tenor;

                        e_fmvm.Excel_yieldCurveViewModel_ = fittingCurve.Excel_yieldCurveViewModel_;

                        item.Excel_underlyingModel_paraViewModel_ = e_fmvm;

                        findFlag = true;

                    }
                }

                if (!findFlag)
                    throw new Exception(underCode + " does not exist");

                return "load complete";
            }
            catch (Exception e)
            {
                return "load fail : " + e.Message;
            }
        }
        public string set_discountCurve(string currency, YieldTermStructure discountCurve)
        {
            try
            {
                Excel_standardSwapParaViewModel e_sspvm = this.InstVM_.Excel_parameterViewModel_ as Excel_standardSwapParaViewModel;

                int count = e_sspvm.Excel_discountCurve_paraViewModel_.hasCurrencysYieldCurve(currency);

                discountCurve.Excel_yieldCurveViewModel_.Currency_ = currency;

                if (count == -1)
                {
                    e_sspvm.Excel_discountCurve_paraViewModel_.Excel_yieldCurveViewModel_
                        .Add(discountCurve.Excel_yieldCurveViewModel_);
                }
                else 
                {
                    e_sspvm.Excel_discountCurve_paraViewModel_.Excel_yieldCurveViewModel_[count]
                        = discountCurve.Excel_yieldCurveViewModel_;
                }

                return "set discountCurve complete : " + currency;
            }
            catch (Exception e)
            {
                string errStr = "set fail: " + e.Message;

                return errStr;
            }
        }
        public string set_hullWhiteModel(string underCode, double currentValue, double alpha, double sigma, YieldTermStructure fittingCurve)
        {
            try
            {
                Excel_standardSwapParaViewModel e_sspvm = this.InstVM_.Excel_parameterViewModel_ as Excel_standardSwapParaViewModel;

                // under 에서 tenor를 가져옴
                string tenor = "3M"; // defaultrrrr
                
                bool setFlag = false;

                Excel_hullWhiteOneFactorViewModel e_hwvm = new Excel_hullWhiteOneFactorViewModel();

                foreach (var item in e_sspvm.Excel_underlyingCalcInfo_paraViewModel_.Excel_underlyingInfo_paraViewModel_)
                {
                    if (underCode == item.KrCode_)
                    {
                        e_hwvm.CurrentValue_ = currentValue.ToString();

                        e_hwvm.Alpha_ = alpha.ToString();
                        e_hwvm.Volatility_ = sigma.ToString();

                        e_hwvm.Excel_yieldCurveViewModel_ = fittingCurve.Excel_yieldCurveViewModel_;

                        item.Excel_underlyingModel_paraViewModel_ = e_hwvm;

                        setFlag = true;

                    }
                }

                foreach (var item in this.InstVM_.Excel_interfaceViewModel_.Excel_underlyingCalcInfoViewModel_.Excel_underlyingInfoViewModel_)
                {
                    if (underCode == item.KrCode_)
                    {
                        Excel_interestRateViewModel e_irvm = item as Excel_interestRateViewModel;

                        e_hwvm.setInterestRateInfo(e_irvm);
                    }
                }

                if (!setFlag)
                {
                    throw new Exception(underCode + " doesn't exist");
                }

                return "set hullWhit_model complete : " + underCode;
            }
            catch (Exception e)
            {
                return "set fail : " + e.Message;
            }
        }