private string GetCurrentPL() { if (TradesCollection == null || TradesCollection.Count == 0) { return("Nenhum trade sendo acompanhado."); } var hasValue = TradesCollection.Where(x => x.Result.HasValue).ToList(); if (hasValue.Count == 0) { return("Nenhum trade sendo acompanhado."); } var tradesIndex = hasValue.FindAll(x => x.AssetClass == "BMF.FUT"); var tradesStock = hasValue.FindAll(x => x.AssetClass == "BVSP.VIS"); var tradesOption = hasValue.FindAll(x => x.AssetClass == "BVSP.OPC"); var capIndex = tradesIndex.Count == 0 ? 0 : tradesIndex.Sum(t => t.Capital); var capStock = tradesStock.Count == 0 ? 0 : tradesStock.Sum(t => t.Capital); var capOption = tradesOption.Count == 0 ? 0 : tradesOption.Sum(t => t.Capital); var capital = capIndex + capStock + capOption; if (capital == 0) { return("Capital ZERO!"); } var resIndex = tradesIndex.Count == 0 ? 0 : tradesIndex.Sum(t => t.Qnty * t.Result - t.Cost); var resStock = tradesStock.Count == 0 ? 0 : tradesStock.Sum(t => t.Qnty * t.Result - t.Cost); var resOption = tradesOption.Count == 0 ? 0 : tradesOption.Sum(t => t.Qnty * t.Result - t.Cost); var result = resIndex + resStock + resOption; return((result.Value / capital).ToString("P2")); }
public void Notify_Add_Trade_Method_Test() { tradesCollection = new TradesCollection(); tradesCollection.TradeAdded += UpdateLastTradeSymbol; Trade trade = new Trade("SRT-021231", "RTS-6.19", new DateTime(2019, 01, 5), 125000, 5); tradesCollection.Add(trade); Assert.AreEqual(trade.Symbol, lastTradeSymbol); }