Пример #1
0
        public override void Run()
        {
            Instrument instrument1 = InstrumentManager.Instruments["AAPL"];

            //Instrument instrument2 = InstrumentManager.Instruments["MSFT"];
            //Instrument instrument3 = InstrumentManager.Instruments["CSCO_2001"];
            //Instrument instrument4 = InstrumentManager.Instruments["IF1409"];
            //Instrument instrument5 = InstrumentManager.Instruments["IF999"];

            // Create SMA Crossover strategy
            strategy = new SMACrossoverLoadOnStart_Strategy(framework, "SMACrossover");
            //strategy = new DynamicBreakOut2(framework, "DynamicBreakOut2");
            //strategy = new DualThrust_RangeBreak_Strategy(framework, "DualThrust_RangeBreak_Strategy");

            // Add instruments
            strategy.AddInstrument(instrument1);
            //strategy.AddInstrument(instrument2);
            //strategy.AddInstrument(instrument3);
            //strategy.AddInstrument(instrument4);
            //strategy.AddInstrument(instrument5);

            PbTickDataImport ptdi = new PbTickDataImport();

            ptdi.ReadFile(instrument1.Id, @"D:\1.data");

            DataSimulator.Series.Add(ptdi.Trades);

            DataSimulator.SubscribeAll = false;

            ExecutionSimulator.FillOnBar = true;

            // Set simulation interval
            //DataSimulator.DateTime1 = new DateTime(2015, 04, 16);
            //DataSimulator.DateTime1 = new DateTime(2001, 01, 01);
            //DataSimulator.DateTime1 = new DateTime(2014, 06, 01);
            DataSimulator.DateTime1 = new DateTime(2013, 12, 16, 9, 30, 01);
            DataSimulator.DateTime2 = new DateTime(2013, 12, 20, 16, 00, 0);
            //DataSimulator.DateTime2 = new DateTime(2013, 12, 31);
            //DataSimulator.DateTime2 = new DateTime(2001, 12, 31);
            //DataSimulator.DateTime2 = new DateTime(2016, 11, 02);

            // Add 1 minute bars
            BarFactory.Add(instrument1, BarType.Time, barSize60);
            BarFactory.Add(instrument1, BarType.Time, barSize86400);
            //BarFactory.Add(instrument2, BarType.Time, barSize);
            //BarFactory.Add(instrument3, BarType.Time, barSize);
            //BarFactory.Add(instrument4, BarType.Time, barSize60);
            //BarFactory.Add(instrument4, BarType.Time, barSize86400);
            //BarFactory.Add(instrument5, SmartQuant.BarType.Time, barSize60);
            //BarFactory.Add(instrument5, SmartQuant.BarType.Time, barSize86400);

            // Run the strategy
            StartStrategy();
        }
Пример #2
0
        public override void Run()
        {
            // Prepare running.
            Console.WriteLine("Prepare running in {0} mode...", framework.StrategyManager.Mode);

            // Get trading instruments.
            Instrument ins1 = InstrumentManager.Instruments["AAPL"];

            // Create SMA Crossover with Loading data on start strategy.
            // and add trading instruments.
            SMACrossoverLoadOnStart_Strategy smaCrossoverLOS = new SMACrossoverLoadOnStart_Strategy(framework, "SMACrossoverLOS");

            smaCrossoverLOS.Instruments.Add(ins1);

            // Set strategy as main.
            strategy = smaCrossoverLOS;

            Console.WriteLine("Prepare running in {0} mode...", framework.StrategyManager.Mode);

            // Set DataSimulator's dates.
            DataSimulator.DateTime1 = new DateTime(2013, 01, 01);
            DataSimulator.DateTime2 = new DateTime(2013, 12, 18);

            // Set property for suspend trading during simulation.
            SMACrossoverLoadOnStart_Strategy.SuspendTrading = true;

            // Add 5 minute bars (300 seconds) for trading instruments.
            BarFactory.Add(ins1, SmartQuant.BarType.Time, barSize);

            StartStrategy(StrategyMode.Backtest);

            DataSimulator.DateTime1 = new DateTime(2013, 12, 18);
            DataSimulator.DateTime2 = new DateTime(2013, 12, 31);


            // Set property for trading.
            SMACrossoverLoadOnStart_Strategy.SuspendTrading = false;

            // Run.
            Console.WriteLine("Run in {0} mode.", framework.StrategyManager.Mode);


            StartStrategy(StrategyMode.Backtest);

            return;
        }