public void setFromSerial(FpmlSerializedCSharp.ISerialized serial_Class)
        {
            FpmlSerializedCSharp.Excel_yieldCurve serial_Excel_yieldCurve = serial_Class as FpmlSerializedCSharp.Excel_yieldCurve;

            this.currency_ = serial_Excel_yieldCurve.Currency_.ValueStr;

            this.code_ = serial_Excel_yieldCurve.Code_.ValueStr;

            this.name_ = serial_Excel_yieldCurve.Name_.ValueStr;

            this.description_ = serial_Excel_yieldCurve.Description_.ValueStr;

            FpmlSerializedCSharp.Excel_interpolation serial_excel_interpolation = serial_Excel_yieldCurve.Excel_interpolation_;
            string excel_interpolationtype = serial_excel_interpolation.Excel_type_.ValueStr;

            this.excel_interpolationViewModel_ = Excel_interpolationViewModel.CreateExcel_interpolation(excel_interpolationtype);
            this.excel_interpolationViewModel_.setFromSerial(serial_excel_interpolation);

            List <FpmlSerializedCSharp.Excel_rateData> serial_excel_rateData = serial_Excel_yieldCurve.Excel_rateData_;

            this.excel_rateDataViewModel_ = new ObservableCollection <Excel_rateDataViewModel>();
            foreach (var item in serial_excel_rateData)
            {
                string type = item.Excel_type_.ValueStr;
                Excel_rateDataViewModel viewModel = Excel_rateDataViewModel.CreateExcel_rateData(type);
                viewModel.setFromSerial(item);
                this.excel_rateDataViewModel_.Add(viewModel);
            }
        }
        //public Control view()
        //{
        //    Control v = new Excel_defaultCurveView();
        //    v.DataContext = this;
        //    return v;
        //}

        public void setFromSerial(FpmlSerializedCSharp.ISerialized serial_Class)
        {
            FpmlSerializedCSharp.Excel_defaultCurve serial_Excel_defaultCurve = serial_Class as FpmlSerializedCSharp.Excel_defaultCurve;

            this.code_ = serial_Excel_defaultCurve.Code_.ValueStr;

            this.name_ = serial_Excel_defaultCurve.Name_.ValueStr;

            this.recovery_ = serial_Excel_defaultCurve.Recovery_.ValueStr;

            this.description_ = serial_Excel_defaultCurve.Description_.ValueStr;

            FpmlSerializedCSharp.Excel_interpolation serial_excel_interpolation = serial_Excel_defaultCurve.Excel_interpolation_;
            this.excel_interpolationViewModel_ = new Excel_interpolationViewModel();
            this.excel_interpolationViewModel_.setFromSerial(serial_excel_interpolation);

            List <FpmlSerializedCSharp.Excel_rateData> serial_excel_rateData = serial_Excel_defaultCurve.Excel_rateData_;

            this.excel_rateDataViewModel_ = new ObservableCollection <Excel_rateDataViewModel>();
            foreach (var item in serial_excel_rateData)
            {
                //string type = item.Excel_type_.ValueStr;
                Excel_rateDataViewModel viewModel = new Excel_rateDataViewModel();
                viewModel.setFromSerial(item);
                this.excel_rateDataViewModel_.Add(viewModel);
            }
        }
        public void loadData(DateTime d, string curveCode)
        {
            this.rateDataViewModel_.Clear();

            for (int i = 1; i < 20; i++)
            {
                Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                e_rdvm.RateType_ = "spot";
                e_rdvm.Tenor_    = (i * 3).ToString() + "M";
                e_rdvm.Value_    = (0.03 + i * 0.0007).ToString();
                this.rateDataViewModel_.Add(e_rdvm);
            }
        }
        public void loadMarketData(DateTime referenceDate)
        {
            this.excel_rateDataViewModel_.Clear();

            Excel_rateDataViewModel e_rdvm1 = new Excel_rateDataViewModel();

            e_rdvm1.Value_ = "0.02";

            this.excel_rateDataViewModel_.Add(e_rdvm1);

            Excel_rateDataViewModel e_rdvm2 = new Excel_rateDataViewModel();

            e_rdvm2.Value_ = "0.03";

            this.excel_rateDataViewModel_.Add(e_rdvm2);
        }
        public void loadCurve(string constRate)
        {
            this.excel_rateDataViewModel_ = new ObservableCollection <Excel_rateDataViewModel>();

            CurveManager cm = new CurveManager();

            // 데이터를 로드함
            // cm.load(this.code_,this.referenceDate_);

            //for (int i = 0; i < cm.Tenor_.Count ; i++)
            List <string> tenorList = new List <string>()
            {
                "1D",
                "3M",
                "6M",
                "9M",
                "12M",
                "18M",
                "24M",
                "30M",
                "36M",
                "48M",
                "60M",
                "84M",
                "120M",
                "180M",
                "240M",
                "360M"
            };

            for (int i = 0; i < tenorList.Count; i++)
            {
                Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                e_rdvm.RateType_ = "Spot";
                //e_rdvm.Tenor_ = cm.Tenor_[i];
                e_rdvm.Tenor_ = tenorList[i];
                //e_rdvm.Value_ = cm.Data_[i];
                e_rdvm.Value_ = constRate;

                this.excel_rateDataViewModel_.Add(e_rdvm);
            }
        }
        public Excel_yieldCurveViewModel discountCurve(DateTime refDate, string currencyCode)
        {
            //조회함

            Excel_yieldCurveViewModel e_ycvm = new Excel_yieldCurveViewModel();

            DISCOUNTCURVESETTING_Table_DAO dao = new DISCOUNTCURVESETTING_Table_DAO();

            //dao.CURRENCY_ = cvm.CurrencyCode_;
            dao.KeyColumn_ = currencyCode;

            dao.select(DataBaseConnectManager.ConnectionFactory("myDB"));

            string provider  = dao.PROVIDER_;
            string curveCode = dao.CURVECODE_;

            e_ycvm.Code_     = curveCode;
            e_ycvm.Currency_ = currencyCode;

            IRCurveMarketDataLoader loader = IRCurveMarketDataLoader.CreateMarketDataLoader(provider);

            ObservableCollection <Excel_irCurveDataViewModel> e_ircdvmList = new ObservableCollection <Excel_irCurveDataViewModel>();

            loader.load(refDate, curveCode, e_ircdvmList);

            foreach (var item in e_ircdvmList[0].Excel_rateDataViewModelList_)
            {
                Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                e_rdvm.RateType_ = item.RateType_;
                e_rdvm.Tenor_    = item.Tenor_;
                e_rdvm.Value_    = item.Value_;

                e_ycvm.Excel_rateDataViewModel_.Add(e_rdvm);
            }

            e_ycvm.Excel_interpolationViewModel_ = new Excel_interpolationViewModel();


            //e_ycvm.loadCurve();

            return(e_ycvm);
        }
        public void loadCurve()
        {
            this.excel_rateDataViewModel_ = new ObservableCollection <Excel_rateDataViewModel>();

            CurveManager cm = new CurveManager();

            // 데이터를 로드함
            // cm.load(this.code_,this.referenceDate_);

            //for (int i = 0; i < cm.Tenor_.Count ; i++)
            for (int i = 0; i < 15; i++)
            {
                Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                e_rdvm.RateType_ = "Spot";
                //e_rdvm.Tenor_ = cm.Tenor_[i];
                e_rdvm.Tenor_ = i.ToString() + "M";
                //e_rdvm.Value_ = cm.Data_[i];
                e_rdvm.Value_ = (i * 0.01).ToString();

                this.excel_rateDataViewModel_.Add(e_rdvm);
            }
        }
        public void loadCurve()
        {
            this.excel_rateDataViewModel_ = new ObservableCollection<Excel_rateDataViewModel>();

            CurveManager cm = new CurveManager();

            // 데이터를 로드함
            // cm.load(this.code_,this.referenceDate_);

            //for (int i = 0; i < cm.Tenor_.Count ; i++)
            for (int i = 0; i < 15 ; i++)
			{
                Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                e_rdvm.RateType_ = "Spot";
                //e_rdvm.Tenor_ = cm.Tenor_[i];
                e_rdvm.Tenor_ = i.ToString() + "M";
                //e_rdvm.Value_ = cm.Data_[i];
                e_rdvm.Value_ = (i * 0.01).ToString();

                this.excel_rateDataViewModel_.Add(e_rdvm);
            }

        }
        public void setFromSerial(FpmlSerializedCSharp.ISerialized serial_Class)
        {
            FpmlSerializedCSharp.Excel_yieldCurve serial_Excel_yieldCurve = serial_Class as FpmlSerializedCSharp.Excel_yieldCurve;

            this.currency_ = serial_Excel_yieldCurve.Currency_.ValueStr;

            this.code_ = serial_Excel_yieldCurve.Code_.ValueStr;

            this.name_ = serial_Excel_yieldCurve.Name_.ValueStr;

            this.description_ = serial_Excel_yieldCurve.Description_.ValueStr;

            FpmlSerializedCSharp.Excel_interpolation serial_excel_interpolation = serial_Excel_yieldCurve.Excel_interpolation_;
            this.excel_interpolationViewModel_ = new Excel_interpolationViewModel();
            this.excel_interpolationViewModel_.setFromSerial(serial_excel_interpolation);

            List<FpmlSerializedCSharp.Excel_rateData> serial_excel_rateData = serial_Excel_yieldCurve.Excel_rateData_;
            this.excel_rateDataViewModel_ = new ObservableCollection<Excel_rateDataViewModel>();
            foreach (var item in serial_excel_rateData)
            {
                Excel_rateDataViewModel viewModel = new Excel_rateDataViewModel();
                viewModel.setFromSerial(item);
                this.excel_rateDataViewModel_.Add(viewModel);
            }
            
        }
コード例 #10
0
        public override void load(DateTime refDate, string curveCode, ObservableCollection <Excel_irCurveDataViewModel> e_ircdvmList)
        {
            TD_MRCURVE_Table_DAO dao = new TD_MRCURVE_Table_DAO();

            e_ircdvmList.Clear();

            dao.KeyColumn_RefDate_       = refDate.ToString(StringFormat.DbDateFormat_);
            dao.KeyColumn_BOND_CLASS_ID_ = curveCode;
            dao.KeyColumn_CURVE_CODE_    = "S";

            dao.select(this.conn_);

            Excel_irCurveDataViewModel e_ircdvm = new Excel_irCurveDataViewModel();

            e_ircdvm.Curve_code_    = curveCode;
            e_ircdvm.ReferenceDate_ = refDate;

            List <string> tenorList = new List <string>()
            {
                "1D",
                "3M",
                "6M",
                "9M",
                "12M",
                "18M",
                "24M",
                "30M",
                "36M",
                "48M",
                "60M",
                "84M",
                "120M",
                "180M",
                "240M",
                "360M"
            };

            List <string> valueList = new List <string>()
            {
                dao.D001_,
                dao.M003_,
                dao.M006_,
                dao.M009_,
                dao.M012_,
                dao.M018_,
                dao.M024_,
                dao.M030_,
                dao.M036_,
                dao.M048_,
                dao.M060_,
                dao.M084_,
                dao.M120_,
                dao.M180_,
                dao.M240_,
                dao.M360_
            };

            for (int i = 0; i < tenorList.Count; i++)
            {
                Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                e_rdvm.Tenor_ = tenorList[i];

                double value = Convert.ToDouble(valueList[i]) / 100.0;
                e_rdvm.Value_ = value.ToString();

                e_rdvm.RateType_ = "spot";

                if (value > 0.0)
                {
                    e_ircdvm.Excel_rateDataViewModelList_.Add(e_rdvm);
                }
            }

            e_ircdvm.tenorList_ = tenorList;

            if (e_ircdvm.Excel_rateDataViewModelList_.Count > 0)
            {
                e_ircdvmList.Add(e_ircdvm);
            }
            else
            {
                throw new Exception("curve load error , STD_DATE : " + dao.KeyColumn_RefDate_ +
                                    " BOND_CLASS_ID : " + dao.KeyColumn_BOND_CLASS_ID_);
            }
        }
コード例 #11
0
        public string add_Rate(string tenor, double rate, RateTypeEnum rateType = RateTypeEnum.Spot)
        {
            try
            {
                #region CheckParameter

                // 이건 나중에 수정해야함. yield 음수의 경우 yieldcurve class 를 새로 만들어야함. quantlib을 사용안해야함.
                if ( !(rate > 0) )
                    throw new Exception("rate must be positive");

                #endregion

                if ( this.Excel_yieldCurveViewModel_.hasTenor(tenor) )
                {
                    return tenor + " is aleady exist";
                }
                else
                {
                    Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                    e_rdvm.RateType_ = rateType.ToString();
                    e_rdvm.Tenor_ = tenor;
                    e_rdvm.Value_ = rate.ToString();

                    this.Excel_yieldCurveViewModel_.Excel_rateDataViewModel_.Add(e_rdvm);

                    return "add complete";
                }
                
            }
            catch (Exception e)
            {
                return "add fail : " + e.Message;
            }
        }
        public override void load(DateTime refDate, string curveCode, ObservableCollection<Excel_irCurveDataViewModel> e_ircdvmList)
        {
            TD_MRCURVE_Table_DAO dao = new TD_MRCURVE_Table_DAO();

            e_ircdvmList.Clear();

            dao.KeyColumn_RefDate_ = refDate.ToString(StringFormat.DbDateFormat_);
            dao.KeyColumn_BOND_CLASS_ID_ = curveCode;
            dao.KeyColumn_CURVE_CODE_ = "S";

            dao.select(this.conn_);

            Excel_irCurveDataViewModel e_ircdvm = new Excel_irCurveDataViewModel();

            e_ircdvm.Curve_code_ = curveCode;
            e_ircdvm.ReferenceDate_ = refDate;

            List<string> tenorList = new List<string>()
            {
                "1D",
                "3M",
                "6M",
                "9M",
                "12M",
                "18M",
                "24M",
                "30M",
                "36M",
                "48M",
                "60M",
                "84M",
                "120M",
                "180M",
                "240M",
                "360M"
            };

            List<string> valueList = new List<string>()
            {
                dao.D001_,
                dao.M003_,
                dao.M006_,
                dao.M009_,
                dao.M012_,
                dao.M018_,
                dao.M024_,
                dao.M030_,
                dao.M036_,
                dao.M048_,
                dao.M060_,
                dao.M084_,
                dao.M120_,
                dao.M180_,
                dao.M240_,
                dao.M360_

            };

            for (int i = 0; i < tenorList.Count; i++)
            {
                Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                e_rdvm.Tenor_ = tenorList[i];

                double value = Convert.ToDouble(valueList[i]) / 100.0;
                e_rdvm.Value_ = value.ToString();

                e_rdvm.RateType_ = "spot";

                if (value > 0.0)
                {
                    e_ircdvm.Excel_rateDataViewModelList_.Add(e_rdvm);
                }

            }

            e_ircdvm.tenorList_ = tenorList;

            if (e_ircdvm.Excel_rateDataViewModelList_.Count > 0)
            {
                e_ircdvmList.Add(e_ircdvm);
            }
            else
            {
                throw new Exception("curve load error , STD_DATE : " + dao.KeyColumn_RefDate_ + 
                                                      " BOND_CLASS_ID : " + dao.KeyColumn_BOND_CLASS_ID_);
            }

        }
        public override void loadInterval(DateTime startDate, DateTime endDate, string curveCode, ObservableCollection<Excel_irCurveDataViewModel> e_ircdvmList)
        {
            TD_MRCURVE_Table_DAOManager daoM = new TD_MRCURVE_Table_DAOManager();

            e_ircdvmList.Clear();

            daoM.KeyColumn_InitialDate_ = startDate.ToString(StringFormat.DbDateFormat_);
            daoM.KeyColumn_EndDate_ = endDate.ToString(StringFormat.DbDateFormat_);

            daoM.KeyColumn_BOND_CLASS_ID_ = curveCode;
            daoM.KeyColumn_CURVE_CODE_ = "S";

            daoM.selectInterval(this.conn_);

            List<string> tenorList = new List<string>()
            {
                "1D",
                "3M",
                "6M",
                "9M",
                "12M",
                "18M",
                "24M",
                "30M",
                "36M",
                "48M",
                "60M",
                "84M",
                "120M",
                "180M",
                "240M",
                "360M"
            };


            for (int i = 0; i < daoM.DAOList_.Count; i++)
			{
			    Excel_irCurveDataViewModel e_ircdvm = new Excel_irCurveDataViewModel();

                TD_MRCURVE_Table_DAO dao = daoM.DAOList_[i];

                e_ircdvm.Curve_code_ = dao.CURVE_CODE_;
                e_ircdvm.ReferenceDate_ = StringConverter.dbDateToDateTime(dao.STD_DATE_);

                List<string> valueList = new List<string>()
                {
                    dao.D001_,
                    dao.M003_,
                    dao.M006_,
                    dao.M009_,
                    dao.M012_,
                    dao.M018_,
                    dao.M024_,
                    dao.M030_,
                    dao.M036_,
                    dao.M048_,
                    dao.M060_,
                    dao.M084_,
                    dao.M120_,
                    dao.M180_,
                    dao.M240_,
                    dao.M360_

                };

                for (int j = 0; j < tenorList.Count; j++)
                {
                    Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                    e_rdvm.Tenor_ = tenorList[j];
                    double value = Convert.ToDouble(valueList[j]) / 100.0;

                    e_rdvm.Value_ = value.ToString();

                    e_rdvm.RateType_ = "spot";

                    if (value > 0.0)
                    { 
                        e_ircdvm.Excel_rateDataViewModelList_.Add(e_rdvm);
                    }

                }

                e_ircdvmList.Add(e_ircdvm);

			}

            e_ircdvmList[0].tenorList_ = tenorList;

        }
        public void loadData(DateTime d,string curveCode)
        {
            this.rateDataViewModel_.Clear();

            for (int i = 1; i < 20; i++)
			{
			    Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                e_rdvm.RateType_ = "spot";
                e_rdvm.Tenor_ = (i*3).ToString() + "M"; 
                e_rdvm.Value_ = (0.03 + i*0.0007).ToString();
                this.rateDataViewModel_.Add(e_rdvm);
			}
            
        }
        public void loadMarketData(DateTime referenceDate)
        {
            this.excel_rateDataViewModel_.Clear();

            Excel_rateDataViewModel e_rdvm1 = new Excel_rateDataViewModel();

            e_rdvm1.Value_ = "0.02";

            this.excel_rateDataViewModel_.Add(e_rdvm1);

            Excel_rateDataViewModel e_rdvm2 = new Excel_rateDataViewModel();

            e_rdvm2.Value_ = "0.03";

            this.excel_rateDataViewModel_.Add(e_rdvm2);
        }
        public void loadCurve(string constRate)
        {
            this.excel_rateDataViewModel_ = new ObservableCollection<Excel_rateDataViewModel>();

            CurveManager cm = new CurveManager();

            // 데이터를 로드함
            // cm.load(this.code_,this.referenceDate_);

            //for (int i = 0; i < cm.Tenor_.Count ; i++)
            List<string> tenorList = new List<string>()
            {
                "1D",
                "3M",
                "6M",
                "9M",
                "12M",
                "18M",
                "24M",
                "30M",
                "36M",
                "48M",
                "60M",
                "84M",
                "120M",
                "180M",
                "240M",
                "360M"
            };

            for (int i = 0; i < tenorList.Count ; i++)
            {
                Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                e_rdvm.RateType_ = "Spot";
                //e_rdvm.Tenor_ = cm.Tenor_[i];
                e_rdvm.Tenor_ = tenorList[i];
                //e_rdvm.Value_ = cm.Data_[i];
                e_rdvm.Value_ = constRate;

                this.excel_rateDataViewModel_.Add(e_rdvm);
            }
        }
コード例 #17
0
        public override void loadInterval(DateTime startDate, DateTime endDate, string curveCode, ObservableCollection <Excel_irCurveDataViewModel> e_ircdvmList)
        {
            TD_MRCURVE_Table_DAOManager daoM = new TD_MRCURVE_Table_DAOManager();

            e_ircdvmList.Clear();

            daoM.KeyColumn_InitialDate_ = startDate.ToString(StringFormat.DbDateFormat_);
            daoM.KeyColumn_EndDate_     = endDate.ToString(StringFormat.DbDateFormat_);

            daoM.KeyColumn_BOND_CLASS_ID_ = curveCode;
            daoM.KeyColumn_CURVE_CODE_    = "S";

            daoM.selectInterval(this.conn_);

            List <string> tenorList = new List <string>()
            {
                "1D",
                "3M",
                "6M",
                "9M",
                "12M",
                "18M",
                "24M",
                "30M",
                "36M",
                "48M",
                "60M",
                "84M",
                "120M",
                "180M",
                "240M",
                "360M"
            };


            for (int i = 0; i < daoM.DAOList_.Count; i++)
            {
                Excel_irCurveDataViewModel e_ircdvm = new Excel_irCurveDataViewModel();

                TD_MRCURVE_Table_DAO dao = daoM.DAOList_[i];

                e_ircdvm.Curve_code_    = dao.CURVE_CODE_;
                e_ircdvm.ReferenceDate_ = StringConverter.dbDateToDateTime(dao.STD_DATE_);

                List <string> valueList = new List <string>()
                {
                    dao.D001_,
                    dao.M003_,
                    dao.M006_,
                    dao.M009_,
                    dao.M012_,
                    dao.M018_,
                    dao.M024_,
                    dao.M030_,
                    dao.M036_,
                    dao.M048_,
                    dao.M060_,
                    dao.M084_,
                    dao.M120_,
                    dao.M180_,
                    dao.M240_,
                    dao.M360_
                };

                for (int j = 0; j < tenorList.Count; j++)
                {
                    Excel_rateDataViewModel e_rdvm = new Excel_rateDataViewModel();

                    e_rdvm.Tenor_ = tenorList[j];
                    double value = Convert.ToDouble(valueList[j]) / 100.0;

                    e_rdvm.Value_ = value.ToString();

                    e_rdvm.RateType_ = "spot";

                    if (value > 0.0)
                    {
                        e_ircdvm.Excel_rateDataViewModelList_.Add(e_rdvm);
                    }
                }

                e_ircdvmList.Add(e_ircdvm);
            }

            e_ircdvmList[0].tenorList_ = tenorList;
        }