{{if .UseDarkTheme}} {{else}} {{end}}
{{- /*gotype: github.com/thrasher-corp/gocryptotrader/backtester/report.Data*/ -}}{{.Config.Goal}}
{{.Statistics.StrategyDescription}}
{{ if or .Config.DataSettings.APIData .Config.DataSettings.DatabaseData }}| 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}} |
| Interval | {{.Config.DataSettings.Interval}} |
| Exchange | Asset | Currency | Initial Funds | Final Funds | {{ if eq .Config.StrategySettings.DisableUSDTracking false }}Initial Fund in USD | Final Funds in USD | {{end}}Difference | |
|---|---|---|---|---|---|---|---|---|
| {{.Exchange}} | {{.Asset}} | {{.Currency}} | {{ $.Prettify.Decimal8 .InitialFunds}} {{.Currency}} | {{ $.Prettify.Decimal8 .FinalFunds }} {{.Currency}} | {{ if eq $.Config.StrategySettings.DisableUSDTracking false }}${{ $.Prettify.Decimal2 .USDInitialFunds}} | ${{ $.Prettify.Decimal2 .USDFinalFunds}} | {{ end }} {{if .ShowInfinite}}Infinity% | {{ else }}{{ .Difference}}% | {{ end }}
| Exchange | Asset | Currency | Market Movement |
|---|---|---|---|
| {{ $exchange}} | {{ $asset}} | {{ $pair}} | {{ $.Prettify.Decimal8 .MarketMovement}}% |
| 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}}% |
| 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}}% |
| Strategy name | {{.Config.StrategySettings.Name}} |
| Is multi currency | {{.Config.StrategySettings.SimultaneousSignalProcessing}} |
| Custom settings | {{.Config.StrategySettings.CustomSettings}} |
| 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}} |
| Exchange Name | Asset | Currency | Paired With | Initial Funds | Transfer Fee |
|---|---|---|---|---|---|
| {{.Exchange}} | {{.Asset}} | {{.Currency}} | {{.PairedWith}} | {{ $.Prettify.Decimal8 .InitialFunds}} | {{ $.Prettify.Decimal64 .TransferFee}} |
| 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}} |
| Risk-Free Rate |
|---|
| {{ .Config.StatisticSettings.RiskFreeRate}} |
| 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}} |
| 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}}% |
| 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}} |
| Risk Free Rate | {{$.Statistics.RiskFreeRate}}% |
| Compound Annual Growth Rate | {{ $.Prettify.Decimal8 $val.CompoundAnnualGrowthRate}}% |
| Sharpe Ratio | {{$val.ArithmeticRatios.SharpeRatio}} |
| Sortino Ratio | {{$val.ArithmeticRatios.SortinoRatio}} |
| Information Ratio | {{$val.ArithmeticRatios.InformationRatio}} |
| Calmar Ratio | {{$val.ArithmeticRatios.CalmarRatio}} |
| Sharpe Ratio | {{$val.GeometricRatios.SharpeRatio}} |
| Sortino Ratio | {{$val.GeometricRatios.SortinoRatio}} |
| Information Ratio | {{$val.GeometricRatios.InformationRatio}} |
| Calmar Ratio | {{$val.GeometricRatios.CalmarRatio}} |
| Initial Funds | {{ $.Prettify.Decimal8 .ReportItem.InitialFunds}} | |
| Final Funds | {{ $.Prettify.Decimal8 .ReportItem.FinalFunds}} | |
| Difference | {{ if .ReportItem.ShowInfinite}}Infinity% | {{else}}{{ $.Prettify.Decimal8 .ReportItem.Difference}}% | {{end}}
| 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 | {{ if .ReportItem.ShowInfinite}}{{$.Prettify.Decimal8 .StrategyMovement}} | {{ else }}Infinity% | {{end}}
| Did Strategy Beat The Market? | {{.DidStrategyBeatTheMarket}} | |
| Compound Annual Growth Rate | {{$.Prettify.Decimal8 .CompoundAnnualGrowthRate}}% |
| 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}}% |
| 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}} |
| 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}} |
| 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 }}% |
| 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}} | {{ else if ne $ev.SignalEvent nil}}{{$ev.SignalEvent.GetTime}} | {{ $.Prettify.Decimal8 $ev.SignalEvent.GetPrice}} {{$pair.Quote}} | {{$ev.SignalEvent.GetDirection}} | {{$ev.SignalEvent.GetReason}} | {{ end }}{{ $.Prettify.Decimal8 $ev.Holdings.BaseSize}} {{$pair.Base}} | {{ $.Prettify.Decimal8 $ev.Holdings.QuoteSize}} {{$pair.Quote}} | {{ $.Prettify.Decimal8 $ev.Holdings.TotalValue}} {{$pair.Quote}} |