コード例 #1
0
        static void Main(string[] args)
        {
            // Adds the current working directory to the PYTHONPATH env var.
            PythonInitializer.SetPythonPathEnvironmentVariable();

            // Parse report arguments and merge with config to use in report creator:
            if (args.Length > 0)
            {
                Config.MergeCommandLineArgumentsWithConfiguration(ReportArgumentParser.ParseArguments(args));
            }
            var name             = Config.Get("strategy-name");
            var description      = Config.Get("strategy-description");
            var version          = Config.Get("strategy-version");
            var backtestDataFile = Config.Get("backtest-data-source-file");
            var liveDataFile     = Config.Get("live-data-source-file");
            var destination      = Config.Get("report-destination");

            //Set the Order Parser For JSON:
            JsonConvert.DefaultSettings = () => new JsonSerializerSettings
            {
                Converters = { new OrderJsonConverter() }
            };

            // Parse content from source files into result objects
            Log.Trace($"QuantConnect.Report.Main(): Parsing source files...{backtestDataFile}, {liveDataFile}");
            var backtest = JsonConvert.DeserializeObject <BacktestResult>(File.ReadAllText(backtestDataFile));

            LiveResult live = null;

            if (liveDataFile != string.Empty)
            {
                live = JsonConvert.DeserializeObject <LiveResult>(File.ReadAllText(liveDataFile), new JsonSerializerSettings
                {
                    NullValueHandling = NullValueHandling.Ignore
                });
            }

            //Create a new report
            Log.Trace("QuantConnect.Report.Main(): Instantiating report...");
            var report = new Report(name, description, version, backtest, live);

            // Generate the html content
            Log.Trace("QuantConnect.Report.Main(): Starting content compile...");
            var html = report.Compile();

            //Write it to target destination.
            if (destination != string.Empty)
            {
                Log.Trace($"QuantConnect.Report.Main(): Writing content to file {destination}");
                File.WriteAllText(destination, html);
            }
            else
            {
                Console.Write(html);
            }
            Log.Trace("QuantConnect.Report.Main(): Completed.");
            Console.ReadKey();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            // Parse report arguments and merge with config to use in report creator:
            if (args.Length > 0)
            {
                Config.MergeCommandLineArgumentsWithConfiguration(ReportArgumentParser.ParseArguments(args));
            }
            var name             = Config.Get("strategy-name");
            var description      = Config.Get("strategy-description");
            var version          = Config.Get("strategy-version");
            var backtestDataFile = Config.Get("backtest-data-source-file");
            var liveDataFile     = Config.Get("live-data-source-file");
            var destination      = Config.Get("report-destination");

            // Parse content from source files into result objects
            Log.Trace($"QuantConnect.Report.Main(): Parsing source files...{backtestDataFile}, {liveDataFile}");
            var backtestSettings = new JsonSerializerSettings
            {
                Converters = new List <JsonConverter> {
                    new NullResultValueTypeJsonConverter <BacktestResult>()
                },
                FloatParseHandling = FloatParseHandling.Decimal
            };

            var        backtest = JsonConvert.DeserializeObject <BacktestResult>(File.ReadAllText(backtestDataFile), backtestSettings);
            LiveResult live     = null;

            if (liveDataFile != string.Empty)
            {
                var settings = new JsonSerializerSettings
                {
                    NullValueHandling = NullValueHandling.Ignore,
                    Converters        = new List <JsonConverter> {
                        new NullResultValueTypeJsonConverter <LiveResult>()
                    }
                };

                live = JsonConvert.DeserializeObject <LiveResult>(File.ReadAllText(liveDataFile), settings);
            }

            //Create a new report
            Log.Trace("QuantConnect.Report.Main(): Instantiating report...");
            var report = new Report(name, description, version, backtest, live);

            // Generate the html content
            Log.Trace("QuantConnect.Report.Main(): Starting content compile...");
            string html;
            string _;

            report.Compile(out html, out _);

            //Write it to target destination.
            if (destination != string.Empty)
            {
                Log.Trace($"QuantConnect.Report.Main(): Writing content to file {destination}");
                File.WriteAllText(destination, html);
            }
            else
            {
                Console.Write(html);
            }

            Log.Trace("QuantConnect.Report.Main(): Completed.");

            if (!Console.IsInputRedirected)
            {
                Console.ReadKey();
            }
        }