private void AddBody(ReportPage template) { template.Replace("strategy", _results.StrategyType); template.Replace("shouldBuy", template.GetRecommendation(_results.ShouldBuy)); template.Replace("profitTotal", $"{_results.ProfitTotal:C2}"); template.Replace("profitYTD", $"{_results.ProfitYTD:C2}"); template.Replace("aboveMarket", $"{_results.AboveMarketReturn:C2}"); template.Replace("alpha", $"{_results.Alpha:P2}"); template.Replace("maximumAlpha", $"{_results.MaximumAlpha:P2}"); template.Replace("buyCount", $"{_results.BuyCount}"); template.Replace("drawdown", $"{_results.MaximumDrawdown:C2}"); template.Replace("holdingPeriod", $"{_results.MaximumHoldingPeriod}"); template.Replace("sharpeRatio", $"{_results.SharpeRatio:0.00}"); template.Replace("correlation", $"{_results.MarketCorrelation:P2}"); template.Replace("averageReturn", $"{_results.AverageReturn:C2}"); template.Replace("accuracy", $"{_results.Accuracy:P2}"); template.Replace("precision", $"{_results.Precision:P2}"); template.Replace("recall", $"{_results.Recall:P2}"); template.Replace("generalDescription", PlaceholderText); }
private void AddHeader(ReportPage template) { template.AddImage("logo", Configuration.LogoImagePath, true); template.AddImage("website", Configuration.WorldImagePath, true); template.AddImage("phone", Configuration.PhoneImagePath, true); template.AddImage("email", Configuration.EmailImagePath, true); }
public async Task <ReportPage> Build() { var path = Configuration.StrategyTemplatePath; var content = await File.ReadAllTextAsync(path); var report = new ReportPage(content); AddBody(report); AddHeader(report); AddCharts(report); return(report); }
private void AddCharts(ReportPage template) { var returnsChart = new Chart("Strategy returns", "Return ($ AU)", "Time (Days)") .AddSeries(_results.MarketAverage, "Market Average") .AddSeries(_results.History, _results.StrategyType); template.AddChart("image1", returnsChart); var relative = _results.MarketAverage.Select((x, i) => (_results.History[i] - x)); var profitLossChart = new Chart("Performance vs Market Average", "Profit/Loss ($ AU)", "Time (Days)") .AddSeries(relative, _results.StrategyType); template.AddChart("image2", profitLossChart); }