private double GetOriginalOrSmoothBondSpread(HistSeriesInputPanelViewModel vm, BondSpreadResult bondSpreadResult) { return IsSmooth ? SmoothLiveBondSpread(vm, bondSpreadResult) : bondSpreadResult.BondSpread; }
private double SmoothLiveBondSpread(HistSeriesInputPanelViewModel vm, BondSpreadResult bondSpreadResult) { // firstly we compare if the contract has change // if not change double smooth; if(vm.SeriesData.Dates.Last() == DateTime.Today) smooth = vm.SeriesData.Data.SkipLast().Last() + (bondSpreadResult.BondSpread - vm.OriginalLastPoint); else smooth = vm.SeriesData.Data.Last() + (bondSpreadResult.BondSpread - vm.OriginalLastPoint); // if change // todo! to implement because we have no way to find out the live ctd yet //var smooth = vm.SeriesData.Data.Last() + (bondSpreadResult.oBondSpread - vm.OriginalLastPoint); return smooth; }
public void AddInputPanelVM(HistSeriesInputPanelViewModel vm) { CTInputVM.Add(vm); }
private Tuple<bool, IStructure, DatedDataCollectionGen<double>> getData(int indx, bool isSmooth, DateTime endDate) { Logger.Info("Get data..", typeof(HistSeriesChartViewModel)); var o = CTDs.Structures.StructureFactory.GetStructure(CTInputVM[indx].KnownStructure, CTInputVM[indx].StructureEquation); o.Configure(m_cd.Components); ChartData carbonData=null; if(useCarbonRoll) carbonData = m_cd.GetDataFromCarbonFrame(); var dataSeries = useCarbonRoll ? (isSmooth ? carbonData.SmoothedData : carbonData.OriginalData) : (isSmooth ? m_cd.GetData2().SmoothedData : m_cd.GetData2().OriginalData); var dataWithRange = dataSeries.GetValuesBetweenDates(new DateTime(StartYear, 1, 1), endDate); CTInputVM[indx].SeriesData = dataWithRange; CTInputVM[indx].OriginalLastPoint = useCarbonRoll ? carbonData.OriginalData.LastDataValue : m_cd.GetData2().OriginalData.LastDataValue; // get live data var components = m_cd.Components.Where(x => x.IsReady()).ToList(); if (m_live != null && !HasTechnicals) { var subscriptionId = m_live.SubscribeAndCompute(components, BondCurves.USD3mLibor, BondAnalytics.Country.US); // using US unless we know the country of the CT/CTDs.. subscriptions[subscriptionId] = new HistSeriesInputPanelViewModel() { KnownStructure = CTInputVM[indx].KnownStructure, SeriesData = CTInputVM[indx].SeriesData, Ticker = CTInputVM[indx].Ticker, Type = CTInputVM[indx].Type, OriginalLastPoint = CTInputVM[indx].OriginalLastPoint, }; //if (liveSpread != null & !double.IsNaN(liveSpread)) //{ // dataSeries.SetValueOnDate(DateTime.Today, liveSpread); //} } return new Tuple<bool, CTDs.Structures.IStructure, DatedDataCollectionGen<double>>(true, o, dataSeries); }
private void AddNewInputPanel() { if (ViewModel.HistSeriesInputType == HistSeriesType.CT) { var histSeriesInput = new HistSeriesInputPanel(); var inputPanelVM = new HistSeriesInputPanelViewModel(); histSeriesInput.ViewModel = inputPanelVM; ViewModel.AddInputPanelVM(inputPanelVM); flowLayoutPanel1.Controls.Add(histSeriesInput); } else if (ViewModel.HistSeriesInputType == HistSeriesType.CMT) { var histSeriesInput = new HistSeriesCMTInputPanel(); var inputPanelVM = new HistSeriesCMTInputPanelViewModel(); histSeriesInput.ViewModel = inputPanelVM; ViewModel.AddCMTInputPanelVM(inputPanelVM); flowLayoutPanel1.Controls.Add(histSeriesInput); } else if (ViewModel.HistSeriesInputType == HistSeriesType.Future) { var histSeriesInput = new HistSeriesFutureInputPanel(); var inputPanelVM = new HistSeriesFutureInputPanelViewModel(); histSeriesInput.ViewModel = inputPanelVM; ViewModel.AddFutureInputPanelVM(inputPanelVM); flowLayoutPanel1.Controls.Add(histSeriesInput); } else if (ViewModel.HistSeriesInputType == HistSeriesType.Bbg) { var histSeriesInput = new HistSeriesBbgInputPanel(); var inputPanelVM = new HistSeriesBbgInputViewModel(); histSeriesInput.ViewModel = inputPanelVM; ViewModel.AddBbgInputPanelVM(inputPanelVM); flowLayoutPanel1.Controls.Add(histSeriesInput); } }