public static void Main(string[] args) { var arguments = Arguments.arguments(args, jStrings("system", "prefix")); var system = arguments.get("system"); var prefix = arguments.get("prefix", PREFIX_DEFAULT); LogC.setOut("Tomahawk", Systematic.logsDir().file("Tomahawk." + system + ".log").path(), true); LogC.useJavaLog = true; LogC.info("running system " + system + ", process " + processId()); var liveSystems = accept(list <LiveSystem>(MsivLiveHistory.LIVE.liveSystems()), ls => ls.siv().system().Equals(system)); each(liveSystems, liveSystem => { Bomb.when(liveSystem.details().runInNativeCurrency(), () => "not allowed to run live systems in native currency"); var markets = list <Market>(liveSystem.markets()); var symbols = convert(markets, market => new Symbol(market.name(), market.bigPointValue())); var systemId = liveSystem.id(); var parameters = new Parameters { { "systemId", systemId }, { "RunMode", (double)RunMode.LIVE } }; Bomb.when(isEmpty(symbols), () => "No markets for " + systemId); var systemArguments = new SystemArguments(symbols, parameters); var start = date(systemArguments.interval().isDaily() ? BloombergSecurity.BBG_START_HISTORICAL : BloombergSecurity.BBG_START_INTRADAY); if (parameters.has("DaysBack")) { start = now().AddDays(-parameters.get <int>("DaysBack")); } var loader = new SystemDbBarLoader(liveSystem.details().interval(), symbols, start); var simulator = new Simulator(systemArguments, loader, prefix); simulator.processBars(); simulator.goLive(); }); sleep(Int32.MaxValue); }
public Simulator.Simulator newSimulator(Action <Collectible, PlotDefinition> addPlot) { var args = new SystemArguments(symbols(), parameters) { runInNativeCurrency = runInNativeCurrency }; args.newPlotRequest += addPlot; return(new Simulator.Simulator(args, loader(args.interval()), "UNUSEDHOPEFULLY")); }
public Simulator(SystemArguments args, BarLoader data, string topicPrefix) { newBarListeners = new LazyDictionary <Symbol, Action <Bar> >(symbol => doNothing); this.data = data; symbols = args.symbols; bridge = args.bridgeBase(topicPrefix); dateIndex = 0; processBarComplete += doNothing; interval = args.interval(); }
public Simulator(SystemArguments args, string topicPrefix) : this(args, new SystemDbBarLoader(args.interval(), args.symbols), topicPrefix) { }