From 44363be94eefb803719e05f3ce7ed3d1e7a0c948 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 7 Apr 2022 06:43:07 +0200 Subject: [PATCH] Align drawdown backtesting metrics --- src/components/ftbot/BacktestResultView.vue | 29 +++++++++++++++------ src/types/backtest.ts | 4 +++ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/components/ftbot/BacktestResultView.vue b/src/components/ftbot/BacktestResultView.vue index 382807a3..b0c7f58b 100644 --- a/src/components/ftbot/BacktestResultView.vue +++ b/src/components/ftbot/BacktestResultView.vue @@ -164,21 +164,34 @@ export default class BacktestResultView extends Vue { metric: 'Avg. Duration Losers', value: humanizeDurationFromSeconds(this.backtestResult.loser_holding_avg), }, - { metric: 'Rejected buy signals', value: this.backtestResult.rejected_signals }, - - { metric: '___', value: '___' }, - { metric: 'Max Drawdown', value: formatPercent(this.backtestResult.max_drawdown) }, + { metric: 'Rejected entry signals', value: this.backtestResult.rejected_signals }, { - metric: 'Max Drawdown ABS', - value: this.formatPriceStake(this.backtestResult.max_drawdown_abs), + metric: 'Entry/Exit timeouts', + value: `${this.backtestResult.timedout_entry_orders} / ${this.backtestResult.timedout_exit_orders}`, }, - { metric: 'Drawdown start', value: timestampms(this.backtestResult.drawdown_start_ts) }, - { metric: 'Drawdown end', value: timestampms(this.backtestResult.drawdown_end_ts) }, + { metric: '___', value: '___' }, { metric: 'Min balance', value: this.formatPriceStake(this.backtestResult.csum_min) }, { metric: 'Max balance', value: this.formatPriceStake(this.backtestResult.csum_max) }, { metric: 'Market change', value: formatPercent(this.backtestResult.market_change) }, { metric: '___', value: '___' }, + { + metric: 'Max Drawdown (Account)', + value: formatPercent(this.backtestResult.max_drawdown_account), + }, + { + metric: 'Max Drawdown ABS', + value: this.formatPriceStake(this.backtestResult.max_drawdown_abs), + }, + { + metric: 'Drawdown high | low', + value: `${this.formatPriceStake( + this.backtestResult.max_drawdown_high, + )} | ${this.formatPriceStake(this.backtestResult.max_drawdown_low)}`, + }, + { metric: 'Drawdown start', value: timestampms(this.backtestResult.drawdown_start_ts) }, + { metric: 'Drawdown end', value: timestampms(this.backtestResult.drawdown_end_ts) }, + { metric: '___', value: '___' }, { metric: 'Best Pair', diff --git a/src/types/backtest.ts b/src/types/backtest.ts index dc54e44e..8c2e5ff7 100644 --- a/src/types/backtest.ts +++ b/src/types/backtest.ts @@ -103,6 +103,9 @@ export interface StrategyBacktestResult { exit_profit_offset?: number; rejected_signals: number; + timedout_entry_orders: number; + timedout_exit_orders: number; + // Daily stats ... draw_days: number; drawdown_end: string; @@ -112,6 +115,7 @@ export interface StrategyBacktestResult { loser_holding_avg: number; losing_days: number; max_drawdown: number; + max_drawdown_account: number; /** Absolute max drawdown */ max_drawdown_abs: number; max_drawdown_low: number;