コード例 #1
0
 public TradersStockController(ITraderStocksService traderStocksService, ITraderService tradersService, IStockService stockService, IValidator validator)
 {
     this.traderStocksService = traderStocksService;
     this.tradersService      = tradersService;
     this.stockService        = stockService;
     this.validator           = validator;
 }
コード例 #2
0
 public SellerService(IBankService bankService,
                      IPortfolioService portfolioService,
                      ITraderService traderService)
 {
     this._bankService      = bankService;
     this._portfolioService = portfolioService;
     this._traderService    = traderService;
 }
コード例 #3
0
        // ReSharper disable once UnusedParameter.Local
        public static void Main(string[] args)
        {
            Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) {
                e.Cancel = true;
                CancellationTokenSource.Cancel();
                Console.WriteLine("Waiting....");
            };

            var options = new ArgumentOptions();
            var isValid = CommandLine.Parser.Default.ParseArgumentsStrict(args, options);

            if (!isValid)
            {
                Console.WriteLine("Parameter is wrong!");
                return;
            }

            InitializeAutoMappers();
            var serviceProvider = InitDependencyInjection.Init(options.Exchange, options.Strategy);

            Console.WriteLine("Starting parameters:");
            Console.WriteLine($"\tExchange name: {options.Exchange}");
            Console.WriteLine($"\tTrading pair: {options.TradingPair}");
            Console.WriteLine($"\tCandle period: {options.CandlePeriod}");
            Console.WriteLine($"\tStrategy name: {options.Strategy}");
            Console.WriteLine();

            try
            {
                _userBalanceService = serviceProvider.GetService <IUserBalanceService>();
                _realTimeService    = serviceProvider.GetService <ITraderService>();

                var utcNow = DateTime.UtcNow;
                var delayStartInSeconds = (int)options.CandlePeriod * 60 - utcNow.Minute % (int)options.CandlePeriod * 60 - utcNow.Second;
                Console.WriteLine($"Delaying realtime trading start. Delay time (seconds): {delayStartInSeconds}");

                Thread.Sleep(delayStartInSeconds * 1000);

                Console.WriteLine();
                Console.WriteLine("Started trading");
                Console.WriteLine();

                _realTimeService.StartTradingAsync(options.TradingPair, options.CandlePeriod, CancellationTokenSource.Token).Wait();
            }
            catch (Exception ex)
            {
                var emailService = serviceProvider.GetService <IEmailService>();
                emailService.SendEmail($"Exception {options.TradingPair}", ex.ToString());
                Console.WriteLine($"Exception: {ex}");
            }

            Console.WriteLine("############ SUMMARY ############");
            Console.WriteLine(_userBalanceService.TradingSummary());
            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
コード例 #4
0
        public Controller(
            IInputOutput io,
            IPhraseProvider phraseProvider,
            GameSettings gs,
            ITraderService traderService,
            IShareService shareService,
            ITransactionService transactionService,
            ITraderRepository traderRep,
            IShareRepository shareRep,
            ITransactionRepository transactionRep)
        {
            this.io             = io;
            this.phraseProvider = phraseProvider;

            this.traderService      = traderService;
            this.shareService       = shareService;
            this.transactionService = transactionService;

            this.traderRep      = traderRep;
            this.shareRep       = shareRep;
            this.transactionRep = transactionRep;

            Point start  = (0, 0);
            int   whidth = gs.whidthWindow;
            int   height = gs.heightWindow;

            if (whidth < 160)
            {
                io.Print("Window whidth is low" + Environment.NewLine);
                throw new Exception();
            }
            if (height < 30)
            {
                io.Print("Window height is low" + Environment.NewLine);
                throw new Exception();
            }

            this.io.SetWindowSize(whidth + 4, height);
            terminal = new Terminal(
                (whidth / 2 + 1, start.y),
                whidth / 2,
                5,
                io,
                phraseProvider);

            menu = new Menu(
                start,
                whidth / 2,
                height,
                io,
                phraseProvider);
        }
コード例 #5
0
 public ClientsController(ITraderService traderService) =>
 this.traderService = traderService;
コード例 #6
0
 public TraderEditViewModel(ITraderService traderService)
 {
     this.traderService = traderService;
 }
コード例 #7
0
 public TraderController(ITraderService traderService)
 {
     this._traderService = traderService;
 }
コード例 #8
0
 public BalanceController(ITraderService tradersService)
 {
     this.tradersService = tradersService;
 }
コード例 #9
0
 public BuyerService(IBankService bankService, IPortfolioService portfolioService, ITraderService traderService)
 {
     _bankService      = bankService;
     _portfolioService = portfolioService;
     _traderService    = traderService;
 }
コード例 #10
0
 public BalancesController(ITraderService traderService) =>
 this.traderService = traderService;
コード例 #11
0
 public ClientsController(ITraderService tradersService, IBankruptService bankruptService, IValidator validator)
 {
     this.tradersService  = tradersService;
     this.bankruptService = bankruptService;
     this.validator       = validator;
 }
コード例 #12
0
 public TobinTaxerController(ITobinTaxerService TobinTaxerService, ITraderService traderService)
 {
     _TobinTaxerService = TobinTaxerService;
     _traderService     = traderService;
 }