{{.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 | Starting funds | Resulting funds | Did it make profit? | Did it beat the market? | Strategy Movement | Market Movement | {{ range $exchange, $unused := .Statistics.ExchangeAssetPairStatistics}} {{ range $asset, $unused := .}} {{ range $pair, $unused := .}}
|---|---|---|---|---|---|---|---|---|
| {{ $exchange}} | {{ $asset}} | {{ $pair}} | ${{ printf "%.8f" .FinalHoldings.InitialFunds }} {{.FinalHoldings.Pair.Quote}} | ${{ printf "%.8f" .FinalHoldings.TotalValue }} {{ .FinalHoldings.Pair.Quote}} | {{ gt .FinalHoldings.TotalValue .FinalHoldings.InitialFunds }} | {{ gt .StrategyMovement .MarketMovement }} | {{ printf "%.2f" .StrategyMovement }}% | {{ printf "%.2f" .MarketMovement }}% |
| Strategy name | {{.Config.StrategySettings.Name}} |
| Is multi currency | {{.Config.StrategySettings.SimultaneousSignalProcessing}} |
| Custom settings | {{.Config.StrategySettings.CustomSettings}} |
| Exchange Name | Asset | Currency Base | Currency Quote | Initial Funds | 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 | {{ range .Config.CurrencySettings}}
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{.ExchangeName}} | {{.Asset}} | {{.Base}} | {{.Quote}} | {{ printf "$%.8f" .InitialFunds}} {{.Quote}} | {{.BuySide.MinimumSize}} {{.Base}} | {{.BuySide.MaximumSize}} {{.Base}} | ${{printf "%.8f" .BuySide.MaximumTotal}} {{.Quote}} | {{.SellSide.MinimumSize}} {{.Base}} | {{.SellSide.MaximumSize}} {{.Base}} | ${{printf "%.8f" .SellSide.MaximumTotal}} {{.Quote}} | {{.MinimumSlippagePercent}}% | {{.MaximumSlippagePercent}}% | {{.TakerFee}} | {{.MaximumHoldingsRatio}} |
| Exchange Name | Asset | Currency Base | Currency Quote | Warning | {{ range .Config.CurrencySettings}} {{if .ShowExchangeOrderLimitWarning}}
|---|---|---|---|---|
| {{.ExchangeName}} | {{.Asset}} | {{.Base}} | {{.Quote}} | order execution limits supported but disabled, results may not work when in production |
| 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}} | {{.Config.PortfolioSettings.BuySide.MinimumSize}} | {{.Config.PortfolioSettings.BuySide.MaximumSize}} | ${{printf "%.8f" .Config.PortfolioSettings.BuySide.MaximumTotal}} | {{.Config.PortfolioSettings.SellSide.MinimumSize}} | {{.Config.PortfolioSettings.SellSide.MaximumSize}} | ${{printf "%.8f" .Config.PortfolioSettings.SellSide.MaximumTotal}} |
| Risk-Free Rate |
|---|
| {{.Config.StatisticSettings.RiskFreeRate}} |
Note: Number of candles processed is higher than chart can render. Only showing the first 1,100
{{end}}| Strategy Name | {{.Statistics.StrategyName}} |
| Risk Free Rate | {{.Statistics.RiskFreeRate}}% |
| Total Buy Orders | {{.Statistics.TotalBuyOrders}} |
| Total Sell Orders | {{.Statistics.TotalSellOrders}} |
| Total Orders | {{.Statistics.TotalOrders}} |
| Biggest Drawdown | Start: {{.Statistics.BiggestDrawdown.MaxDrawdown.Highest.Time }} End: {{.Statistics.BiggestDrawdown.MaxDrawdown.Lowest.Time }} Drop: {{.Statistics.BiggestDrawdown.MaxDrawdown.DrawdownPercent}}% |
| Best performing market movement | {{.Statistics.BestMarketMovement.Exchange }} {{.Statistics.BestMarketMovement.Asset}} {{.Statistics.BestMarketMovement.Pair}} {{.Statistics.BestMarketMovement.MarketMovement}}% |
| Best performing strategy movement | {{.Statistics.BestStrategyResults.Exchange }} {{.Statistics.BestStrategyResults.Asset}} {{.Statistics.BestStrategyResults.Pair}} {{.Statistics.BestStrategyResults.StrategyMovement}}% |
| Initial Funds | ${{printf "%.8f" $val.FinalHoldings.InitialFunds}} {{$val.FinalHoldings.Pair.Quote}} |
| Buy Orders | {{$val.BuyOrders}} |
| Buy Value | ${{printf "%.8f" $val.FinalHoldings.BoughtValue}} {{$val.FinalHoldings.Pair.Quote}} |
| Buy Amount | {{printf "%.8f" $val.FinalHoldings.BoughtAmount}} {{$val.FinalHoldings.Pair.Base}} |
| Sell Orders | {{$val.SellOrders}} |
| Sell Value | ${{printf "%.8f" $val.FinalHoldings.SoldValue}} {{$val.FinalHoldings.Pair.Quote}} |
| Sell Amount | {{printf "%.8f" $val.FinalHoldings.SoldAmount}} {{$val.FinalHoldings.Pair.Base}} |
| Total Orders | {{$val.TotalOrders}} |
| Biggest Drawdown | Start: {{ $val.MaxDrawdown.Highest.Time }} End: {{ $val.MaxDrawdown.Lowest.Time }} Drop: {{printf "%.2f" $val.MaxDrawdown.DrawdownPercent}}% |
| Starting Close Price | ${{printf "%.8f" $val.StartingClosePrice}} {{$val.FinalHoldings.Pair.Quote}} |
| Ending Close Price | ${{printf "%.8f" $val.EndingClosePrice}} {{ $val.FinalHoldings.Pair.Quote }} |
| Lowest Close Price | ${{printf "%.8f" $val.LowestClosePrice}} {{$val.FinalHoldings.Pair.Quote}} |
| Highest Close Price | ${{printf "%.8f" $val.HighestClosePrice}} {{ $val.FinalHoldings.Pair.Quote}} |
| Highest Committed Funds | ${{printf "%.8f" $val.HighestCommittedFunds.Value}} at {{ $val.HighestCommittedFunds.Time}} |
| Market Movement | {{printf "%.2f" $val.MarketMovement}}% |
| Strategy Movement | {{ printf "%.2f" $val.StrategyMovement}}% |
| Did it beat the market? | {{ gt .StrategyMovement $val.MarketMovement}} |
| Total Value Lost to Volume Sizing | ${{printf "%.8f" $val.FinalHoldings.TotalValueLostToVolumeSizing}} {{$val.FinalHoldings.Pair.Quote}} |
| Total Value Lost to Slippage | ${{printf "%.8f" $val.FinalHoldings.TotalValueLostToSlippage}} {{ $val.FinalHoldings.Pair.Quote }} |
| Total Value Lost | ${{printf "%.8f" $val.FinalHoldings.TotalValueLost}} {{$val.FinalHoldings.Pair.Quote}} |
| Total Fees | ${{printf "%.8f" $val.FinalHoldings.TotalFees}} {{ $val.FinalHoldings.Pair.Quote }} |
| Final Funds | ${{printf "%.8f" $val.FinalHoldings.RemainingFunds}} {{ $val.FinalHoldings.Pair.Quote}} |
| Final Holdings | {{printf "%.8f" $val.FinalHoldings.PositionsSize}} {{$val.FinalHoldings.Pair.Base}} |
| Final Holdings Value | ${{printf "%.8f" $val.FinalHoldings.PositionsValue}} {{ $val.FinalHoldings.Pair.Quote }} |
| Total Value | ${{printf "%.8f" $val.FinalHoldings.TotalValue}} {{ $val.FinalHoldings.Pair.Quote}} |
| Risk Free Rate | {{$val.RiskFreeRate}}% |
| Compound Annual Growth Rate | {{$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}} |
| Date | Close Price | Side | Purchase Price | Slippage Rate | Amount | Fees | Cost Basis | {{range $val.FinalOrders.Orders}}
|---|---|---|---|---|---|---|---|
| {{ .Detail.Date }} | ${{ .ClosePrice}} {{$pair.Quote}} | {{ .Detail.Side }} | ${{ .Detail.Price }} {{$pair.Quote}} | {{ .SlippageRate }}% | {{printf "%.8f" .Detail.Amount }} {{$pair.Base}} | ${{printf "%.8f" .Detail.Fee }} {{$pair.Quote}} | ${{printf "%.8f" .CostBasis }} {{$pair.Quote}} |
| Date | Price | Action | Why | Committed Funds | {{range $ev := $data.Events}}||||
|---|---|---|---|---|---|---|---|---|
| {{$ev.FillEvent.GetTime}} | ${{$ev.FillEvent.GetClosePrice}} {{$pair.Quote}} | {{$ev.FillEvent.GetDirection}} | {{$ev.FillEvent.GetReason}} | {{ else if ne $ev.SignalEvent nil}}{{$ev.SignalEvent.GetTime}} | ${{ printf "%f" $ev.SignalEvent.Price}} {{$pair.Quote}} | {{$ev.SignalEvent.GetDirection}} | {{$ev.SignalEvent.GetReason}} | {{ end }}${{printf "%.8f" $ev.Holdings.CommittedFunds}} {{$pair.Quote}} |