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); } }
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; } }