Example #1
0
        protected override sealed void OnTermination()
        {
            GOnTermination();

            if (_fm != null)
            {
                _fm.Dispose();
                _fm = null;
            }
        }
Example #2
0
        protected override sealed void OnStartUp()
        {
            if (BarsPeriod.Id == PeriodType.Volume)
            {
                _maxVolume = BarsPeriod.Value;
            }

            if (BarsPeriod.Id == PeriodType.Tick)
            {
                _maxTick = BarsPeriod.Value;
            }

            _fm = (IGDataManager)Activator.CreateInstance(GDataManagerList.Type[_iDataManager]);
            _fm.Initialize(BarsArray[0].Instrument.FullName, _writeData, this);

            GOnStartUp();
        }
Example #3
0
        static GDataManagerList()
        {
            var types = from t in Assembly.GetExecutingAssembly().GetTypes()
                        where t.IsClass && !t.IsAbstract && (t.GetInterface(typeof(IGDataManager).Name) != null)
                        select t;

            foreach (var type in types)
            {
                IGDataManager instance = (IGDataManager)Activator.CreateInstance(type);

                Name.Add((string)(type.GetProperty("Name").GetValue(instance, null)));
                Writable.Add((bool)(type.GetProperty("IsWritable").GetValue(instance, null)));
                MillisecCompliant.Add((bool)(type.GetProperty("IsMillisecCompliant").GetValue(instance, null)));
                Type.Add(type);

                instance.Dispose();
            }
        }
Example #4
0
        protected override sealed void OnBarUpdate()
        {
            GOnBarUpdate();

            if (BarsInProgress == 0)
            {
                if (Historical)
                {
                    MasterInstrument MI = Bars.Instrument.MasterInstrument;

                    if ((Bars.FirstBarOfSession || (BarsPeriod.Id == PeriodType.Day)) && (MI.InstrumentType == InstrumentType.Future) && (MI.MergePolicy != MergePolicy.DoNotMerge) && !_writeData && !Bars.Instrument.FullName.Contains("##-##"))
                    {
                        _RolloverContract();
                    }

                    _OnBarUpdateHistorical();
                }

                else
                {
                    if (_dataManagerNotDisposedOf)
                    {
                        if (!_writeData)
                        {
                            _fm.Dispose();
                            _fm = null;
                            _dataManagerNotDisposedOf = false;
                        }
                    }

                    _OnBarUpdateRealTime();
                }

                GOnBarUpdateDone();
            }
        }