コード例 #1
0
ファイル: TradeTest.cs プロジェクト: danielefaggi/SSSM
        public void TestTradeCollectionAddTrades()
        {
            // Collection Order Test

            TradeCollection trades = new TradeCollection();

            Trade trade1 = new Trade(new DateTime(2015, 10, 2), 1, TRADE_SIGN.Buy, 100);
            Trade trade2 = new Trade(new DateTime(2015, 10, 3), 1, TRADE_SIGN.Buy, 100);
            Trade trade3 = new Trade(new DateTime(2015, 10, 1), 1, TRADE_SIGN.Buy, 100);
            Trade trade4 = new Trade(new DateTime(2015, 10, 4), 1, TRADE_SIGN.Buy, 100);
            Trade trade5 = new Trade(new DateTime(2015, 09, 1), 1, TRADE_SIGN.Buy, 100);

            trades.Add(trade1);
            trades.Add(trade2);
            trades.Add(trade3);
            trades.Add(trade4);
            trades.Add(trade5);

            Assert.AreEqual(5, trades.Count);

            Assert.AreSame(trades.ElementAt(0), trade4);
            Assert.AreSame(trades.ElementAt(1), trade2);
            Assert.AreSame(trades.ElementAt(2), trade1);
            Assert.AreSame(trades.ElementAt(3), trade3);
            Assert.AreSame(trades.ElementAt(4), trade5);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: danielefaggi/SSSM
        /// <summary>
        /// Method to record a trade
        /// </summary>
        private void RecordATrade()
        {
            Console.WriteLine("Record a trade related to which Symbol ?");
            string symbol = Console.ReadLine();

            GenericStock workingStock = null;

            foreach (GenericStock stock in Stocks)
            {
                if (stock.Symbol == symbol.ToUpper())
                    workingStock = stock;
            }

            if(workingStock == null)
            {
                Console.WriteLine("Symbol not found!");
                return;
            }

            Console.WriteLine("Related to which date/time ?");
            string stimestamp = Console.ReadLine();

            DateTime timestamp = DateTime.Now;
            if(!DateTime.TryParse(stimestamp, out timestamp))
            {
                Console.WriteLine("Invalid date/time");
                return;
            }

            Console.WriteLine("B - Buy or S - Sell ?");
            string sbs = Console.ReadLine();

            TRADE_SIGN sign;
            if(sbs.ToUpper() == "B")
            {
                sign = TRADE_SIGN.Buy;
            }
            else if(sbs.ToUpper() == "S")
            {
                sign = TRADE_SIGN.Sell;
            }
            else
            {
                Console.WriteLine("Invalid Operation!");
                return;
            }

            Console.WriteLine("Quantity ?");
            string sqty = Console.ReadLine();

            int qty;
            if (!int.TryParse(sqty, out qty))
            {
                Console.WriteLine("Invalid Quantity!");
                return;
            }

            Console.WriteLine("Price (in pennies) ?");
            string sprice = Console.ReadLine();

            float price;
            if (!float.TryParse(sprice, out price))
            {
                Console.WriteLine("Invalid price!");
                return;
            }

            Trade trade = new Trade(timestamp, qty, sign, price);
            PrintTrade(trade);
            Console.WriteLine("Add to Stock {0} ? (Y to confirm or any other input to cancel)", workingStock.Symbol);
            string answer = Console.ReadLine();
            if(answer.ToUpper() == "Y")
            {
                workingStock.Trades.Add(trade);
            }
            else
            {
                Console.WriteLine("Operation cancelled!");
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: danielefaggi/SSSM
 /// <summary>
 /// Shows a trade on screen
 /// </summary>
 /// <param name="trade"></param>
 private void PrintTrade(Trade trade)
 {
     Console.WriteLine("{0,20:g}\t{1}\t{2}\t{3}", trade.Timestamp,
         trade.Sign == TRADE_SIGN.Buy ? "Buy" : "Sell", trade.Quantity, trade.TradedPrice);
 }