public QLNet.YieldTermStructure yieldCurve(CurveShift curveShift = null) { if (curveShift == null) curveShift = new ParallelCurveShift(0.0); QLNet.DayCounter dc = new QLNet.Actual365Fixed(); List<Handle<Quote>> quotes = new List<Handle<Quote>>(); List<double> datas = new List<double>(); List<Date> dates = new List<Date>(); CalendarManager cm = new CalendarManager(this.ReferenceDate_, CalendarManager.CountryType.SOUTH_KOREA); foreach (clsHDAT_CURVEDATA_TB tb in this.ResultCuveData_) { DateTime dt = cm.adjust(this.ReferenceDate_,tb.TENOR); double? rate = tb.RATE + curveShift.shift(dt); dates.Add(dt); SimpleQuote quote = new SimpleQuote(rate); Handle<Quote> handleQuote = new Handle<Quote>(quote); quotes.Add(handleQuote); datas.Add(rate.Value); } InterpolatedZeroCurve<ConvexMonotone> yiels_ts = new InterpolatedZeroCurve<ConvexMonotone>( this.ReferenceDate_, dates, datas, dc, new ConvexMonotone(), Compounding.Compounded, Frequency.Annual); return yiels_ts; }
public override void buildFromLegInfo(DateTime referenceDate, int payRec) { //int maturityYear = ConvertingTool.TenorMuliplier(this.LegDAO_.); int legTenorMonth = ConvertingTool.TenorMuliplier(this.LegDAO_.LEG_TENOR); //int cashflowCount = maturityYear * (12 / legTenorMonth); this.FP_CashFlowList_.Clear(); DateTime roopDate = ConvertingTool.ToDateTime(this.LegDAO_.EFFECTIVE_DT); DateTime matutiryDate = ConvertingTool.ToDateTime(this.LegDAO_.MATURITY_DT); DateTime nextDate = roopDate.AddMonths(legTenorMonth); CalendarManager cm = new CalendarManager(referenceDate, CalendarManager.CountryType.SOUTH_KOREA); while (nextDate <= matutiryDate) { FP_FloatingRateCoupon fp_cashFlow = new FP_FloatingRateCoupon(); fp_cashFlow.DAO_ = new clsMAST_CF_VANILLA_FLOATING_TB(); fp_cashFlow.DAO_.LEG_ID = this.LegDAO_.INSTRUMENT_ID; fp_cashFlow.DAO_.LEG_TYP = 0; fp_cashFlow.DAO_.NOTIONAL = this.LegDAO_.NOTIONAL; fp_cashFlow.DAO_.PAY_RECEIVE = payRec; fp_cashFlow.DAO_.CALC_START_DT = roopDate.ToString("yyyyMMdd"); fp_cashFlow.DAO_.CALC_END_DT = nextDate.ToString("yyyyMMdd"); fp_cashFlow.DAO_.PAYMENT_DT = cm.adjust(nextDate).ToString("yyyyMMdd"); fp_cashFlow.DAO_.CASHFLOW_DT = nextDate.ToString("yyyyMMdd"); fp_cashFlow.DAO_.FIXING_DT = cm.adjust(roopDate).ToString("yyyyMMdd"); // 우선 DEFAULT로 박고, FIXING은 차후 데일리로 계산함. fp_cashFlow.DAO_.FIXING_INDEX_CD = this.LegDAO_.FIXING_INDEX_CD; fp_cashFlow.DAO_.GREARING = this.LegDAO_.GREARING; fp_cashFlow.DAO_.SPREAD = this.LegDAO_.SPREAD; fp_cashFlow.DAO_.FIXED_FIXING = 0.0; fp_cashFlow.DAO_.FIXED_FIXING_CALCLATED = (int)clsMAST_CF_VANILLA_FLOATING_TB.FIXED_FIXING_CALCLATED_Type.NOT_FIXED; this.FP_CashFlowList_.Add(fp_cashFlow); roopDate = roopDate.AddMonths(legTenorMonth); nextDate = roopDate.AddMonths(legTenorMonth); } }
public override void buildFromLegInfo(DateTime referenceDate,int payRec) { //int maturityYear = ConvertingTool.TenorMuliplier(this.LegDAO_.); int legTenorMonth = ConvertingTool.TenorMuliplier(this.LegDAO_.LEG_TENOR); //int cashflowCount = maturityYear * (12 / legTenorMonth); this.FP_CashFlowList_.Clear(); DateTime roopDate = ConvertingTool.ToDateTime(this.LegDAO_.EFFECTIVE_DT); DateTime matutiryDate = ConvertingTool.ToDateTime(this.LegDAO_.MATURITY_DT); DateTime nextDate = roopDate.AddMonths(legTenorMonth); CalendarManager cm = new CalendarManager(referenceDate,CalendarManager.CountryType.SOUTH_KOREA); while (nextDate <= matutiryDate ) { FP_FixedRateCoupon fp_cashFlow = new FP_FixedRateCoupon(); fp_cashFlow.DAO_ = new clsMAST_CF_FIXED_TB(); fp_cashFlow.DAO_.LEG_ID = this.LegDAO_.INSTRUMENT_ID; fp_cashFlow.DAO_.LEG_TYP = 0; fp_cashFlow.DAO_.PAY_RECEIVE = payRec; fp_cashFlow.DAO_.NOTIONAL = this.LegDAO_.NOTIONAL; fp_cashFlow.DAO_.CALC_START_DT = roopDate.ToString("yyyyMMdd"); ; fp_cashFlow.DAO_.CALC_END_DT = nextDate.ToString("yyyyMMdd"); fp_cashFlow.DAO_.PAYMENT_DT = cm.adjust(nextDate).ToString("yyyyMMdd"); fp_cashFlow.DAO_.CASHFLOW_DT = fp_cashFlow.DAO_.PAYMENT_DT; fp_cashFlow.DAO_.FIXED_RATE = this.LegDAO_.FIXED_RATE; this.FP_CashFlowList_.Add(fp_cashFlow); roopDate = roopDate.AddMonths(legTenorMonth); nextDate = roopDate.AddMonths(legTenorMonth); } }
public static VanillaIRS_instrument CreateTradableCode(string availableTradeCD, bool fixedPayFlag, double notional, int quantity, DateTime effective, double fixedRate, double spread) { clsTRADABLE_OTC_VANILLA_IRS_TB clstb = new clsTRADABLE_OTC_VANILLA_IRS_TB(); clstb.INST_CD = availableTradeCD; int checkNum = clstb.SelectOwn(); if (checkNum == 0) { throw new Exception( availableTradeCD + " : is not tradable."); } int maturityYear = ConvertingTool.TenorMuliplier(clstb.MATURITY_TENOR); int legTenorMonth = ConvertingTool.TenorMuliplier(clstb.LEG_TENOR); VanillaIRS_instrument inst = new VanillaIRS_instrument(); int cashflowCount = maturityYear * (12 / legTenorMonth); // Master string inst_ID = IDGenerator.getNewInstrumentID(inst.InstrumentType_, effective,inst); inst.baseDAO_.INSTRUMENT_ID = inst_ID; inst.baseDAO_.INSTRUMENT_NM = (fixedPayFlag) ? fixedRate + " Pay " + clstb.MATURITY_TENOR : fixedRate + " Receive " + clstb.MATURITY_TENOR; inst.baseDAO_.FP_MASTER_TYP = (int)clsMAST_FP_INSTRUMENT_TB.FP_MASTER_TYP_Type.VanillaIRS; inst.baseDAO_.NOTIONAL = Math.Abs(notional); inst.baseDAO_.PRICE = fixedRate; inst.baseDAO_.QUANTITY = Math.Abs(quantity); inst.baseDAO_.CURR = "KRW"; inst.baseDAO_.FX_RATE = 1.0; //inst.baseDAO_.BUY_SELL = (quantity > 0) ? (int)clsMAST_FP_INSTRUMENT_TB.BUY_SELL_Type.Buy : // (int)clsMAST_FP_INSTRUMENT_TB.BUY_SELL_Type.Sell; inst.baseDAO_.EFFECTIVE_DT = effective.ToString("yyyyMMdd"); inst.baseDAO_.MATURITY_DT = effective.AddYears(maturityYear).ToString("yyyyMMdd"); inst.baseDAO_.BOOKED_DT = ""; inst.baseDAO_.CLOSED_DT = "20991231"; inst.SwapDAO_.INSTRUMENT_ID = inst_ID; inst.SwapDAO_.INSTRUMENT_TYP = Convert.ToInt32(inst.InstrumentType_); inst.SwapDAO_.NOTIONAL_PAY = Math.Abs(notional); inst.SwapDAO_.PAY_CURR = "KRW"; inst.SwapDAO_.NOTIONAL_REC = Math.Abs(notional); inst.SwapDAO_.REC_CURR = "KRW"; inst.SwapDAO_.EFFECTIVE_DT = effective.ToString("yyyyMMdd"); inst.SwapDAO_.MATURITY_DT = effective.AddYears(maturityYear).ToString("yyyyMMdd"); inst.SwapDAO_.PAY_LEG_TYP = 0; inst.SwapDAO_.PAY_LEG_TENOR = "3M"; inst.SwapDAO_.PAY_LEG_BDC = 0; inst.SwapDAO_.PAY_LEG_DC = 0; inst.SwapDAO_.REC_LEG_TYP = 1; inst.SwapDAO_.REC_LEG_TENOR = "3M"; inst.SwapDAO_.REC_LEG_BDC = 1; inst.SwapDAO_.REC_LEG_DC = 1; CalendarManager cm = new CalendarManager(effective, CalendarManager.CountryType.SOUTH_KOREA); // CF_FixedDAO_ for (int i = 0; i < cashflowCount; i++) { FP_FixedRateCoupon fp_cashFlow = new FP_FixedRateCoupon(); fp_cashFlow.DAO_ = new clsMAST_CF_FIXED_TB(); fp_cashFlow.DAO_.CASHFLOW_DT = effective.AddMonths(3 * (i + 1)).ToString("yyyyMMdd"); fp_cashFlow.DAO_.LEG_ID = inst_ID; fp_cashFlow.DAO_.LEG_TYP = 0; fp_cashFlow.DAO_.NOTIONAL = Math.Abs(notional); fp_cashFlow.DAO_.CALC_START_DT = effective.AddMonths(3 * i).ToString("yyyyMMdd"); ; fp_cashFlow.DAO_.CALC_END_DT = effective.AddMonths(3 * (i + 1)).ToString("yyyyMMdd"); fp_cashFlow.DAO_.PAYMENT_DT = cm.adjust(effective.AddMonths(3 * (i + 1))).ToString("yyyyMMdd"); fp_cashFlow.DAO_.FIXED_RATE = fixedRate; if (fixedPayFlag) { inst.FP_PayCashFlowList_.Add(fp_cashFlow); } else { inst.FP_RecCashFlowList_.Add(fp_cashFlow); } } for (int i = 0; i < cashflowCount; i++) { FP_FloatingRateCoupon fp_floating_cashFlow = new FP_FloatingRateCoupon(); fp_floating_cashFlow.DAO_ = new clsMAST_CF_VANILLA_FLOATING_TB(); fp_floating_cashFlow.DAO_.CASHFLOW_DT = effective.AddMonths(3 * (i + 1)).ToString("yyyyMMdd"); fp_floating_cashFlow.DAO_.LEG_ID = inst_ID; fp_floating_cashFlow.DAO_.LEG_TYP = 0; fp_floating_cashFlow.DAO_.NOTIONAL = Math.Abs(notional); fp_floating_cashFlow.DAO_.CALC_START_DT = effective.AddMonths(3 * i).ToString("yyyyMMdd"); fp_floating_cashFlow.DAO_.CALC_END_DT = effective.AddMonths(3 * (i + 1)).ToString("yyyyMMdd"); fp_floating_cashFlow.DAO_.PAYMENT_DT = cm.adjust(effective.AddMonths(3 * (i + 1))).ToString("yyyyMMdd"); fp_floating_cashFlow.DAO_.FIXING_DT = cm.adjust(effective.AddMonths(3 * i)).ToString("yyyyMMdd"); // 우선 DEFAULT로 박고, FIXING은 차후 데일리로 계산함. fp_floating_cashFlow.DAO_.FIXING_INDEX_CD = clstb.FLOATING_INDEX_CD; fp_floating_cashFlow.DAO_.GREARING = 1.0; fp_floating_cashFlow.DAO_.SPREAD = spread; fp_floating_cashFlow.DAO_.FIXED_FIXING = 0.0; fp_floating_cashFlow.DAO_.FIXED_FIXING_CALCLATED = (int)clsMAST_CF_VANILLA_FLOATING_TB.FIXED_FIXING_CALCLATED_Type.NOT_FIXED; if (fixedPayFlag) { inst.FP_RecCashFlowList_.Add(fp_floating_cashFlow); } else { inst.FP_PayCashFlowList_.Add(fp_floating_cashFlow); } } return inst; }
//private void ql_FixedlegSet(List<FP_CashFlow> cashFlow, Leg leg, double notioal, DayCounter dc) //{ // double fixedRate = 0.0; // for (int i = 0; i < cashFlow.Count; i++) // { // fixedRate = ((FP_FixedRateCoupon)cashFlow[i]).DAO_.FIXED_RATE; // Date accrualStartDate = new Date(cashFlow[i].CalculationStartDate_.ToString("yyyyMMdd"), "yyyyMMdd"); // Date accrualEndDate = new Date(cashFlow[i].CalculationEndDate_.ToString("yyyyMMdd"), "yyyyMMdd"); // Date paymentDate = new Date(cashFlow[i].PaymentDate_.ToString("yyyyMMdd"), "yyyyMMdd"); // FixedRateCoupon fixedRateCoupon = // new FixedRateCoupon(paymentDate, // notioal, // fixedRate, // dc, // accrualStartDate, // accrualEndDate); // leg.Add(fixedRateCoupon); // } //} //private void ql_FloatinglegSet(List<FP_CashFlow> cashFlow, Leg leg, double notioal, YieldTermStructure indexCurve, DayCounter dc,QuantLib.Calendar calendar) //{ // Compounding forwardCompounding = Compounding.Compounded; // Date evalDate = Settings.instance().getEvaluationDate(); // Console.WriteLine("year : " + evalDate.year()); // Console.WriteLine("month : " + evalDate.month()); // Console.WriteLine("day : " + evalDate.dayOfMonth()); // for (int i = 0; i < cashFlow.Count; i++) // { // // hard coding 함. 미친 코딩할 시간을 안줘. 호떡같은.. // //string periodStr = "3M"; // CD91 // FP_FloatingRateCoupon fp_frc_i = (FP_FloatingRateCoupon)cashFlow[i] as FP_FloatingRateCoupon; // Date accrualStartDate = new Date(cashFlow[i].CalculationStartDate_.ToString("yyyyMMdd"), "yyyyMMdd"); // Date accrualEndDate = new Date(cashFlow[i].CalculationEndDate_.ToString("yyyyMMdd"), "yyyyMMdd"); // Date paymentDate = new Date(cashFlow[i].PaymentDate_.ToString("yyyyMMdd"), "yyyyMMdd"); // double forwardRate = 0.0; // int calculated = fp_frc_i.DAO_.FIXED_FIXING_CALCLATED; // Date fixingDate = new Date(fp_frc_i.DAO_.FIXING_DT,"yyyyMMdd"); // if (fixingDate < evalDate || fixingDate == evalDate) // { // if (calculated == 1) // { // forwardRate = fp_frc_i.DAO_.FIXED_FIXING; // } // else // { // // 계산함 // clsHDAT_MARKETDATA_TB clstb = new clsHDAT_MARKETDATA_TB(); // clstb.INDEX_CD = fp_frc_i.DAO_.FIXING_INDEX_CD; // clstb.REF_DT = fp_frc_i.DAO_.FIXING_DT; // DataTable tb = clstb.Select(); // double fixed_fixing = 0.0; // int uniqueSelectCheck = 0; // foreach (DataRow dr in tb.Select()) // { // clsHDAT_MARKETDATA_TB resulttb = clsHDAT_MARKETDATA_TB.Create(dr); // fixed_fixing = resulttb.LAST; // uniqueSelectCheck += 1; // } // if (uniqueSelectCheck > 1) // { // throw new Exception("market data is multiple: " + clstb.REF_DT + " " + clstb.INDEX_CD); // } // else if (uniqueSelectCheck == 0) // { // throw new Exception("market data does not exist : " + clstb.REF_DT + " " + clstb.INDEX_CD); // } // // ID 랑 CASHFLOW는 SETTING이 이미 되어 있음. // fp_frc_i.DAO_.FIXED_FIXING_CALCLATED = 1; // fp_frc_i.DAO_.FIXED_FIXING = fixed_fixing; // fp_frc_i.DAO_.UpdateFixing(); // forwardRate = fixed_fixing; // //((FP_FloatingRateCoupon)cashFlow[i]).DAO_.FIXED_FIXING = // } // } // else // { // forwardRate = indexCurve.forwardRate(fixingDate, // calendar.advance(fixingDate,3,TimeUnit.Months), // dc, // forwardCompounding).rate(); // } // FixedRateCoupon floatingRateCoupon = // new FixedRateCoupon(paymentDate, // notioal, // forwardRate, // dc, // accrualStartDate, // accrualEndDate); // leg.Add(floatingRateCoupon); // } //} // Vanilla maker public static VanillaIRS_instrument CreateFixedFloating(bool fixedPayFlag,double notional, DateTime effective, int maturityYear, double fixedRate, bool fixedPaySide) { VanillaIRS_instrument inst = new VanillaIRS_instrument(); int cashflowCount = maturityYear * (12 / 3); // Master string inst_ID = IDGenerator.getNewInstrumentID(inst.InstrumentType_, effective,inst); inst.baseDAO_.INSTRUMENT_ID = inst_ID; inst.baseDAO_.FP_MASTER_TYP = (int)clsMAST_FP_INSTRUMENT_TB.FP_MASTER_TYP_Type.VanillaIRS; inst.baseDAO_.NOTIONAL = notional; inst.baseDAO_.PRICE = fixedRate; inst.baseDAO_.QUANTITY = 1.0; inst.baseDAO_.CURR = "KRW"; inst.baseDAO_.FX_RATE = 1.0; inst.baseDAO_.EFFECTIVE_DT = effective.ToString("yyyyMMdd"); inst.baseDAO_.MATURITY_DT = effective.AddYears(maturityYear).ToString("yyyyMMdd"); inst.baseDAO_.BOOKED_DT = ""; inst.baseDAO_.CLOSED_DT = "20991231"; inst.SwapDAO_.INSTRUMENT_ID = inst_ID; inst.SwapDAO_.INSTRUMENT_TYP = Convert.ToInt32(inst.InstrumentType_); inst.SwapDAO_.NOTIONAL_PAY = Math.Abs(notional); inst.SwapDAO_.PAY_CURR = "KRW"; inst.SwapDAO_.NOTIONAL_REC = Math.Abs(notional); inst.SwapDAO_.REC_CURR = "KRW"; inst.SwapDAO_.EFFECTIVE_DT = effective.ToString("yyyyMMdd"); inst.SwapDAO_.MATURITY_DT = effective.AddYears(maturityYear).ToString("yyyyMMdd"); inst.SwapDAO_.PAY_LEG_TYP = 0; inst.SwapDAO_.PAY_LEG_TENOR = "3M"; inst.SwapDAO_.PAY_LEG_BDC = 0; inst.SwapDAO_.PAY_LEG_DC = 0; inst.SwapDAO_.REC_LEG_TYP = 1; inst.SwapDAO_.REC_LEG_TENOR = "3M"; inst.SwapDAO_.REC_LEG_BDC = 1; inst.SwapDAO_.REC_LEG_DC = 1; CalendarManager cm = new CalendarManager(effective, CalendarManager.CountryType.SOUTH_KOREA); // CF_FixedDAO_ for (int i = 0; i < cashflowCount; i++) { FP_FixedRateCoupon fp_cashFlow = new FP_FixedRateCoupon(); fp_cashFlow.DAO_ = new clsMAST_CF_FIXED_TB(); fp_cashFlow.DAO_.CASHFLOW_DT = effective.AddMonths(3*(i+1)).ToString("yyyyMMdd"); fp_cashFlow.DAO_.LEG_ID = inst_ID; fp_cashFlow.DAO_.LEG_TYP = 2800; fp_cashFlow.DAO_.CALC_START_DT = effective.AddMonths(3 * i).ToString("yyyyMMdd"); ; fp_cashFlow.DAO_.CALC_END_DT = effective.AddMonths(3 * (i + 1)).ToString("yyyyMMdd"); fp_cashFlow.DAO_.PAYMENT_DT = cm.adjust(effective.AddMonths(3 * (i + 1))).ToString("yyyyMMdd"); fp_cashFlow.DAO_.FIXED_RATE = fixedRate; if (fixedPayFlag) {inst.FP_PayCashFlowList_.Add(fp_cashFlow); } else { inst.FP_RecCashFlowList_.Add(fp_cashFlow); } } for (int i = 0; i < cashflowCount; i++) { FP_FloatingRateCoupon fp_floating_cashFlow = new FP_FloatingRateCoupon(); fp_floating_cashFlow.DAO_ = new clsMAST_CF_VANILLA_FLOATING_TB(); fp_floating_cashFlow.DAO_.CASHFLOW_DT = effective.AddMonths(3 * (i + 1)).ToString("yyyyMMdd"); fp_floating_cashFlow.DAO_.LEG_ID = inst_ID; fp_floating_cashFlow.DAO_.LEG_TYP = 0; fp_floating_cashFlow.DAO_.CALC_START_DT = effective.AddMonths(3 * i).ToString("yyyyMMdd"); fp_floating_cashFlow.DAO_.CALC_END_DT = effective.AddMonths(3 * (i + 1)).ToString("yyyyMMdd"); fp_floating_cashFlow.DAO_.PAYMENT_DT = cm.adjust(effective.AddMonths(3 * (i + 1))).ToString("yyyyMMdd"); fp_floating_cashFlow.DAO_.FIXING_DT = cm.adjust(effective.AddMonths(3 * i)).ToString("yyyyMMdd"); fp_floating_cashFlow.DAO_.FIXING_INDEX_CD = "CD91"; fp_floating_cashFlow.DAO_.GREARING = 1.0; fp_floating_cashFlow.DAO_.SPREAD = 0.0; fp_floating_cashFlow.DAO_.FIXED_FIXING = 0.0; fp_floating_cashFlow.DAO_.FIXED_FIXING_CALCLATED = 0; if (fixedPayFlag) { inst.FP_RecCashFlowList_.Add(fp_floating_cashFlow); } else { inst.FP_PayCashFlowList_.Add(fp_floating_cashFlow); } } return inst; }
public void build_curveHistoryData(DateTime startDate, DateTime endDate,bool withClear) { CalendarManager cm = new CalendarManager(DateTime.Now, CalendarManager.CountryType.SOUTH_KOREA); clsHDAT_CURVEDATA_TB clstb = new clsHDAT_CURVEDATA_TB(); CurveShift curveShift = new CurveShift(); foreach (CurveDefInfo cdi in this.sampleCurve_) { clstb.CURVE_CD = cdi.Name_; if (withClear) { clstb.DeleteIndex(); clstb.REF_DT = startDate.ToString("yyyyMMdd"); for (int i = 0; i < cdi.Tenor_.Count; i++) { clstb.TENOR = cdi.Tenor_[i]; clstb.TENOR_SEQ = i+1; clstb.RATE_TYP = (int)clsHDAT_CURVEDATA_TB.RATE_TYP_Type.SWAP; clstb.RATE = cdi.InitialCurve_[i]; } } clstb.Insert(); DateTime roopDate = startDate; DateTime nextDate = cm.adjust(roopDate, "1D"); while (nextDate < endDate) { clstb.REF_DT = roopDate.ToString("yyyyMMdd"); nextDate = cm.adjust(roopDate, "1D"); this.curveData(cdi, curveShift, roopDate, nextDate); roopDate = nextDate; } } }
public void build_irHistoryData(DateTime startDate, DateTime endDate, bool withClear) { CalendarManager cm = new CalendarManager(DateTime.Now, CalendarManager.CountryType.SOUTH_KOREA); PseudoRandom random = new PseudoRandom(); //RandomSequenceGenerator<MersenneTwisterUniformRng> randGen = random.make_sequence_generator(1000, 1) as RandomSequenceGenerator<MersenneTwisterUniformRng>; int genNum = Convert.ToInt32((endDate - startDate).TotalDays) * this.sampleIR_.Count; IRNG randGen = random.make_sequence_generator(genNum, Convert.ToUInt64(this.random_.Next())) as IRNG; int i = 0; Sample<List<double>> sample = randGen.nextSequence(); clsHDAT_MARKETDATA_TB clstb = new clsHDAT_MARKETDATA_TB(); foreach (VasicekParameter para in this.sampleIR_) { SquareRootProcess vasicek = new SquareRootProcess(para.LongTermRate_, para.Speed_, para.Vol_ , para.Initial_); clstb.INDEX_CD = para.Name_; if (withClear) { clstb.DeleteIndex(); clstb.REF_DT = startDate.ToString("yyyyMMdd"); clstb.LAST = para.Initial_; clstb.LOW = para.Initial_; clstb.HIGH = para.Initial_; clstb.Insert(); } DateTime roopDate = startDate; DateTime nextDate = cm.adjust(roopDate, "1D"); while (nextDate < endDate) { clstb.REF_DT = roopDate.ToString("yyyyMMdd"); nextDate = cm.adjust(roopDate, "1D"); this.irData(para.Name_, vasicek, sample.value[i], roopDate, nextDate); roopDate = nextDate; i += 1; } } }
private void _pl_closingEnable_Initialize() { CalendarManager cm = new CalendarManager(this.refDate_, CalendarManager.CountryType.SOUTH_KOREA); DateTime nextDate = cm.adjust(this.refDate_); this.monthEndClosingBtn.Enabled = false; this.yearEndClosingBtn.Enabled = false; if ((nextDate.Month - this.refDate_.Month) == 1) { this.monthEndClosingBtn.Enabled = true; } if ((nextDate.Year - this.refDate_.Year) == 1) { this.monthEndClosingBtn.Enabled = true; this.yearEndClosingBtn.Enabled = true; } }