public STOClient(SystemDetailsTable.SystemDetails details, Queue queue) { this.queue = queue; writer = new STOMetricsWriter(details, true); heart = new Heartbeat(Bootstrap.LOCAL_CLOUD_BROKER, "Tornado.heartbeat.client." + details.id(), 3000); heart.initiate(); }
public static SystemDbBarLoader loader(SystemDetailsTable.SystemDetails details, IEnumerable <Symbol> symbols) { var symbolRanges = dictionary(symbols, symbol => MsivBacktestTable.BACKTEST.range(details.id(), symbol.name)); return(new SystemDbBarLoader(details.interval(), symbols, symbolRanges)); }
public static void populateSymbolsPortfolios(SystemDetailsTable.SystemDetails details, out List <Symbol> symbols, out List <Trading.Results.Portfolio> portfolios) { var marketNames = list <string>(MsivBacktestTable.BACKTEST.markets(details.siv(), details.stoId())); symbols = list(STO.symbols(marketNames)); portfolios = list <sto.Portfolio, Trading.Results.Portfolio>(sto.Portfolio.portfolios(details.id()), j => new Trading.Results.Portfolio(j)); }
public STORunner(int numInstances, int systemId, int start, int?end, bool noKill) { this.numInstances = numInstances; this.systemId = systemId; this.start = start; this.noKill = noKill; details = SystemDetailsTable.DETAILS.details(systemId); this.end = end.HasValue ? end.Value : details.lastRunNumber(); writer = new STOMetricsWriter(details, false); STO.populateSymbolsPortfolios(details, out symbols, out portfolios); runner = new EC2Runner(systemId + "-" + Dates.yyyyMmDdHhMmSsNoSeparator(Dates.now())); LogC.info("checking for completed runs"); existingRuns = completedRuns(); var allRunsComplete = true; for (var i = this.start; i <= this.end; i++) { if (!existingRuns.Contains(i)) { allRunsComplete = false; break; } } if (allRunsComplete) { this.numInstances = 0; } unhandledExceptionProcessor = ((sender, args) => killRun(LogC.errMessage("unhandled exception", (Exception)args.ExceptionObject))); }
public STOMetricsWriter(SystemDetailsTable.SystemDetails details, bool reuseExistingFiles) { this.details = details; this.reuseExistingFiles = reuseExistingFiles; tempDir = new QDirectory(@"C:\tempMetricFiles\" + details.id()); metricsDir = new QDirectory(details.stoDir()).directory(new[] { details.stoId(), "Metrics" }); }
public STOServer(int systemId, int serverIndex) { this.systemId = systemId; details = SystemDetailsTable.DETAILS.details(systemId); STO.populateSymbolsPortfolios(details, out symbols, out portfolios); loader = STO.loader(details, symbols); heart = new Heartbeat(Bootstrap.LOCAL_CLOUD_BROKER, "Tornado.heartbeat.server." + systemId + "." + serverIndex, 3000, fields => { fields.put("ServerIndex", serverIndex); fields.put("SystemId", systemId); }); }
static List <string> allMarkets(SystemDetailsTable.SystemDetails details) { var result = new List <String>(); List <Symbol> symbols; List <Portfolio> portfolios; STO.populateSymbolsPortfolios(details, out symbols, out portfolios); result.AddRange(convert(symbols, s => s.name)); result.AddRange(convert(portfolios, p => p.name)); result.Add("ALL"); return(result); }
void systemIdSelected(string idString) { int id; if (!int.TryParse(idString, out id)) { return; } if (!SystemDetailsTable.DETAILS.isValid(id)) { return; } var newDetails = SystemDetailsTable.DETAILS.details(id); if (!newDetails.hasValidStoDir()) { return; } details = newDetails; populateMarkets(id); }