public Application( IRabbitMqNotifyService rabbitMqNotifyService, IConsole consoleWriter, MarketMakerService marketMakerService, ILog logger, MarginSettings marginSettings, IMaintenanceModeService maintenanceModeService, IRabbitMqService rabbitMqService, MatchingEngineRoutesManager matchingEngineRoutesManager, IMigrationService migrationService, IConvertService convertService, ExternalOrderBooksList externalOrderBooksList) { _rabbitMqNotifyService = rabbitMqNotifyService; _consoleWriter = consoleWriter; _marketMakerService = marketMakerService; _logger = logger; _marginSettings = marginSettings; _maintenanceModeService = maintenanceModeService; _rabbitMqService = rabbitMqService; _matchingEngineRoutesManager = matchingEngineRoutesManager; _migrationService = migrationService; _convertService = convertService; _externalOrderBooksList = externalOrderBooksList; }
public Application( MarketMakerService marketMakerService, ILog logger, MarginTradingSettings marginSettings, IMaintenanceModeService maintenanceModeService, IRabbitMqService rabbitMqService, MatchingEngineRoutesManager matchingEngineRoutesManager, IMigrationService migrationService, IConvertService convertService, IFxRateCacheService fxRateCacheService, IExternalOrderbookService externalOrderbookService, BrokerSettingsChangedHandler brokerSettingsChangedHandler) { _marketMakerService = marketMakerService; _logger = logger; _marginSettings = marginSettings; _maintenanceModeService = maintenanceModeService; _rabbitMqService = rabbitMqService; _matchingEngineRoutesManager = matchingEngineRoutesManager; _migrationService = migrationService; _convertService = convertService; _fxRateCacheService = fxRateCacheService; _externalOrderbookService = externalOrderbookService; _brokerSettingsChangedHandler = brokerSettingsChangedHandler; }
public BackOfficeController( IAccountsCacheService accountsCacheService, AccountManager accountManager, MatchingEngineRoutesManager routesManager, IOrderReader ordersReader, IMarginTradingEnablingService marginTradingEnablingService) { _accountsCacheService = accountsCacheService; _accountManager = accountManager; _routesManager = routesManager; _ordersReader = ordersReader; _marginTradingEnablingService = marginTradingEnablingService; }
public Application( IRabbitMqNotifyService rabbitMqNotifyService, IConsole consoleWriter, MarketMakerService marketMakerService, ILog logger, MarginTradingSettings marginSettings, IMaintenanceModeService maintenanceModeService, IRabbitMqService rabbitMqService, MatchingEngineRoutesManager matchingEngineRoutesManager, IMigrationService migrationService, IConvertService convertService, IFxRateCacheService fxRateCacheService, IExternalOrderbookService externalOrderbookService, IAssetsManager assetsManager, IAssetPairsManager assetPairsManager, ITradingInstrumentsManager tradingInstrumentsManager, ITradingConditionsManager tradingConditionsManager, IScheduleSettingsCacheService scheduleSettingsCacheService, IOvernightMarginService overnightMarginService, IThreadSwitcher threadSwitcher) { _rabbitMqNotifyService = rabbitMqNotifyService; _consoleWriter = consoleWriter; _marketMakerService = marketMakerService; _logger = logger; _marginSettings = marginSettings; _maintenanceModeService = maintenanceModeService; _rabbitMqService = rabbitMqService; _matchingEngineRoutesManager = matchingEngineRoutesManager; _migrationService = migrationService; _convertService = convertService; _fxRateCacheService = fxRateCacheService; _externalOrderbookService = externalOrderbookService; _assetsManager = assetsManager; _assetPairsManager = assetPairsManager; _tradingInstrumentsManager = tradingInstrumentsManager; _tradingConditionsManager = tradingConditionsManager; _scheduleSettingsCacheService = scheduleSettingsCacheService; _overnightMarginService = overnightMarginService; _threadSwitcher = threadSwitcher; }
public void OneTimeSetUp() { RegisterDependencies(); _accountsCacheService = Container.Resolve <IAccountsCacheService>(); _tradingConditionsManager = Container.Resolve <TradingConditionsManager>(); _matchingEngineRoutesManager = Container.Resolve <MatchingEngineRoutesManager>(); if (_matchingEngineRoutesManager == null) { throw new Exception("Unable to resolve MatchingEngineRoutesCacheService"); } // Add user accounts var account1 = new MarginTradingAccount() { ClientId = "CLIENT001" }; var account2 = new MarginTradingAccount() { ClientId = "CLIENT002" }; var account3 = new MarginTradingAccount() { ClientId = "CLIENT003" }; var account4 = new MarginTradingAccount() { ClientId = "CLIENT004" }; _accountsCacheService.UpdateAccountsCache(account1.ClientId, new[] { account1 }); _accountsCacheService.UpdateAccountsCache(account2.ClientId, new[] { account2 }); _accountsCacheService.UpdateAccountsCache(account3.ClientId, new[] { account3 }); _accountsCacheService.UpdateAccountsCache(account4.ClientId, new[] { account4 }); // Add trading conditions System.Threading.Tasks.Task.Run(async() => { await _tradingConditionsManager.AddOrReplaceTradingConditionAsync(new TradingCondition() { Id = "TCID001", Name = "MarginTradingCondition 1", IsDefault = true }); await _tradingConditionsManager.AddOrReplaceTradingConditionAsync(new TradingCondition() { Id = "TCID003", Name = "MarginTradingCondition 3", IsDefault = false }); await _tradingConditionsManager.AddOrReplaceTradingConditionAsync(new TradingCondition() { Id = "TCID004", Name = "MarginTradingCondition 4", IsDefault = false }); await _tradingConditionsManager.AddOrReplaceTradingConditionAsync(new TradingCondition() { Id = "TCID005", Name = "MarginTradingCondition 5", IsDefault = false }); }).Wait(); System.Threading.Tasks.Task.Run(async() => { await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "1", Rank = 10, MatchingEngineId = "LYKKE" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "2", Rank = 5, Instrument = "BTCUSD", MatchingEngineId = "ICM" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "3", Rank = 4, TradingConditionId = "TCID001", Instrument = "EURCHF", Type = OrderDirection.Buy, MatchingEngineId = "LYKKE" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "4", Rank = 3, TradingConditionId = "TCID001", ClientId = "CLIENT001", Instrument = "EURCHF", Type = OrderDirection.Buy, MatchingEngineId = "ICM" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "5", Rank = 4, TradingConditionId = "TCID001", ClientId = "CLIENT002", Instrument = "EURCHF", Type = OrderDirection.Buy, MatchingEngineId = "LYKKE" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "6", Rank = 4, Instrument = "EURCHF", Type = OrderDirection.Buy, MatchingEngineId = "LYKKE" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "7", Rank = 4, Instrument = "EURCHF", MatchingEngineId = "LYKKE" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "8", Rank = 5, ClientId = "CLIENT003", Instrument = "EURCHF", MatchingEngineId = "LYKKE" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "9", Rank = 6, TradingConditionId = "TCID003", ClientId = "CLIENT002", Instrument = "EURCHF", Type = OrderDirection.Sell, MatchingEngineId = "ICM" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "10", Rank = 4, TradingConditionId = "TCID004", ClientId = "CLIENT004", Instrument = "EURJPY", MatchingEngineId = "ICM" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "11", Rank = 4, TradingConditionId = "TCID004", Instrument = "EURJPY", Type = OrderDirection.Buy, MatchingEngineId = "LYKKE" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "12", Rank = 4, TradingConditionId = "TCID005", Instrument = "EURUSD", Type = OrderDirection.Buy, MatchingEngineId = "LYKKE" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "13", Rank = 4, TradingConditionId = "TCID005", Instrument = "EURUSD", Type = OrderDirection.Buy, MatchingEngineId = "ICM" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "14", Rank = 9, Instrument = "BTCEUR", MatchingEngineId = "LYKKE" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "15", Rank = 7, Type = OrderDirection.Buy, MatchingEngineId = "ICM", Asset = "EUR" }); await _matchingEngineRoutesManager.AddOrReplaceRouteAsync(new MatchingEngineRoute() { Id = "16", Rank = 8, Type = OrderDirection.Sell, MatchingEngineId = "ICM", Asset = "EUR" }); }).Wait(); /* TABLE PROTOTYPE * Id Rank tradingConditionId clientId instrument type matchingEngineId asset * * 1 10 * * * * LYKKE * 2 5 * * BTCUSD * ICM * 3 4 TCID001 * EURCHF Buy LYKKE * 4 3 TCID001 CLIENT001 EURCHF Buy ICM * 5 4 TCID001 CLIENT002 EURCHF Buy LYKKE * 6 4 * * EURCHF Buy LYKKE * 7 4 * * EURCHF * LYKKE * 8 5 * CLIENT003 EURCHF * LYKKE * 9 6 TCID003 CLIENT002 EURCHF Sell ICM * 10 4 TCID004 CLIENT004 EURJPY * ICM * 11 4 TCID004 * EURJPY Buy LYKKE * 12 4 TCID005 * EURUSD Buy LYKKE * 13 4 TCID005 * EURUSD Buy ICM * 14 9 * * BTCEUR * LYKKE * 15 7 * * Buy ICM EUR * 16 8 * * Buy LYKKE EUR * * */ }