{{if .UseDarkTheme}} {{else}} {{end}} {{- /*gotype: github.com/thrasher-corp/gocryptotrader/backtester/report.Data*/ -}}

Results for {{.Statistics.StrategyName}} {{.Config.Nickname }}

Executive Summary

Goal

{{.Config.Goal}}

Strategy Description

{{.Statistics.StrategyDescription}}

{{ if or .Config.DataSettings.APIData .Config.DataSettings.DatabaseData }} {{ if .Config.DataSettings.APIData}} {{end}} {{ if .Config.DataSettings.DatabaseData}} {{if .Statistics.WasAnyDataMissing}} {{end}} {{end}}
Start Date {{.Config.DataSettings.APIData.StartDate}}
End Date {{.Config.DataSettings.APIData.EndDate}}
Interval {{.Config.DataSettings.Interval}}
Start Date {{.Config.DataSettings.DatabaseData.StartDate}}
End Date {{.Config.DataSettings.DatabaseData.EndDate}}
Interval {{.Config.DataSettings.Interval}}
Was any data missing? {{ .Statistics.WasAnyDataMissing}}
{{ end }} {{ if or .Config.DataSettings.CSVData .Config.DataSettings.LiveData }}
Interval {{.Config.DataSettings.Interval}}
{{ end }} {{if .Config.StrategySettings.UseExchangeLevelFunding}}
Funding results
{{ if eq .Config.StrategySettings.DisableUSDTracking false }} {{end}} {{ range .Statistics.FundingStatistics.Report.Items}} {{ if eq $.Config.StrategySettings.DisableUSDTracking false }} {{ end }} {{if .ShowInfinite}} {{ else }} {{ end }} {{end}}
Exchange Asset Currency Initial Funds Final FundsInitial Fund in USD Final Funds in USDDifference
{{.Exchange}} {{.Asset}} {{.Currency}} {{ $.Prettify.Decimal8 .InitialFunds}} {{.Currency}} {{ $.Prettify.Decimal8 .FinalFunds }} {{.Currency}}${{ $.Prettify.Decimal2 .USDInitialFunds}} ${{ $.Prettify.Decimal2 .USDFinalFunds}}Infinity%{{ .Difference}}%
Pair market movement
{{ range $exchange, $unused := .Statistics.ExchangeAssetPairStatistics}} {{ range $asset, $unused := .}} {{ range $pair, $unused := .}} {{end}} {{end}} {{end}}
Exchange Asset Currency Market Movement
{{ $exchange}} {{ $asset}} {{ $pair}} {{ $.Prettify.Decimal8 .MarketMovement}}%
{{else}}
Pair market movement
{{ range $exchange, $unused := .Statistics.ExchangeAssetPairStatistics}} {{ range $asset, $unused := .}} {{ range $pair, $unused := .}} {{end}} {{end}} {{end}}
Exchange Asset Currency Initial Base funds Initial Quote funds Initial Total value Resulting Base funds Resulting Quote funds Resulting Total value Did it make profit? Did it beat the market? Strategy Movement Market Movement
{{ $exchange}} {{ $asset}} {{ $pair}} {{ $.Prettify.Decimal8 .InitialHoldings.BaseInitialFunds }} {{.FinalHoldings.Pair.Base}} {{ $.Prettify.Decimal8 .InitialHoldings.QuoteInitialFunds }} {{.FinalHoldings.Pair.Quote}} {{ $.Prettify.Decimal8 .InitialHoldings.TotalInitialValue }} {{.FinalHoldings.Pair.Quote}} {{ $.Prettify.Decimal8 .FinalHoldings.BaseSize }} {{ .FinalHoldings.Pair.Base}} {{ $.Prettify.Decimal8 .FinalHoldings.QuoteSize }} {{ .FinalHoldings.Pair.Quote}} {{ $.Prettify.Decimal8 .FinalHoldings.TotalValue }} {{ .FinalHoldings.Pair.Quote}} {{ .IsStrategyProfitable }} {{ .DoesPerformanceBeatTheMarket }} {{ $.Prettify.Decimal8 .StrategyMovement }}% {{ $.Prettify.Decimal8 .MarketMovement}}%
{{end}} {{ if eq .Config.StrategySettings.DisableUSDTracking false}}
USD Totals
Initial Total Funds in USD ${{ $.Prettify.Decimal2 .Statistics.FundingStatistics.TotalUSDStatistics.InitialHoldingValue.Value}}
Final Total Funds in USD ${{ $.Prettify.Decimal2 .Statistics.FundingStatistics.TotalUSDStatistics.FinalHoldingValue.Value}}
Difference {{ $.Prettify.Decimal8 .Statistics.FundingStatistics.TotalUSDStatistics.HoldingValueDifference}}%
{{end}}

Config

Strategy Settings

Strategy name {{.Config.StrategySettings.Name}}
Is multi currency {{.Config.StrategySettings.SimultaneousSignalProcessing}}
Custom settings {{.Config.StrategySettings.CustomSettings}}

Currency Settings

{{ range .Config.CurrencySettings}} {{if .USDTrackingPair}} {{else}} {{end}} {{end}}
Exchange Name Asset Currency Base Currency Quote Buy side Min Amount Buy side Max Amount Buy side Max Total Sell side Min Amount Sell side Max Amount Sell side Max Total Min Slippage Percent Max Slippage Percent Taker Fee Maximum Holdings Ratio
{{.ExchangeName}} {{.Asset}} {{.Base}} {{.Quote}} {{ $.Prettify.Decimal64 .BuySide.MinimumSize}} {{.Base}} {{ $.Prettify.Decimal64 .BuySide.MaximumSize}} {{.Base}} {{ $.Prettify.Decimal64 .BuySide.MaximumTotal}} {{.Quote}} {{ $.Prettify.Decimal64 .SellSide.MinimumSize}} {{.Base}} {{ $.Prettify.Decimal64 .SellSide.MaximumSize}} {{.Base}} {{ $.Prettify.Decimal64 .SellSide.MaximumTotal}} {{.Quote}} {{ $.Prettify.Decimal64 .MinimumSlippagePercent}}% {{ $.Prettify.Decimal64 .MaximumSlippagePercent}}% {{.TakerFee}} {{.MaximumHoldingsRatio}}
{{ if .Statistics.FundingStatistics.Report }}

Funding Settings

{{ range .Statistics.FundingStatistics.Report.Items}} {{end}}
Exchange Name Asset Currency Paired With Initial Funds Transfer Fee
{{.Exchange}} {{.Asset}} {{.Currency}} {{.PairedWith}} {{ $.Prettify.Decimal8 .InitialFunds}} {{ $.Prettify.Decimal64 .TransferFee}}
{{ end }}

Portfolio Settings

Can Use Leverage Max Leverage Rate Max Orders With Leverage Ratio Buy side Min Amount Buy side Max Amount Buy side Max Total Sell side Min Amount Sell side Max Amount Sell side Max Total
{{.Config.PortfolioSettings.Leverage.CanUseLeverage}} {{.Config.PortfolioSettings.Leverage.MaximumLeverageRate}} {{.Config.PortfolioSettings.Leverage.MaximumOrdersWithLeverageRatio}} {{ $.Prettify.Decimal64 .Config.PortfolioSettings.BuySide.MinimumSize}} {{ $.Prettify.Decimal64 .Config.PortfolioSettings.BuySide.MaximumSize}} {{ $.Prettify.Decimal64 .Config.PortfolioSettings.BuySide.MaximumTotal}} {{ $.Prettify.Decimal64 .Config.PortfolioSettings.SellSide.MinimumSize}} {{ $.Prettify.Decimal64 .Config.PortfolioSettings.SellSide.MaximumSize}} {{ $.Prettify.Decimal64 .Config.PortfolioSettings.SellSide.MaximumTotal}}

Statistics Settings

Risk-Free Rate
{{ .Config.StatisticSettings.RiskFreeRate}}
{{ if .Warnings }}

Warnings

{{ range .Config.CurrencySettings}} {{if .USDTrackingPair}} {{else}} {{if .ShowExchangeOrderLimitWarning}} {{end}} {{ range $.Warnings}} {{end}} {{end}} {{end}}
Exchange Name Asset Currency Base Currency Quote Warning
{{.ExchangeName}} {{.Asset}} {{.Base}} {{.Quote}} order execution limits supported but disabled, live results may differ
{{.Exchange}} {{.Asset}} {{.Pair.Base}} {{.Pair.Quote}} {{.Message}}
{{end}}

Charts

{{ if eq $.Config.StrategySettings.DisableUSDTracking false }}

USD Totals

{{end }}

Holdings Over Time

{{ range .EnhancedCandles}}

{{.Exchange}} {{.Asset}} {{.Pair}} Transactions

{{end}}

Strategy Statistics

{{ if .Statistics.BiggestDrawdown}} {{end}} {{ if .Statistics.BestMarketMovement}} {{end}} {{ if .Statistics.BestStrategyResults}} {{ end}}
Strategy Name {{.Statistics.StrategyName}}
Risk Free Rate {{.Statistics.RiskFreeRate}}%
Total Buy Orders {{ $.Prettify.Int .Statistics.TotalBuyOrders}}
Total Sell Orders {{$.Prettify.Int .Statistics.TotalSellOrders}}
Total Orders {{$.Prettify.Int .Statistics.TotalOrders}}
Biggest Drawdown Start: {{.Statistics.BiggestDrawdown.MaxDrawdown.Highest.Time }} End: {{.Statistics.BiggestDrawdown.MaxDrawdown.Lowest.Time }} Drop: {{ $.Prettify.Decimal2 .Statistics.BiggestDrawdown.MaxDrawdown.DrawdownPercent}}%
Best performing market movement {{.Statistics.BestMarketMovement.Exchange }} {{.Statistics.BestMarketMovement.Asset}} {{.Statistics.BestMarketMovement.Pair}} {{ $.Prettify.Decimal2 .Statistics.BestMarketMovement.MarketMovement}}%
Best performing strategy movement {{.Statistics.BestStrategyResults.Exchange }} {{.Statistics.BestStrategyResults.Asset}} {{.Statistics.BestStrategyResults.Pair}} {{ $.Prettify.Decimal2 .Statistics.BestStrategyResults.StrategyMovement}}%
{{ range $exchange, $unused := .Statistics.ExchangeAssetPairStatistics}} {{ range $asset, $unused := .}} {{ range $pair, $val := .}}

Pair Statistics for {{$exchange}} {{ $asset}} {{ $pair}}

{{ if $val.MaxDrawdown.Highest.Value.IsZero }} {{else}} {{ end }} {{ if eq $.Statistics.FundingStatistics.Report.UsingExchangeLevelFunding false }} {{ end }} {{ if eq $.Statistics.FundingStatistics.Report.UsingExchangeLevelFunding false }} {{end }}
Base Initial Funds {{ $.Prettify.Decimal8 $val.FinalHoldings.BaseInitialFunds}} {{$val.FinalHoldings.Pair.Base}}
Quote Initial Funds {{ $.Prettify.Decimal8 $val.FinalHoldings.QuoteInitialFunds}} {{$val.FinalHoldings.Pair.Quote}}
Buy Orders {{ $.Prettify.Int $val.BuyOrders}}
Buy Value {{ $.Prettify.Decimal8 $val.FinalHoldings.BoughtValue}} {{$val.FinalHoldings.Pair.Quote}}
Buy Amount {{ $.Prettify.Decimal8 $val.FinalHoldings.BoughtAmount}} {{$val.FinalHoldings.Pair.Base}}
Sell Orders {{ $.Prettify.Int $val.SellOrders}}
Sell Value {{ $.Prettify.Decimal8 $val.FinalHoldings.SoldValue}} {{$val.FinalHoldings.Pair.Quote}}
Sell Amount {{ $.Prettify.Decimal8 $val.FinalHoldings.SoldAmount}} {{$val.FinalHoldings.Pair.Base}}
Total Orders {{ $.Prettify.Int $val.TotalOrders}}
Biggest Drawdown Start: {{ $val.MaxDrawdown.Highest.Time }} End: {{ $val.MaxDrawdown.Lowest.Time }} Drop: $ {{ $.Prettify.Decimal8 $val.MaxDrawdown.DrawdownPercent}}%
Starting Close Price {{ $.Prettify.Decimal8 $val.StartingClosePrice}} {{$val.FinalHoldings.Pair.Quote}}
Ending Close Price {{ $.Prettify.Decimal8 $val.EndingClosePrice}} {{ $val.FinalHoldings.Pair.Quote }}
Lowest Close Price {{ $.Prettify.Decimal8 $val.LowestClosePrice}} {{$val.FinalHoldings.Pair.Quote}}
Highest Close Price {{ $.Prettify.Decimal8 $val.HighestClosePrice}} {{ $val.FinalHoldings.Pair.Quote}}
Highest Committed Funds {{ $.Prettify.Decimal8 $val.HighestCommittedFunds.Value}} at {{ $val.HighestCommittedFunds.Time}}
Market Movement {{ $.Prettify.Decimal8 $val.MarketMovement}}%
Strategy Movement {{ $.Prettify.Decimal8 $val.StrategyMovement}}%
Did it beat the market? {{ .DoesPerformanceBeatTheMarket }}
Total Value Lost to Volume Sizing {{ $.Prettify.Decimal8 $val.FinalHoldings.TotalValueLostToVolumeSizing}} {{$val.FinalHoldings.Pair.Quote}}
Total Value Lost to Slippage {{ $.Prettify.Decimal8 $val.FinalHoldings.TotalValueLostToSlippage}} {{ $val.FinalHoldings.Pair.Quote }}
Total Value Lost {{ $.Prettify.Decimal8 $val.FinalHoldings.TotalValueLost}} {{$val.FinalHoldings.Pair.Quote}}
Total Fees {{ $.Prettify.Decimal8 $val.FinalHoldings.TotalFees}} {{ $val.FinalHoldings.Pair.Quote }}
Final Funds {{ $.Prettify.Decimal8 $val.FinalHoldings.QuoteSize}} {{ $val.FinalHoldings.Pair.Quote}}
Final Holdings {{ $.Prettify.Decimal8 $val.FinalHoldings.BaseSize}} {{$val.FinalHoldings.Pair.Base}}
Final Holdings Value {{ $.Prettify.Decimal8 $val.FinalHoldings.BaseValue}} {{ $val.FinalHoldings.Pair.Quote }}
Total Value {{ $.Prettify.Decimal8 $val.FinalHoldings.TotalValue}} {{ $val.FinalHoldings.Pair.Quote}}
{{ if eq $.Statistics.FundingStatistics.Report.UsingExchangeLevelFunding false }} Rates
Risk Free Rate {{$.Statistics.RiskFreeRate}}%
Compound Annual Growth Rate {{ $.Prettify.Decimal8 $val.CompoundAnnualGrowthRate}}%
{{if $val.ShowMissingDataWarning}}

Missing data was detected during this backtesting run
Ratio calculations will be skewed

{{end}} Arithmetic Ratios
Sharpe Ratio {{$val.ArithmeticRatios.SharpeRatio}}
Sortino Ratio {{$val.ArithmeticRatios.SortinoRatio}}
Information Ratio {{$val.ArithmeticRatios.InformationRatio}}
Calmar Ratio {{$val.ArithmeticRatios.CalmarRatio}}
Geometric Ratios
Sharpe Ratio {{$val.GeometricRatios.SharpeRatio}}
Sortino Ratio {{$val.GeometricRatios.SortinoRatio}}
Information Ratio {{$val.GeometricRatios.InformationRatio}}
Calmar Ratio {{$val.GeometricRatios.CalmarRatio}}
{{end }}
{{end}} {{end}} {{end}} {{ if $.Config.StrategySettings.DisableUSDTracking }} {{ if $.Statistics.FundingStatistics.Report.UsingExchangeLevelFunding }}

Exchange level funding ratios require USD Tracking setting enabled

{{end}} {{end}} {{ range .Statistics.FundingStatistics.Items }}

Funding Statistics for {{.ReportItem.Exchange}} {{.ReportItem.Asset}} {{.ReportItem.Currency}}

{{ if .ReportItem.ShowInfinite}} {{else}} {{end}} {{ if eq $.Config.StrategySettings.DisableUSDTracking false }} {{ if .ReportItem.ShowInfinite}} {{ else }} {{end}} {{end}}
Initial Funds {{ $.Prettify.Decimal8 .ReportItem.InitialFunds}}
Final Funds {{ $.Prettify.Decimal8 .ReportItem.FinalFunds}}
DifferenceInfinity%{{ $.Prettify.Decimal8 .ReportItem.Difference}}%
Starting Close Price {{$.Prettify.Decimal8 .StartingClosePrice.Value}} at {{.StartingClosePrice.Time}}
Ending Close Price {{$.Prettify.Decimal8 .EndingClosePrice.Value}} at {{.EndingClosePrice.Time}}
Highest Close Price {{$.Prettify.Decimal8 .HighestClosePrice.Value}} at {{.HighestClosePrice.Time}}
Lowest Close Price {{$.Prettify.Decimal8 .LowestClosePrice.Value}} at {{.LowestClosePrice.Time}}
Market Movement {{$.Prettify.Decimal8 .MarketMovement}}
Strategy Movement{{$.Prettify.Decimal8 .StrategyMovement}}Infinity%
Did Strategy Beat The Market? {{.DidStrategyBeatTheMarket}}
Compound Annual Growth Rate {{$.Prettify.Decimal8 .CompoundAnnualGrowthRate}}%
{{end}} {{ if eq $.Config.StrategySettings.DisableUSDTracking false }}

USD Totals Funding Statistics

Initial Total USD Value ${{$.Prettify.Decimal8 .Statistics.FundingStatistics.TotalUSDStatistics.InitialHoldingValue.Value}}
Final Total USD Value ${{$.Prettify.Decimal8 .Statistics.FundingStatistics.TotalUSDStatistics.FinalHoldingValue.Value}}
Difference {{$.Prettify.Decimal8 .Statistics.FundingStatistics.TotalUSDStatistics.HoldingValueDifference}}%
Risk Free Rate {{$.Prettify.Decimal8 .Statistics.FundingStatistics.TotalUSDStatistics.RiskFreeRate}}
Benchmark movement {{$.Prettify.Decimal8 .Statistics.FundingStatistics.TotalUSDStatistics.BenchmarkMarketMovement}}
Overall strategy movement {{$.Prettify.Decimal8 .Statistics.FundingStatistics.TotalUSDStatistics.StrategyMovement}}
Did strategy beat the benchmark? {{.Statistics.FundingStatistics.TotalUSDStatistics.DidStrategyBeatTheMarket}}
Did overall strategy make a profit? {{.Statistics.FundingStatistics.TotalUSDStatistics.DidStrategyMakeProfit}}
Highest Holdings ${{$.Prettify.Decimal8 .Statistics.FundingStatistics.TotalUSDStatistics.HighestHoldingValue.Value}} at {{.Statistics.FundingStatistics.TotalUSDStatistics.HighestHoldingValue.Time}}
Lowest Holdings ${{$.Prettify.Decimal8 .Statistics.FundingStatistics.TotalUSDStatistics.LowestHoldingValue.Value}} at {{.Statistics.FundingStatistics.TotalUSDStatistics.LowestHoldingValue.Time}}
Total Buy Orders {{$.Prettify.Int .Statistics.FundingStatistics.TotalUSDStatistics.BuyOrders }}
Total Sell Orders {{$.Prettify.Int .Statistics.FundingStatistics.TotalUSDStatistics.SellOrders }}
Total Orders {{$.Prettify.Int .Statistics.FundingStatistics.TotalUSDStatistics.TotalOrders }}
Max Drawdown Start: {{ .Statistics.FundingStatistics.TotalUSDStatistics.MaxDrawdown.Highest.Time }} End: {{ .Statistics.FundingStatistics.TotalUSDStatistics.MaxDrawdown.Lowest.Time }} Drop: {{ $.Prettify.Decimal8 .Statistics.FundingStatistics.TotalUSDStatistics.MaxDrawdown.DrawdownPercent}}%
{{if $.Statistics.WasAnyDataMissing}}

Missing data was detected during this backtesting run
Ratio calculations will be skewed

{{end}} Arithmetic Ratios
Sharpe Ratio {{ .Statistics.FundingStatistics.TotalUSDStatistics.ArithmeticRatios.SharpeRatio}}
Sortino Ratio {{ .Statistics.FundingStatistics.TotalUSDStatistics.ArithmeticRatios.SortinoRatio}}
Information Ratio {{ .Statistics.FundingStatistics.TotalUSDStatistics.ArithmeticRatios.InformationRatio}}
Calmar Ratio {{ .Statistics.FundingStatistics.TotalUSDStatistics.ArithmeticRatios.CalmarRatio}}
Geometric Ratios
Sharpe Ratio {{ .Statistics.FundingStatistics.TotalUSDStatistics.GeometricRatios.SharpeRatio}}
Sortino Ratio {{ .Statistics.FundingStatistics.TotalUSDStatistics.GeometricRatios.SortinoRatio}}
Information Ratio {{ .Statistics.FundingStatistics.TotalUSDStatistics.GeometricRatios.InformationRatio}}
Calmar Ratio {{ .Statistics.FundingStatistics.TotalUSDStatistics.GeometricRatios.CalmarRatio}}
{{ end }}

Orders

{{ range $exchange, $unused := .Statistics.ExchangeAssetPairStatistics}} {{ range $asset, $unused := .}} {{ range $pair, $val := .}}

{{$exchange}} {{$asset}} {{ $pair }}

{{range $val.FinalOrders.Orders}} {{end}}
Date Close Price Side Price Amount Fee Total Slippage Rate
{{ .Detail.Date }} {{ $.Prettify.Decimal8 .ClosePrice}} {{$pair.Quote}} {{ .Detail.Side }} {{$.Prettify.Float8 .Detail.Price }} {{$pair.Quote}} {{$.Prettify.Float8 .Detail.Amount }} {{$pair.Base}} {{$.Prettify.Float8 .Detail.Fee }} {{$pair.Quote}} {{ $.Prettify.Decimal8 .CostBasis }} {{$pair.Quote}} {{ $.Prettify.Decimal8 .SlippageRate }}%
{{end}} {{end}} {{end}}

Events

{{ range $exchange, $unused := .Statistics.ExchangeAssetPairStatistics}} {{ range $asset, $unused :=.}} {{ range $pair, $data := .}}

{{$exchange}} {{$asset}} {{ $pair }}

{{range $ev := $data.Events}} {{ if ne $ev.FillEvent nil }} {{ else if ne $ev.SignalEvent nil}} {{ end }} {{end}}
Date Price Action Why {{$pair.Base}} Funds {{$pair.Quote}} Funds Total Value
{{$ev.FillEvent.GetTime}} {{$.Prettify.Decimal8 $ev.FillEvent.GetClosePrice}} {{$pair.Quote}} {{$ev.FillEvent.GetDirection}} {{$ev.FillEvent.GetReason}}{{$ev.SignalEvent.GetTime}} {{ $.Prettify.Decimal8 $ev.SignalEvent.GetPrice}} {{$pair.Quote}} {{$ev.SignalEvent.GetDirection}} {{$ev.SignalEvent.GetReason}}{{ $.Prettify.Decimal8 $ev.Holdings.BaseSize}} {{$pair.Base}} {{ $.Prettify.Decimal8 $ev.Holdings.QuoteSize}} {{$pair.Quote}} {{ $.Prettify.Decimal8 $ev.Holdings.TotalValue}} {{$pair.Quote}}
{{end}} {{end}} {{end}}