public static void Main(string[] args) { log4net.Config.XmlConfigurator.Configure(); if (args.Length < 1) { Console.Out.WriteLine("Arguments are: <numberOfEvents>"); Environment.Exit(-1); } int events; try { events = Int32.Parse(args[0]); } catch (NullReferenceException) { Console.Out.WriteLine("Invalid numberOfEvents:" + args[0]); Environment.Exit(-2); return; } // Prime a few assemblies into memory StockTick tempA = new StockTick(null, 0.0); PriceLimit tempB = new PriceLimit(null, null, 0.0); // Run the sample AutoIdSimMain autoIdSimMain = new AutoIdSimMain(events, "AutoIDSim"); autoIdSimMain.Run(); }
public static void Main(string[] args) { LoggerNLog.BasicConfig(); LoggerNLog.Register(); if (args.Length < 1) { Console.Out.WriteLine("Arguments are: <numberOfEvents>"); Environment.Exit(-1); } int events; try { events = int.Parse(args[0]); } catch (NullReferenceException) { Console.Out.WriteLine("Invalid numberOfEvents:" + args[0]); Environment.Exit(-2); return; } // Prime a few assemblies into memory var tempA = new StockTick(null, 0.0); var tempB = new PriceLimit(null, null, 0.0); // Run the sample var autoIdSimMain = new AutoIdSimMain(events, "AutoIDSim"); autoIdSimMain.Run(); }
public LimitAlert(StockTick tick, PriceLimit limit, double initialPrice) { Tick = tick; PriceLimit = limit; InitialPrice = initialPrice; }
public StockTickerAlertListener( EPRuntime runtime, PriceLimit limit, StockTick initialPriceTick, StockTickerResultListener stockTickerResultListener) { _limit = limit; _initialPriceTick = initialPriceTick; _stockTickerResultListener = stockTickerResultListener; }
public StockTickerMonitor(EPServiceProvider epService, PriceLimit limit, StockTickerResultListener stockTickerResultListener) { _epService = epService; _limit = limit; _stockTickerResultListener = stockTickerResultListener; String expressionText = "every pricelimit=PriceLimit" + "(UserId='" + limit.UserId + "'," + "StockSymbol='" + limit.StockSymbol + "')"; _newLimitListener = epService.EPAdministrator.CreatePattern(expressionText); _newLimitListener.Events += HandleNewLimitEvent; expressionText = "tick=StockTick(StockSymbol='" + limit.StockSymbol + "')"; _initialPriceListener = epService.EPAdministrator.CreatePattern(expressionText); _initialPriceListener.Events += HandleInitialPriceEvent; }
public PriceLimit[] MakeLimits(String userName, int numBeans, double limit_pct_lower_boundary, double limit_pct_upper_boundary) { var limitBeans = new PriceLimit[numBeans]; for (int i = 0; i < numBeans; i++) { String stockSymbol = "SYM_" + i; double diff = limit_pct_upper_boundary - limit_pct_lower_boundary; double limitPct = limit_pct_lower_boundary + (_random.NextDouble() * diff); limitBeans[i] = new PriceLimit(userName, stockSymbol, To1tenthPrecision(limitPct)); } return(limitBeans); }
public StockTick MakeStockTick(PriceLimit limitBean, StockTick initialPrice) { String stockSymbol = limitBean.StockSymbol; double range = initialPrice.Price * limitBean.LimitPct / 100; double price = (initialPrice.Price - range + (range * 2 * _random.NextDouble())); double priceReducedPrecision = To1tenthPrecision(price); if (priceReducedPrecision < (initialPrice.Price - range)) { priceReducedPrecision = initialPrice.Price; } if (priceReducedPrecision > (initialPrice.Price + range)) { priceReducedPrecision = initialPrice.Price; } return(new StockTick(stockSymbol, priceReducedPrecision)); }
public StockTick MakeStockTick(PriceLimit limitBean, StockTick initialPrice) { var stockSymbol = limitBean.StockSymbol; var range = initialPrice.Price * limitBean.LimitPct / 100; var price = initialPrice.Price - range + range * 2 * _random.NextDouble(); var priceReducedPrecision = To1tenthPrecision(price); if (priceReducedPrecision < initialPrice.Price - range) { priceReducedPrecision = initialPrice.Price; } if (priceReducedPrecision > initialPrice.Price + range) { priceReducedPrecision = initialPrice.Price; } return(new StockTick(stockSymbol, priceReducedPrecision)); }
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; }
public StockTickerMonitor( EPRuntime runtime, PriceLimit limit, StockTickerResultListener stockTickerResultListener) { _runtime = runtime; _limit = limit; _stockTickerResultListener = stockTickerResultListener; var expressionText = "every Pricelimit=PriceLimit" + "(UserId='" + limit.UserId + "'," + "StockSymbol='" + limit.StockSymbol + "')"; _newLimitListener = runtime.DeployStatement(expressionText); _newLimitListener.Events += HandleNewLimitEvent; expressionText = "tick=StockTick(StockSymbol='" + limit.StockSymbol + "')"; _initialPriceListener = runtime.DeployStatement(expressionText); _initialPriceListener.Events += HandleInitialPriceEvent; }
public StockTickerAlertListener(EPServiceProvider epService, PriceLimit limit, StockTick initialPriceTick, StockTickerResultListener stockTickerResultListener) { _limit = limit; _initialPriceTick = initialPriceTick; _stockTickerResultListener = stockTickerResultListener; }
private void SendEvent(PriceLimit @event) { _priceLimitSender.SendEvent(@event); }