public static void CalculatePL(List <OpenPosition> positions, Streaming.Model.MarketData marketData) { Contract.Requires(positions != null); positions.ForEach(position => { position.Position.ProfitAndLoss = CalculatePL(position, marketData).Value; }); }
public static double?CalculatePL(OpenPosition openPosition, Streaming.Model.MarketData marketData) { Contract.Requires(openPosition != null); Contract.Requires(marketData != null); if (openPosition.Position.Direction == "BUY") { return((marketData.Bid - openPosition.Position.Level) * openPosition.Position.Size); } else { return((openPosition.Position.Level - marketData.Offer) * openPosition.Position.Size); } }