Ejemplo n.º 1
0
 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" });
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        static string dateDirectory(QDirectory portfolioDir, DateTime end)
        {
            var result = portfolioDir.directory(new [] { "" + Dates.asLong(jDate(end)), "curves" });

            result.createIfMissing();
            return(result.path());
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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());
        }
Ejemplo n.º 7
0
        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());
        }
Ejemplo n.º 8
0
        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();
        }
Ejemplo n.º 9
0
        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());
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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());
            }
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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;
            }
        }
Ejemplo n.º 14
0
 public void writeCurveFile(Collectible collectible, LiveSystem liveSystem, QDirectory directory)
 {
     CurveFiles.writeOne(directory.file(liveSystem.fileName(collectible.name) + ".bin").path(), dates_, pnl_, positions_);
 }
Ejemplo n.º 15
0
 public void writeCurveFiles(LiveSystem liveSystem, QDirectory directory)
 {
     directory.createIfMissing();
     eachKey(collectors, collectible => collectors[collectible].writeCurveFile(collectible, liveSystem, directory));
 }
Ejemplo n.º 16
0
        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");
        }
Ejemplo n.º 17
0
 public void writeCurveFiles(QDirectory directory)
 {
     bridge.statistics().writeCurveFiles(bridge.arguments().liveSystem(), directory);
 }