Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AlgorithmService"/> class.
        /// </summary>
        /// <param name="loggerFactory">Provides logging capabilities.</param>
        /// <param name="allocationManager">Set allocations on startup.</param>
        /// <param name="exchangeFactoryService">Provides containers for algorithms.</param>
        public AlgorithmService(
            ILoggerFactory loggerFactory,
            IAllocationManager allocationManager,
            ExchangeFactoryService exchangeFactoryService)
        {
            _logger = loggerFactory.CreateLogger <AlgorithmService>();
            _exchangeFactoryService = exchangeFactoryService;

            if (Program.CommandLineArgs.Trading)
            {
                // Sets initial configuration
                try
                {
                    allocationManager.SetInitialConfiguration(Configuration.Instance.EnabledAlgorithm.Allocation);
                }
                catch (AllocationUnavailableException)
                {
                    Program.ExitProgramWithCode(ExitCode.AllocationUnavailable);
                }
            }
        }