private ProfitInfo GetReport(TradeModel[] trades, TradeModel[] nextTrades) { nextTrades ??= Array.Empty <TradeModel>(); var cleanTrades = RemoveOpenedTrades(trades); if (!cleanTrades.Any()) { return(ProfitInfo.Empty); } var closing = GetClosingTrades(nextTrades); var withCloses = cleanTrades.Concat(closing).ToArray(); var info = StatsComputer.ComputeProfitComplex(withCloses, 0); var infoWithFee = StatsComputer.ComputeProfitComplex(withCloses, _feePercentage); info.BaseSymbol = _baseSymbol; info.QuoteSymbol = _quoteSymbol; info.DisplayWithFee = _config.DisplayFee ?? false; info.OrderSize = _orderSize; info.CurrentInventory = _currentInventory; info.MaxInventory = _maxInventory; info.MaxInventoryLimit = _maxLimitInventory; info.PnlWithFee = infoWithFee.Pnl; return(info); }
private ProfitInfo GetReport(TradeModel[] trades) { var cleanTrades = RemoveOpenedTrades(trades); var info = StatsComputer.ComputeProfitComplex(cleanTrades, 0); var infoWithFee = StatsComputer.ComputeProfitComplex(cleanTrades, _feePercentage); info.BaseSymbol = _baseSymbol; info.QuoteSymbol = _quoteSymbol; info.DisplayWithFee = _config.DisplayFee ?? false; info.OrderSize = _orderSize; info.CurrentInventory = _currentInventory; info.MaxInventory = _maxInventory; info.MaxInventoryLimit = _maxLimitInventory; info.PnlWithFee = infoWithFee.Pnl; return(info); }