Beispiel #1
0
 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();
 }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
            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)));
            }
Beispiel #5
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" });
 }
Beispiel #6
0
 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);
     });
 }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }