Пример #1
0
        public BackTestWorker(IBaseData baseData, string stockId, Action <string> writeToLogAction, Action <Exception> writeToErrorLogAction, bool alwaysRun = true)
            : base(baseData)
        {
            _baseData = baseData;
            _stockId  = stockId;

            _startDate = baseData.CurrentTime;
            _endDate   = DateTime.Now;

            _writeToLogAction      = writeToLogAction;
            _writeToErrorLogAction = writeToErrorLogAction;

            // create StorageSpace
            _storage = new CurrentPriceStorage();

            // create Turtle Database
            _turtleDbOperations  = new TurtleDatabaseOperations(baseData.SystemConfig.SystemInfo.ProductionTurtleDBConnectionString);
            _memoryDbOperations  = new MemoryDatabaseOperations();
            _prepareMemoryDbTask = Task.Run(() => PrepareMemoryDatabaseAsync());

            //
            _stockPriceNotificationChecker = BaseData.CreateStockPriceNotificationChecker();

            // create EmailService and EmailTemplateProvider
            _logger = BaseData.GetLogger();
            _notificationService          = new BackTestNotificationService(_logger);
            _notificationTemplateProvider = new BackTestNotificationTemplateProvider();
        }
Пример #2
0
        public BuyWorker(IBaseData baseData, IBuySellStrategyProvider buySellStrategyProvider)
            : base(baseData)
        {
            Name = "Buy Stock Worker";
            _buySellStrategyProvider = buySellStrategyProvider;
            Kind = ServiceWorkerKind.BuyWorker;
            SetWorkerStartTimeEndTime(ServiceWorkerKind.BuyWorker);
            _priceNotificationChecker = BaseData.CreateStockPriceNotificationChecker();

            WriteToWorkerLog($"{Name} has been created");
        }
Пример #3
0
 public IStockPriceNotificationChecker CreateStockPriceNotificationChecker()
 {
     return(_stockPriceNotificationChecker ?? (_stockPriceNotificationChecker = new StockPriceNotificationChecker()));
 }