private void ExecuteTrade( Trade trade, decimal price ) { trade.TradeTime = DateTime.Now.ToUniversalTime(); trade.ExecutionAmount = trade.Quantity * price; if( trade.Type.ToString().ToLower() == "s" ) trade.ExecutionAmount *= -1; }
/// <summary> /// Utility method populates an execution /// </summary> /// <param name="trade">trade object inbound</param> /// <param name="price">market price to use</param> /// <returns></returns> private Execution ExecuteTrade( Trade trade, decimal price ) { trade.TradeTime = DateTime.Now.ToUniversalTime(); trade.ExecutionAmount = trade.Quantity * price; if( trade.Type.ToString().ToLower() == "s" ) trade.ExecutionAmount *= -1; Execution exec = new Execution( trade ); exec.ExecutionAmount = trade.ExecutionAmount; return exec; }
public decimal TradeSecurity(Trade trade) { if( trade.Quantity < 1 ) throw new ArgumentException( "Invalid quantity", "quantity" ); switch( trade.Ticker.ToLower() ) { case "ibm": ExecuteTrade( trade, IBM_Price ); break; case "msft": ExecuteTrade( trade, MSFT_Price ); break; default: throw new ArgumentException( "Don't know - only MSFT & IBM", "ticker" ); } return trade.ExecutionAmount; }
public Execution( Trade trade ) { _trade = trade; _participant = trade.Participant; _settlementDate = DateTime.Now.ToUniversalTime(); }