Exemple #1
0
        public async Task Simple1()
        {
            // arrange

            // Buckets:
            // BTC/USD

            // Prices:
            // BTC/USD

            var btcUsdBucket = new Bucket("BTC", "BTCUSD", "BTC", "USD");

            var internalQuotesService = new InternalQuotesService(NullLogger <InternalQuotesService> .Instance);
            var positionService       = new PositionService(internalQuotesService, NullLogger <PositionService> .Instance);

            var bucket = new Bucket("BTC", "BTCUSD", "BTC", "USD");

            positionService.AddBucket("BTC", bucket);

            var trade = new Trade("1", "1", "BTCUSD", "BTC", "USD", 1, -10000, 10000, DateTime.Now);

            // act

            await positionService.HandleAsync(trade);

            // assert

            var updatedBucket = positionService.GetBucket("BTC");

            Assert.Equal(1, updatedBucket.BaseVolume);
            Assert.Equal(-10000, updatedBucket.QuoteVolume);
        }
Exemple #2
0
 public PositionService(InternalQuotesService internalQuotesService, ILogger <PositionService> logger)
 {
     _internalQuotesService = internalQuotesService;
     _logger = logger;
 }