Ejemplo n.º 1
0
 public override void ComputeCapitalRealization(RealizedProfit realizedProfit)
 {
     Net net = realizedProfit.For(Instrument);
     if (net.Quantity < Quantity)
     {
         net.Profit -= new Price(net.Quantity * UnitPrice.Value + Tax + Brokerage);
         net.Quantity = 0;
     }
     else
     {
         // TODO: We probably want EffectiveTransactionAmount here
         net.Profit -= Amount();
         net.Quantity -= Quantity;
     }
 }
Ejemplo n.º 2
0
 public override void ComputeCapitalRealization(RealizedProfit realizedProfit)
 {
     realizedProfit.For(Instrument).Quantity -= Quantity;
 }
Ejemplo n.º 3
0
 public override void ComputeCapitalRealization(RealizedProfit realizedProfit)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 4
0
 public override void ComputeCapitalRealization(RealizedProfit realizedProfit)
 {
     Net net = realizedProfit.For(Instrument);
     net.Profit += Amount();
     net.Quantity += Quantity;
 }
Ejemplo n.º 5
0
        public RealizedProfit RealizedProfit()
        {
            RealizedProfit realizedProfit = new RealizedProfit();
            List<Transaction> sellTransactions = TransactionList.FindAll(transaction => !(transaction is BuyTransaction));
            foreach (var transaction in sellTransactions)
            {
                transaction.ComputeCapitalRealization(realizedProfit);
            }
            List<Transaction> buyTransactions = TransactionList.FindAll(transaction => transaction is BuyTransaction);
            foreach (var transaction in buyTransactions)
            {
                if (realizedProfit.For(transaction.Instrument).Quantity ==0 )
                    continue;

                transaction.ComputeCapitalRealization(realizedProfit);
            }
            return realizedProfit;
        }
Ejemplo n.º 6
0
 public abstract override void ComputeCapitalRealization(RealizedProfit realizedProfit);
Ejemplo n.º 7
0
 public override void ComputeCapitalRealization(RealizedProfit realizedProfit)
 {
     realizedProfit.For(Instrument).Profit += Amount();
 }