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>(); }
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); }
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); }