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; }
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; }