Пример #1
0
        public void RandomSignalBatchVersion()
        {
            var now = new DateTime(2013, 9, 10);

            var history = new List <StockMessage>
            {
                new StockMessage {
                    Symbol = "PACQU", Ask = 24.0, Bid = 13.50, Time = now.AddMinutes(-7)
                },
                new StockMessage {
                    Symbol = "PACQU", Ask = 27.84, Bid = 13.50, Time = now.AddMinutes(-6)
                },
            };

            var upcomingData = new List <StockMessage>
            {
                new StockMessage {
                    Symbol = "PACQU", Ask = 24.0, Bid = 13.50, Time = now.AddMinutes(-5)
                },
                new StockMessage {
                    Symbol = "PACQU", Ask = 27.84, Bid = 13.50, Time = now.AddMinutes(-4)
                },
                new StockMessage {
                    Symbol = "PACQU", Ask = 22.50, Bid = 13.50, Time = now.AddMinutes(-3)
                },
                new StockMessage {
                    Symbol = "PACQU", Ask = 17.85, Bid = 13.50, Time = now.AddMinutes(-2)
                },
                new StockMessage {
                    Symbol = "PACQU", Ask = 13.79, Bid = 11.00, Time = now.AddMinutes(-1)
                }
            };

            var random = new RandomSignal("PACQU");

            var portfolio   = new Portfolio();
            var stockBroker = new StubStockbroker2(history);
            var trader      = new Trader(stockBroker, portfolio);

            trader.Register(random);

            var batcher = new StockMessageBatch(upcomingData);

            const int minute = 60;

            while (batcher.HasMore())
            {
                batcher.GetNextBatch(minute).ForEach(history.Add);
                trader.Trade();
            }
        }
 public void Init()
 {
     _messages = new List <StockMessage>
     {
         new StockMessage {
             Symbol = "First", Time = new DateTime(2013, 1, 1)
         },
         new StockMessage {
             Symbol = "Second", Time = new DateTime(2013, 1, 1).AddMinutes(1)
         },
         new StockMessage {
             Symbol = "Third", Time = new DateTime(2013, 1, 1).AddMinutes(2)
         },
         new StockMessage {
             Symbol = "Fourth", Time = new DateTime(2013, 1, 1).AddMinutes(3)
         }
     };
     _batcher = new StockMessageBatch(_messages);
 }