public void Start() { loggingService.Info($"Start Backtesting service... (Replay: {Config.Replay})"); signalsService = Application.Resolve <ISignalsService>(); tradingService = Application.Resolve <ITradingService>(); if (Config.Replay) { backtestingLoadSnapshotsTimedTask = tasksService.AddTask( name: nameof(BacktestingLoadSnapshotsTimedTask), task: new BacktestingLoadSnapshotsTimedTask(loggingService, healthCheckService, tradingService, this), interval: Config.SnapshotsInterval / Config.ReplaySpeed * 1000, startDelay: Constants.TaskDelays.HighDelay, startTask: false, runNow: false, skipIteration: 0); } backtestingSaveSnapshotsTimedTask = tasksService.AddTask( name: nameof(BacktestingSaveSnapshotsTimedTask), task: new BacktestingSaveSnapshotsTimedTask(loggingService, healthCheckService, tradingService, signalsService, this), interval: Config.SnapshotsInterval * 1000, startDelay: Constants.TaskDelays.HighDelay, startTask: false, runNow: false, skipIteration: 0); if (Config.DeleteLogs) { loggingService.DeleteAllLogs(); } string virtualAccountPath = Path.Combine(Directory.GetCurrentDirectory(), tradingService.Config.VirtualAccountFilePath); if (File.Exists(virtualAccountPath) && (Config.DeleteAccountData || !String.IsNullOrWhiteSpace(Config.CopyAccountDataPath))) { File.Delete(virtualAccountPath); } if (!String.IsNullOrWhiteSpace(Config.CopyAccountDataPath)) { File.Copy(Path.Combine(Directory.GetCurrentDirectory(), Config.CopyAccountDataPath), virtualAccountPath, true); } if (Config.Replay) { Application.Speed = Config.ReplaySpeed; } Application.Resolve <ICoreService>().Started += OnCoreServiceStarted; loggingService.Info("Backtesting service started"); }
public void Start() { loggingService.Info($"Start Backtesting service... (Replay: {Config.Replay})"); signalsService = Application.Resolve <ISignalsService>(); tradingService = Application.Resolve <ITradingService>(); if (Config.Replay) { backtestingLoadSnapshotsTimedTask = new BacktestingLoadSnapshotsTimedTask(loggingService, healthCheckService, tradingService, this); backtestingLoadSnapshotsTimedTask.Interval = Config.SnapshotsInterval / Config.ReplaySpeed * 1000; backtestingLoadSnapshotsTimedTask.StartDelay = Constants.TimedTasks.StandardDelay; Application.Resolve <ICoreService>().AddTask(nameof(BacktestingLoadSnapshotsTimedTask), backtestingLoadSnapshotsTimedTask); } backtestingSaveSnapshotsTimedTask = new BacktestingSaveSnapshotsTimedTask(loggingService, healthCheckService, tradingService, signalsService, this); backtestingSaveSnapshotsTimedTask.Interval = Config.SnapshotsInterval * 1000; backtestingSaveSnapshotsTimedTask.StartDelay = Constants.TimedTasks.StandardDelay; Application.Resolve <ICoreService>().AddTask(nameof(BacktestingSaveSnapshotsTimedTask), backtestingSaveSnapshotsTimedTask); if (Config.DeleteLogs) { loggingService.DeleteAllLogs(); } string virtualAccountPath = Path.Combine(Directory.GetCurrentDirectory(), tradingService.Config.VirtualAccountFilePath); if (File.Exists(virtualAccountPath) && (Config.DeleteAccountData || !String.IsNullOrWhiteSpace(Config.CopyAccountDataPath))) { File.Delete(virtualAccountPath); } if (!String.IsNullOrWhiteSpace(Config.CopyAccountDataPath)) { File.Copy(Path.Combine(Directory.GetCurrentDirectory(), Config.CopyAccountDataPath), virtualAccountPath, true); } loggingService.Info("Backtesting service started"); }