public async Task InsertAsync(VirtualTrade virtualTrade)
        {
            var entity = new VirtualTradeEntity(GetPartitionKey(virtualTrade.Timestamp), GetRowKey(virtualTrade.Id));

            Mapper.Map(virtualTrade, entity);

            await _storage.InsertAsync(entity);
        }
        public async Task ExecuteLimitOrderAsync(HedgeLimitOrder hedgeLimitOrder)
        {
            VirtualTrade virtualTrade = VirtualTrade.Create(
                hedgeLimitOrder.Id,
                hedgeLimitOrder.AssetId,
                hedgeLimitOrder.AssetPairId,
                hedgeLimitOrder.Type == LimitOrderType.Sell
                    ? TradeType.Sell
                    : TradeType.Buy,
                hedgeLimitOrder.Timestamp,
                hedgeLimitOrder.Price,
                hedgeLimitOrder.Volume);

            await _positionService.UpdateAsync(virtualTrade.AssetId, Name, virtualTrade.Type, virtualTrade.Volume,
                                               virtualTrade.OppositeVolume);

            await _virtualTradeService.AddAsync(virtualTrade);

            _log.InfoWithDetails("Virtual trade executed", virtualTrade);
        }
Пример #3
0
 public Task AddAsync(VirtualTrade virtualTrade)
 {
     return(_virtualTradeRepository.InsertAsync(virtualTrade));
 }