Ejemplo n.º 1
0
        public GetQuoteReply GetQuote(string venueName, string stockName)
        {
            Venue venue = GetVenue(venueName);

            if (venue != null)
            {
                Stock stock = venue.GetStock(stockName);
                if (stock != null)
                {
                    SortedList <DateTime, GetQuoteReply> quote;
                    if (!Quotes.ContainsKey(stock))
                    {
                        GetQuoteReply reply = venue.GetQuote(stock);
                        quote = new SortedList <DateTime, GetQuoteReply> {
                            { reply.LastTrade, reply }
                        };
                        Quotes.Add(stock, quote);
                        return(reply);
                    }

                    if (Quotes.TryGetValue(stock, out quote))
                    {
                        return(quote.Last().Value);
                    }
                }
            }
            return(null);
        }
Ejemplo n.º 2
0
        public void Execute()
        {
            GameManager manager  = new GameManager();
            StartReply  level    = manager.StartLevel("first_steps");
            int         instance = level.InstanceId;

            string account   = level.Account;
            string venueName = level.Venues[0];
            string symbol    = level.Stocks[0];

            Market market = new Market(account, level.Venues);

            market.MonitorStock(venueName, symbol);

            for (int i = 0; i < 100; i++)
            {
                GetQuoteReply quote = market.GetQuote(venueName, symbol);
                market.PlaceOrder(venueName, symbol, new Fill(quote.AskSize, 1, Utils.Direction.Buy), Utils.OrderType.Limit);
            }

            Console.ReadKey();

            //var values = market.GetQuotes(venueName, symbol).Where(x => x.Ask != 0 && x.Bid != 0);
            //string csv = string.Join(Environment.NewLine, values.Select(d => d.LastTrade.ToString("HH:mm:ss.ffffff") + "," + d.Ask + "," + d.Bid + "," + d.Last));

            manager.StopLevel(instance);
        }
Ejemplo n.º 3
0
 private void UpdateQuote(GetQuoteReply reply)
 {
     //EventHandler<GetQuoteReply> handler = QuoteUpdated;
     //if (handler != null)
     //{
     //    handler(null, reply);
     //}
     _dataAccess.UpdateQuote(reply);
 }
Ejemplo n.º 4
0
        public GetQuoteReply GetQuote(Stock stock)
        {
            GetQuote      request = new GetQuote(Name, stock);
            bool          success = request.Execute();
            GetQuoteReply reply   = (request.Reply as GetQuoteReply) ?? new GetQuoteReply(false);

            if (success)
            {
                UpdateQuote(reply);
                return(reply);
            }
            return(null);
        }
Ejemplo n.º 5
0
        private void UpdateMonitoringParameters(GetQuoteReply quote)
        {
            Stock stock = _venue.GetStock(quote.Symbol);

            MonitoringParameter parameter;
            Dictionary <Direction, MonitoringParameter> parameterSides;

            if (!_monitoringParameters.TryGetValue(stock, out parameterSides))
            {
                parameter = new MonitoringParameter();
                parameter.Update(quote);
                parameterSides = new Dictionary <Direction, MonitoringParameter>
                {
                    { Direction.Buy, parameter },
                    { Direction.Sell, parameter }
                };
                _monitoringParameters.Add(stock, parameterSides);
            }
            else
            {
                Direction direction = Direction.Buy;
                if (!parameterSides.TryGetValue(direction, out parameter))
                {
                    parameter = new MonitoringParameter();
                    parameter.Update(quote);
                    parameterSides.Add(direction, parameter);
                }
                else
                {
                    parameter.Update(quote);
                    _monitoringParameters[stock][direction] = parameter;
                }

                direction = Direction.Sell;
                if (!parameterSides.TryGetValue(direction, out parameter))
                {
                    parameter = new MonitoringParameter();
                    parameter.Update(quote);
                    parameterSides.Add(direction, parameter);
                }
                else
                {
                    parameter.Update(quote);
                    _monitoringParameters[stock][direction] = parameter;
                }
            }
        }
Ejemplo n.º 6
0
        public List <GetQuoteReply> GetQuotes(string venueName, string symbol)
        {
            Stock stock = GetStock(venueName, symbol);

            if (stock != null)
            {
                SortedList <DateTime, GetQuoteReply> quotes;
                if (!Quotes.ContainsKey(stock))
                {
                    GetQuoteReply reply = GetQuote(venueName, symbol);
                    return(new List <GetQuoteReply> {
                        reply
                    });
                }

                if (Quotes.TryGetValue(stock, out quotes))
                {
                    return(quotes.Select(q => q.Value).ToList());
                }
            }
            return(null);
        }
Ejemplo n.º 7
0
        private void UpdateQuote(GetQuoteReply getQuoteReply)
        {
            Stock stock = GetStock(getQuoteReply.Venue, getQuoteReply.Symbol);
            // Use last trade rather than quote time
            DateTime timestamp = getQuoteReply.LastTrade;

            SortedList <DateTime, GetQuoteReply> stockQuotes;

            if (!Quotes.TryGetValue(stock, out stockQuotes))
            {
                stockQuotes = new SortedList <DateTime, GetQuoteReply>
                {
                    { timestamp, getQuoteReply }
                };
                Quotes.Add(stock, stockQuotes);
            }
            else
            {
                if (!stockQuotes.ContainsKey(timestamp))
                {
                    Quotes[stock].Add(timestamp, getQuoteReply);
                }
            }
        }
Ejemplo n.º 8
0
 public void UpdateQuote(GetQuoteReply quote)
 {
 }
Ejemplo n.º 9
0
 public void Update(GetQuoteReply args)
 {
 }