Ejemplo n.º 1
0
        public OhlcBacktesterTests()
        {
            _robotParametersMock = new Mock <IRobotParameters>();

            var symbols = new List <ISymbol>
            {
                new OhlcSymbol(new Mock <IBars>().Object)
                {
                    Name = "Main"
                },
                new OhlcSymbol(new Mock <IBars>().Object)
                {
                    Name = "First"
                },
                new OhlcSymbol(new Mock <IBars>().Object)
                {
                    Name = "Second"
                },
                new OhlcSymbol(new Mock <IBars>().Object)
                {
                    Name = "Third"
                },
            };

            var startTime = DateTimeOffset.Now.AddDays(-30);
            var endTime   = DateTimeOffset.Now;

            var symbolsData = new List <ISymbolBacktestData>();

            var random = new Random(0);

            symbols.ForEach(iSymbol =>
            {
                var symbolData = new SymbolBacktestData(iSymbol, GetData(100 * random.Next(1, 5), startTime, endTime));

                symbolsData.Add(symbolData);
            });

            _backtestSettings = new BacktestSettings(startTime, endTime);

            _backtester = new OhlcBacktester {
                Interval = TimeSpan.FromHours(1)
            };

            _robotParametersMock.SetupProperty(robotParameters => robotParameters.Symbols, symbols);
            _robotParametersMock.SetupProperty(robotParameters => robotParameters.SymbolsBacktestData, symbolsData);
            _robotParametersMock.SetupProperty(robotParameters => robotParameters.Backtester, _backtester);
            _robotParametersMock.SetupProperty(robotParameters => robotParameters.BacktestSettings, _backtestSettings);
            _robotParametersMock.SetupProperty(robotParameters => robotParameters.Server, new Server());
            _robotParametersMock.SetupProperty(robotParameters => robotParameters.Account, new Mock <IAccount>().Object);
            _robotParametersMock.SetupProperty(robotParameters => robotParameters.Mode, Mode.Backtest);

            var tradeEngine = new BacktestTradeEngine(_robotParametersMock.Object.Server, _robotParametersMock.Object.Account);

            _robotParametersMock.SetupProperty(settings => settings.TradeEngine, tradeEngine);

            _robotMock = new Mock <Robot>();
        }
Ejemplo n.º 2
0
        public GridOptimizerTests()
        {
            var startTime = DateTimeOffset.Now.AddDays(-10);
            var endTime   = DateTimeOffset.Now;

            _optimizerSettings = new OptimizerSettings
            {
                AccountBalance       = 10000,
                AccountLeverage      = 500,
                BacktesterType       = typeof(OhlcBacktester),
                BacktestSettingsType = typeof(BacktestSettings),
            };

            var data = SampleDataGenerator.GetSampleData(200, startTime, endTime, TimeSpan.FromDays(1));

            var symbol = new OhlcSymbol(new TimeBasedBars(TimeSpan.FromDays(1)))
            {
                Name = "Main"
            };
            var symbolData = new SymbolBacktestData(symbol, data);

            _optimizerSettings.SymbolsData = new List <ISymbolBacktestData> {
                symbolData
            };
            _optimizerSettings.BacktestSettingsParameters = new List <object>
            {
                startTime,
                endTime,
            }.ToArray();
            _optimizerSettings.TradeEngineType    = typeof(BacktestTradeEngine);
            _optimizerSettings.TimerContainerType = typeof(TimerContainer);
            _optimizerSettings.ServerType         = typeof(Server);
            _optimizerSettings.RobotSettingsType  = typeof(RobotParameters);
            _optimizerSettings.RobotType          = typeof(SampleBot);
            _optimizerSettings.Parameters         = new List <OptimizeParameter>()
            {
                new OptimizeParameter("Periods", 30, 50, 10),
                new OptimizeParameter("Deviation", 2),
                new OptimizeParameter("Range", 2000, 6000, 2000)
            };
            _optimizerSettings.BacktesterInterval = TimeSpan.FromHours(1);

            _optimizer = new GridOptimizer(_optimizerSettings);
        }
Ejemplo n.º 3
0
        public OptimizerTests()
        {
            var startTime = DateTimeOffset.Now.AddDays(-10);
            var endTime   = DateTimeOffset.Now;

            _optimizerSettings = new OptimizerSettings
            {
                AccountBalance       = 10000,
                AccountLeverage      = 500,
                BacktesterType       = typeof(OhlcBacktester),
                BacktestSettingsType = typeof(BacktestSettings),
            };

            var data = SampleDataGenerator.GetSampleData(200, startTime, endTime, TimeSpan.FromDays(1));

            var symbol = new OhlcSymbol(new Mock <IBars>().Object)
            {
                Name = "Main"
            };
            var symbolData = new SymbolBacktestData(symbol, data);

            _optimizerSettings.SymbolsData = new List <ISymbolBacktestData> {
                symbolData
            };
            _optimizerSettings.BacktestSettingsParameters = new List <object>
            {
                startTime,
                endTime,
            }.ToArray();
            _optimizerSettings.TradeEngineType          = typeof(BacktestTradeEngine);
            _optimizerSettings.TimerContainerType       = typeof(TimerContainer);
            _optimizerSettings.TimerContainerParameters = new object[] { Mode.Backtest };
            _optimizerSettings.ServerType        = typeof(Server);
            _optimizerSettings.RobotSettingsType = typeof(RobotParameters);
            _optimizerSettings.RobotType         = typeof(SampleBot);

            _optimizerMock = new Mock <Optimizer>(_optimizerSettings);
        }