private void CalculateOrderFloatPL(Order order, OrderResetResult resetResult) { if (_info.Settings.BuyPrice != null && _info.Settings.SellPrice != null) { Price dayClosePrice = order.IsBuy ? _info.Settings.SellPrice : _info.Settings.BuyPrice; Price buyPrice = order.IsBuy ? order.ExecutePrice : dayClosePrice; Price sellPrice = !order.IsBuy ? order.ExecutePrice : dayClosePrice; decimal tradePLFloat = TradePLCalculator.Calculate(_info.Instrument.TradePLFormula, order.LotBalance * order.Owner.ContractSize(_info.TradeDay), (decimal)buyPrice, (decimal)sellPrice, (decimal)dayClosePrice); resetResult.DayClosePrice = dayClosePrice; resetResult.TradePLFloat = _exchanger.Exchange(tradePLFloat, _info.RateSetting.RateIn, _info.RateSetting.RateOut, _info.RateSetting.RoundDecimals.Common); } }
private decimal CalculateValuedPL(decimal value, OrderRelation orderRelation, Exchanger exchanger) { return(exchanger.Exchange(value, orderRelation.RateIn, orderRelation.RateOut, orderRelation.Decimals)); }