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