Exemplo n.º 1
0
        private void HandleInitialPriceEvent(object sender,
                                             UpdateEventArgs e)
        {
            var tick  = (StockTick)e.NewEvents[0].Get("tick");
            var limit = _limit;

            _initialPriceListener = null;

            var limitPct   = limit.LimitPct;
            var upperLimit = tick.Price * (1.0 + limitPct / 100.0);
            var lowerLimit = tick.Price * (1.0 - limitPct / 100.0);

            if (Log.IsDebugEnabled)
            {
                Log.Debug(
                    ".update Received initial tick, stock=" +
                    tick.StockSymbol +
                    "  Price=" +
                    tick.Price +
                    "  limit.LimitPct=" +
                    limitPct +
                    "  lowerLimit=" +
                    lowerLimit +
                    "  upperLimit=" +
                    upperLimit);
            }

            var listener =
                new StockTickerAlertListener(
                    _runtime,
                    limit,
                    tick,
                    _stockTickerResultListener);

            var expressionText = "every tick=StockTick" +
                                 "(StockSymbol='" +
                                 limit.StockSymbol +
                                 "', Price < " +
                                 lowerLimit +
                                 ")";

            _lowPriceListener         = _runtime.DeployStatement(expressionText);
            _lowPriceListener.Events += listener.Update;

            expressionText = "every tick=StockTick" +
                             "(StockSymbol='" +
                             limit.StockSymbol +
                             "', Price > " +
                             upperLimit +
                             ")";
            _highPriceListener         = _runtime.DeployStatement(expressionText);
            _highPriceListener.Events += listener.Update;
        }
Exemplo n.º 2
0
        private void HandleInitialPriceEvent(Object sender, UpdateEventArgs e)
        {
            var        tick  = (StockTick)e.NewEvents[0].Get("tick");
            PriceLimit limit = _limit;

            _initialPriceListener = null;

            double limitPct   = limit.LimitPct;
            double upperLimit = tick.Price * (1.0 + (limitPct / 100.0));
            double lowerLimit = tick.Price * (1.0 - (limitPct / 100.0));

            if (Log.IsDebugEnabled)
            {
                Log.Debug(".update Received initial tick, stock=" + tick.StockSymbol +
                          "  price=" + tick.Price +
                          "  limit.LimitPct=" + limitPct +
                          "  lowerLimit=" + lowerLimit +
                          "  upperLimit=" + upperLimit);
            }

            var listener =
                new StockTickerAlertListener(_epService,
                                             limit,
                                             tick,
                                             _stockTickerResultListener);

            String expressionText = "every tick=StockTick" +
                                    "(StockSymbol='" + limit.StockSymbol +
                                    "', Price < " + lowerLimit + ")";

            _lowPriceListener         = _epService.EPAdministrator.CreatePattern(expressionText);
            _lowPriceListener.Events += listener.Update;

            expressionText = "every tick=StockTick" +
                             "(StockSymbol='" + limit.StockSymbol + "', Price > " +
                             upperLimit + ")";
            _highPriceListener         = _epService.EPAdministrator.CreatePattern(expressionText);
            _highPriceListener.Events += listener.Update;
        }