public void TestInitialize() { _positionServiceMock.Setup(o => o.GetOpenAllAsync()) .Returns(() => Task.FromResult <IReadOnlyCollection <Position> >(_openPositions)); _marketMakerStateServiceMock.Setup(o => o.GetStateAsync()) .Returns(() => Task.FromResult(_marketMakerState)); _instrumentServiceMock.Setup(o => o.GetByAssetPairIdAsync(It.IsAny <string>())) .Returns((string assetPairId) => Task.FromResult(_instruments.SingleOrDefault(o => o.AssetPairId == assetPairId))); _remainingVolumeServiceMock.Setup(o => o.GetAllAsync()) .Returns(() => Task.FromResult <IReadOnlyCollection <RemainingVolume> >(_remainingVolumes)); _service = new HedgeService( _positionServiceMock.Object, _instrumentServiceMock.Object, _externalExchangeServiceMock.Object, _marketMakerStateServiceMock.Object, _remainingVolumeServiceMock.Object, EmptyLogFactory.Instance); }
public void Setup() { _loggerFactory = LoggerFactory.Create(builder => builder.AddSimpleConsole(options => { options.IncludeScopes = true; options.SingleLine = true; options.TimestampFormat = "hh:mm:ss "; })); _positioPortfolioManager = new PortfolioManagerMock(); _hedgeSettings = new HedgeSettingsManagerMock(); _externalMarketManager = new ExternalMarketManagerMock(); _walletManager = new LpWalletManagerMock(); _settingsMock = new(); _orderBookManager = new OrderBookManagerMock(); _externalBalanceCacheManagerMock = new ExternalBalanceCacheManagerMock(); _service = new HedgeService( _loggerFactory.CreateLogger <HedgeService>(), _positioPortfolioManager, _hedgeSettings, _externalMarketManager, _walletManager, _settingsMock, _orderBookManager, _externalBalanceCacheManagerMock ); _hedgeSettings.GlobalSettings.Mode = EngineMode.Active; _settingsMock.MmSettings.Mode = EngineMode.Disabled; _settingsMock.MmSettings.UseExternalBalancePercentage = 100; _settingsMock.LpSettings.Add(new LiquidityProviderInstrumentSettings() { Mode = EngineMode.Active, ModeHedge = EngineMode.Active, LpWalletName = "NAME", Symbol = "BTCUSD", LpSources = new List <LpSourceSettings>(), LpHedges = new List <LpHedgeSettings>() { new LpHedgeSettings() { Mode = EngineMode.Active, ExternalMarket = "FTX", ExternalSymbol = "BTC/USD", MinVolume = 0.01 } }, WalletId = "LP-Wallet", BrokerId = "broker" }); _externalMarketManager.Prices["BTC/USD"] = 10000; _externalMarketManager.Trades["FTX"] = new List <ExchangeTrade>(); _externalMarketManager.MarketInfo["BTC/USD"] = new ExchangeMarketInfo() { Market = "BTC/USD", BaseAsset = "BTC", QuoteAsset = "USD", MinVolume = 0.01, VolumeAccuracy = 4, PriceAccuracy = 2 }; _walletManager.Wallets["NAME"] = new LpWallet() { WalletId = "LP-Wallet", BrokerId = "broker", ClientId = "client", Name = "NAME" }; _externalBalanceCacheManagerMock.Balances["FTX"] = new Dictionary <string, ExchangeBalance>(); _externalBalanceCacheManagerMock.Balances["FTX"]["BTC"] = new ExchangeBalance() { Symbol = "BTC", Balance = 10, Free = 10 }; _externalBalanceCacheManagerMock.Balances["FTX"]["USD"] = new ExchangeBalance() { Symbol = "USD", Balance = 1000000, Free = 1000000 }; _externalBalanceCacheManagerMock.Markets["FTX"] = new Dictionary <string, ExchangeMarketInfo>(); _externalBalanceCacheManagerMock.Markets["FTX"]["BTC/USD"] = new ExchangeMarketInfo() { Market = "BTC/USD", BaseAsset = "BTC", QuoteAsset = "USD", MinVolume = 0, PriceAccuracy = 0, VolumeAccuracy = 4 }; _orderBookManager.Data[("BTC/USD", "FTX")] = new LeOrderBook