コード例 #1
0
        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"));
        }
コード例 #2
0
        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);
        }