private void RolloverContract() { string instrname; bool rollover = false; DateTime zonedate = TimeZoneInfo.ConvertTime(Time[0], Bars.Session.TimeZoneInfo); MasterInstrument MI = Bars.Instrument.MasterInstrument; IEnumerable <RollOver> ROCollection = MI.RollOverCollection.Cast <RollOver>(); DateTime cm = ROCollection.Where(x => x.Date <= zonedate.Date).OrderByDescending(x => x.Date).First().ContractMonth; if (cm != curcm) { rollover = true; curcm = cm; } if (rollover) { priceoffset = 0.0f; if (MI.MergePolicy == MergePolicy.MergeBackAdjusted) { priceoffset = ROCollection.Where(x => (x.ContractMonth > cm) && (x.ContractMonth <= Instrument.Expiry) && !(double.IsNaN(x.Offset))).Sum(x => x.Offset); } foundbarinfile = false; EOFfound = false; instrname = MI.Name + " " + cm.Month.ToString("D2") + "-" + (cm.Year % 100).ToString("D2"); fm.Initialize(instrname, writeData, this); } }
private void RolloverContract() { string instrname; bool rollover = false; DateTime zonedate = TimeZoneInfo.ConvertTime(Time[0], Bars.Session.TimeZoneInfo); DateTime cm = new DateTime(0L); MasterInstrument MI = Bars.Instrument.MasterInstrument; DateTime dt = new DateTime(0L); foreach (RollOver RO in MI.RollOverCollection) { if ((zonedate.Date >= RO.Date) && (RO.Date > dt)) { dt = RO.Date; cm = RO.ContractMonth; } } if (cm != curcm) { rollover = true; curcm = cm; } if (rollover) { priceoffset = 0.0f; if (MI.MergePolicy == MergePolicy.MergeBackAdjusted) { foreach (RollOver RO in MI.RollOverCollection) { if ((RO.ContractMonth > cm) && (RO.ContractMonth <= Instrument.Expiry) && !(double.IsNaN(RO.Offset))) { priceoffset += RO.Offset; } } } foundbarinfile = false; EOFfound = false; instrname = MI.Name + " " + cm.Month.ToString("D2") + "-" + cm.Year % 100; fm.Initialize(instrname, writeData, this); } }
protected override sealed void OnStartUp() { if (BarsPeriod.Id == PeriodType.Volume) { MaxVolume = BarsPeriod.Value; } if (BarsPeriod.Id == PeriodType.Tick) { MaxTick = BarsPeriod.Value; } fm = (Gom.IDataManager)Activator.CreateInstance(Gom.DataManagerList.Type[iDataManager]); fm.Initialize(BarsArray[0].Instrument.FullName, writeData, this); GomOnStartUp(); }
protected override sealed void OnStartUp() { if (BarsPeriod.Id == PeriodType.Volume) MaxVolume = BarsPeriod.Value; if (BarsPeriod.Id == PeriodType.Tick) MaxTick = BarsPeriod.Value; fm = (Gom.IDataManager)Activator.CreateInstance(Gom.DataManagerList.Type[iDataManager]); fm.Initialize(BarsArray[0].Instrument.FullName, writeData, this); GomOnStartUp(); }