Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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();
		}