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 static void Main(string[] args) { var arguments = Arguments.arguments(args, jStrings("group", "start", "end", "dir", "asOf", "metricSource", "overwrite")); var groupName = arguments.@string("group"); var start = date(arguments.get("start", jDate("1990/01/01"))); var end = date(arguments.get("end", Dates.midnight())); if (arguments.containsKey("asOf")) { freezeNow(date(arguments.date("asOf"))); } var metricSource = arguments.containsKey("metricSource") ? new DataSource(arguments.@string("metricSource")) : null; var dir = new QDirectory(arguments.get("dir")); dir.createIfMissing(); var group = Groups.GROUPS.forName(groupName); var overwrite = arguments.get("overwrite", false); Bomb.unless(overwrite || isEmpty(dir.files()), () => dir.path() + " contains existing files and overwrite is false!"); writeGroupXml(dir, group, start, end); var liveMarkets = list <MsivPv>(Groups.GROUPS.liveMarkets(groupName)); var marketsBySystem = new Dictionary <LiveSystem, List <JMarket> >(); each(liveMarkets, liveMarket => marketsBySystem[liveMarket.liveSystem()] = new List <JMarket>()); each(liveMarkets, liveMarket => marketsBySystem[liveMarket.liveSystem()].Add(new JMarket(liveMarket.market()))); each(marketsBySystem, (system, markets) => generateCurves(system, markets, dir, start, end, metricSource)); Environment.Exit(0); }
static string dateDirectory(QDirectory portfolioDir, DateTime end) { var result = portfolioDir.directory(new [] { "" + Dates.asLong(jDate(end)), "curves" }); result.createIfMissing(); return(result.path()); }
static void generateCurves(LiveSystem system, IEnumerable <JMarket> markets, QDirectory directory, DateTime start, DateTime end, DataSource metricSource) { var symbols = convert(markets, market => new Symbol(market.name(), market.bigPointValue())); var parameters = new Parameters { { "systemId", system.id() }, { "RunMode", (double)RunMode.LIVE } }; var startLoading = DateTime.Now; Bomb.when(system.details().runInNativeCurrency(), () => "portfolio optimization requires systems to run in dollars, not native currency"); var bars = new SystemDbBarLoader(system.details().interval(), symbols, start, end); var simulator = new Simulator(new SystemArguments(symbols, parameters), bars, "QUEDGE"); var startProcessing = DateTime.Now; var perSecond = simulator.processBars(); saveMetric(system, "marketBarsPerSecond", metricSource, perSecond); var startMetricCalc = DateTime.Now; simulator.metrics(); saveMetric(system, "metricCalculationSeconds", metricSource, secondsSince(startMetricCalc)); saveMetric(system, "totalRunSeconds", metricSource, secondsSince(startProcessing)); simulator.writeCurveFiles(directory); saveMetric(system, "totaSeconds", metricSource, secondsSince(startLoading)); Db.commit(); }
public static QFile hamsterMetricsFile(int id, QFile metricsFile) { var result = new QDirectory(@"C:\tempMetricFiles\hamster").file(new [] { "" + id, "Metrics", metricsFile.name().Replace(".csv", ".ham") }); result.ensurePath(); return(result); }
public string curveFilePath(Siv siv, string marketName) { var d = new QDirectory(join(@"\", list(stoDir(), stoId(), "CurvesBin", siv.sviName("_") + "_" + marketName))); d.createIfMissing(); return(d.file("run_" + runNumber() + ".bin").path()); }
public string metricsFilePath(Siv siv, string marketName) { var d = new QDirectory(join(@"\", list(stoDir(), stoId(), "Metrics"))); d.createIfMissing(); return(d.file(siv.sviName("_") + "_" + marketName + ".csv").path()); }
public static void Main(string[] args) { var arguments = Arguments.arguments(args, jStrings("prefix", "dir")); var dir = new QDirectory(arguments.@string("dir")); var rep = Tag.parse(dir.file("group.xml").text()); Groups.GROUPS.load(rep.child("group"), arguments.@string("prefix")); Db.commit(); }
static void writeGroupXml(QDirectory outputDirectory, Group group, DateTime start, DateTime end) { var groupXml = Group.asXml(group); groupXml.add("asOf", ymdHuman(now())); groupXml.add("runDate", ymdHuman(reallyNow())); groupXml.add("start", ymdHuman(start)); groupXml.add("end", ymdHuman(end)); outputDirectory.file("group.xml").create(groupXml.longXml()); }
static void copyDirectory(QDirectory destination, string[] parts, bool debug) { var fromParts = new string[parts.Length]; zeroTo(parts.Length, i => fromParts[i] = debug ? parts[i].Replace("Release", "Debug") : parts[i]); var fromDir = Systematic.mainDir().directory(fromParts); var toDir = destination.directory(parts); toDir.destroyIfExists(); fromDir.copy(toDir); }
protected override void OnStart(string[] args) { LogC.useJavaLog = true; LogC.setOut("launcher", @"C:\logs\Bootstrap.log", true); LogC.setVerboseLoggingForever(true); STARTUP.subscribe(startProcesses); SHUTDOWN.subscribe(stopProcesses); heart = new Heartbeat(LOCAL_CLOUD_BROKER, "Tornado.heartbeat.bootstrap", 3000); heart.initiate(); var juggernet = new QDirectory("T:\\JuggerNET\\"); if (!juggernet.exists()) { LogC.info("can't access network drives, try running on a different system or as a different user(change service logon to use FFTW\\<username>) " + juggernet.path() + " running as " + O.username()); } }
public static int Main(string[] args) { Log.doNotDebugSqlForever(); var arguments = Arguments.arguments(args, jStrings("dir", "lastDate", "generateCurves", "overwrite")); var end = date(arguments.get("lastDate")); var portfolioDir = new QDirectory(arguments.get("dir", PRODUCTION)); var generateCurves = arguments.get("generateCurves", true); portfolioDir.createIfMissing(); var newDirectory = dateDirectory(portfolioDir, end); if (generateCurves) { var overwrite = arguments.get("overwrite", false); Portfolio.Main(new[] { "-group", "AllSystemsQ", "-end", ymdHuman(end), "-asOf", ymdHuman(end), "-dir", newDirectory, "-metricSource", "internal", "-overwrite", "" + overwrite }); } var prior = date(Dates.businessDaysAgo(1, jDate(end), "nyb")); var bytes = new ByteArrayOutputStream(); Log.setBothStreams(new PrintStream(bytes)); var rc = PortfolioTieOut.runReport(new[] { "-old", dateDirectory(portfolioDir, prior), "-new", newDirectory, "-ignoreLast", "true", "-summary", "true" }); if (rc != 0) { Email.problem("daily portfolio yesterday != today", bytes.ToString()).sendTo("team"); } return(rc); }
public void setLogFile(QDirectory dir) { dir.createIfMissing(); switch (runMode()) { case RunMode.LIVE: LogC.setOut("System", dir.file("Q_" + liveSystem().name() + ".log").path(), true); break; case RunMode.RIGHTEDGE: LogC.setOut("System", dir.file("Q.log").path(), true); break; case RunMode.STO: LogC.setOut("System", dir.file("Q_" + siv().name() + ".log").path(), true); break; default: Bomb.toss("unhandled run mode setting log file!"); break; } }
public void writeCurveFile(Collectible collectible, LiveSystem liveSystem, QDirectory directory) { CurveFiles.writeOne(directory.file(liveSystem.fileName(collectible.name) + ".bin").path(), dates_, pnl_, positions_); }
public void writeCurveFiles(LiveSystem liveSystem, QDirectory directory) { directory.createIfMissing(); eachKey(collectors, collectible => collectors[collectible].writeCurveFile(collectible, liveSystem, directory)); }
protected void Page_Load(object sender, System.EventArgs e) { UtilHelper.RegisterCssStyleSheet(Page, "~/Styles/IbnFramework/windows.css"); UtilHelper.RegisterCssStyleSheet(Page, "~/Styles/IbnFramework/Theme.css"); UtilHelper.RegisterCssStyleSheet(Page, "~/Styles/IbnFramework/ibn.css"); UtilHelper.RegisterScript(Page, "~/Scripts/browser.js"); UtilHelper.RegisterScript(Page, "~/Scripts/buttons.js"); if (Request["Refresh"] != null && Request["Refresh"] == "1") { Page.ClientScript.RegisterStartupScript(this.GetType(), Guid.NewGuid().ToString(), string.Format("try {{window.moveTo(0,0);window.resizeTo(screen.availWidth,screen.availHeight);window.opener.top.frames['right'].location.href='{0}';}}", this.ResolveUrl("~/Apps/ReportManagement/Pages/UserReport.aspx")) + "catch (e){}", true); } if (!Page.IsPostBack) { if (Request["Mode"] != null && bool.Parse(Request["Mode"].ToString())) { int iTemplateId = -1; using (IDataReader reader = Report.GetReport(ReportId)) { if (reader.Read()) { iTemplateId = (int)reader["TemplateId"]; } } if (iTemplateId > 0) { using (IDataReader rdr = Report.GetReportTemplate(iTemplateId)) { if (rdr.Read()) { txtTemplateTitle.Text = rdr["Name"].ToString(); } } } // btnSaveVis.Visible = true; --[2006/01/17] btnSaveVis.Visible = false; } else { btnSaveVis.Visible = false; } } if (ReportId == -1) { return; } if (!Page.IsPostBack && (Request["Export"] == null || Request["Export"] != "2")) { byte[] bit_data = null; using (IDataReader reader_BLOB = Report.GetReportBinaryData(ReportId)) { if (reader_BLOB.Read()) { bit_data = (byte[])reader_BLOB["ReportData"]; } } XmlDocument doc = new XmlDocument(); doc.InnerXml = System.Text.Encoding.UTF8.GetString(bit_data); IBNReportTemplate repTemplate = null; using (IDataReader reader = Report.GetReport(ReportId)) { if (reader.Read()) { _header.ReportCreated = (DateTime)reader["ReportCreated"]; _header.ReportCreator = CommonHelper.GetUserStatusPureName((int)reader["ReportCreator"]); XmlDocument temp = new XmlDocument(); temp.InnerXml = "<IBNReportTemplate>" + doc.SelectSingleNode("Report/IBNReportTemplate").InnerXml + "</IBNReportTemplate>"; repTemplate = new IBNReportTemplate(temp); _header.Title = HttpUtility.HtmlDecode(repTemplate.Name); } } #region Filters QObject qItem = null; switch (repTemplate.ObjectName) { case "Incident": //Incident qItem = new QIncident(); break; case "Project": //Project qItem = new QProject(); break; case "ToDo": //ToDo`s qItem = new QToDo(); break; case "Event": //Calendar Entries qItem = new QCalendarEntries(); break; case "Document": //Documents qItem = new QDocument(); break; case "Directory": //Users qItem = new QDirectory(); break; case "Task": //Tasks qItem = new QTask(); break; case "Portfolio": //Portfolios qItem = new QPortfolio(); break; default: break; } _header.Filter = MakeFilterText(repTemplate, qItem); #endregion _header.BtnPrintVisible = false; bool ShowEmpty = repTemplate.ShowEmptyGroup; int GroupCount = repTemplate.Groups.Count; string ViewType = repTemplate.ViewType; string sPath = ""; if (GroupCount == 0) { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupWithout.xslt"; } else if (GroupCount == 1 && ShowEmpty) { if (ViewType == "0") { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOne.xslt"; } else { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOneCollapse.xslt"; } } else if (GroupCount == 1 && !ShowEmpty) { if (ViewType == "0") { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOneNoEmpty.xslt"; } else { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupOneNoEmptyCollapse.xslt"; } } else if (GroupCount == 2 && ShowEmpty) { if (ViewType == "0") { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwo.xslt"; } else { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwoCollapse.xslt"; } } else if (GroupCount == 2 && !ShowEmpty) { if (ViewType == "0") { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwoNoEmpty.xslt"; } else { sPath = HttpRuntime.AppDomainAppPath + @"Reports\GroupTwoNoEmptyCollapse.xslt"; } } XslCompiledTransform _transform = new XslCompiledTransform(); XsltSettings set = new XsltSettings(true, true); _transform.Load(sPath, set, null); StringWriter sw = new StringWriter(); XmlTextWriter w = new XmlTextWriter(sw); _transform.Transform(doc, w); w.Close(); lblXML.Text = HttpUtility.HtmlDecode(sw.ToString()); } if (Request["Export"] != null && Request["Export"] == "2") { ExportXML(); } if (Request["Export"] != null && Request["Export"] == "1") { ExportExcel(); } btnSave.Text = LocRM.GetString("tSave"); btnSaveVis.Value = LocRM.GetString("tSaveAsTemplate"); btnExcel.Text = LocRM.GetString("Export"); btnXML.Text = LocRM.GetString("XMLExport"); lgdSaveTemplate.InnerText = LocRM.GetString("tSaveTemplate"); cbSaveResult.Text = LocRM.GetString("tSaveResult"); cbOnlyForMe.Text = LocRM.GetString("tOnlyForMe"); }
public void writeCurveFiles(QDirectory directory) { bridge.statistics().writeCurveFiles(bridge.arguments().liveSystem(), directory); }