Add trade-volume metric
This commit is contained in:
		| @@ -257,6 +257,7 @@ A backtesting result will look like that: | ||||
| | Absolute profit       | 0.00762792 BTC      | | ||||
| | Total Profit %        | 76.2%               | | ||||
| | Trades per day        | 3.575               | | ||||
| | Total trade volume    | 0.429      BTC      | | ||||
| |                       |                     | | ||||
| | Best Pair             | LSK/BTC 26.26%      | | ||||
| | Worst Pair            | ZEC/BTC -10.18%     | | ||||
| @@ -337,6 +338,7 @@ It contains some useful key metrics about performance of your strategy on backte | ||||
| | Absolute profit       | 0.00762792 BTC      | | ||||
| | Total Profit %        | 76.2%               | | ||||
| | Trades per day        | 3.575               | | ||||
| | Total trade volume    | 0.429      BTC      | | ||||
| |                       |                     | | ||||
| | Best Pair             | LSK/BTC 26.26%      | | ||||
| | Worst Pair            | ZEC/BTC -10.18%     | | ||||
| @@ -364,6 +366,7 @@ It contains some useful key metrics about performance of your strategy on backte | ||||
| - `Absolute profit`: Profit made in stake currency. | ||||
| - `Total Profit %`: Total profit. Aligned to the `TOTAL` row's `Tot Profit %` from the first table. Calculated as `(End capital − Starting capital) / Starting capital`. | ||||
| - `Trades per day`: Total trades divided by the backtesting duration in days (this will give you information about how many trades to expect from the strategy). | ||||
| - `Total trade volume`: Volume generated on the exchange to reach the above profit. | ||||
| - `Best Pair` / `Worst Pair`: Best and worst performing pair, and it's corresponding `Cum Profit %`. | ||||
| - `Best Trade` / `Worst Trade`: Biggest winning trade and biggest losing trade | ||||
| - `Best day` / `Worst day`: Best and worst day based on daily profit. | ||||
|   | ||||
| @@ -277,6 +277,7 @@ def generate_backtest_stats(btdata: Dict[str, DataFrame], | ||||
|             'sell_reason_summary': sell_reason_stats, | ||||
|             'left_open_trades': left_open_results, | ||||
|             'total_trades': len(results), | ||||
|             'total_volume': results['stake_amount'].sum(), | ||||
|             'profit_mean': results['profit_ratio'].mean() if len(results) > 0 else 0, | ||||
|             'profit_total': results['profit_abs'].sum() / starting_balance, | ||||
|             'profit_total_abs': results['profit_abs'].sum(), | ||||
| @@ -442,9 +443,11 @@ def text_table_add_metrics(strat_results: Dict) -> str: | ||||
|                                              strat_results['stake_currency'])), | ||||
|             ('Absolute profit ', round_coin_value(strat_results['profit_total_abs'], | ||||
|                                                   strat_results['stake_currency'])), | ||||
|  | ||||
|             ('Total Profit %', f"{round(strat_results['profit_total'] * 100, 2)}%"), | ||||
|             ('Trades per day', strat_results['trades_per_day']), | ||||
|             ('Total trade volume', round_coin_value(strat_results['total_volume'], | ||||
|                                                     strat_results['stake_currency'])), | ||||
|  | ||||
|             ('', ''),  # Empty line to improve readability | ||||
|             ('Best Pair', f"{strat_results['best_pair']['key']} " | ||||
|                           f"{round(strat_results['best_pair']['profit_sum_pct'], 2)}%"), | ||||
|   | ||||
| @@ -817,6 +817,7 @@ def test_backtest_start_multi_strat_nomock(default_conf, mocker, caplog, testdat | ||||
|                                                     '2018-01-30 05:35:00', ], utc=True), | ||||
|                       'trade_duration': [235, 40], | ||||
|                       'is_open': [False, False], | ||||
|                       'stake_amount': [0.01, 0.01], | ||||
|                       'open_rate': [0.104445, 0.10302485], | ||||
|                       'close_rate': [0.104969, 0.103541], | ||||
|                       'sell_reason': [SellType.ROI, SellType.ROI] | ||||
| @@ -833,6 +834,7 @@ def test_backtest_start_multi_strat_nomock(default_conf, mocker, caplog, testdat | ||||
|                                                     '2018-01-30 08:30:00'], utc=True), | ||||
|                       'trade_duration': [47, 40, 20], | ||||
|                       'is_open': [False, False, False], | ||||
|                       'stake_amount': [0.01, 0.01, 0.01], | ||||
|                       'open_rate': [0.104445, 0.10302485, 0.122541], | ||||
|                       'close_rate': [0.104969, 0.103541, 0.123541], | ||||
|                       'sell_reason': [SellType.ROI, SellType.ROI, SellType.STOP_LOSS] | ||||
|   | ||||
| @@ -73,6 +73,7 @@ def test_generate_backtest_stats(default_conf, testdatadir): | ||||
|                                  "close_rate": [0.002546, 0.003014, 0.003103, 0.003217], | ||||
|                                  "trade_duration": [123, 34, 31, 14], | ||||
|                                  "is_open": [False, False, False, True], | ||||
|                                  "stake_amount": [0.01, 0.01, 0.01, 0.01], | ||||
|                                  "sell_reason": [SellType.ROI, SellType.STOP_LOSS, | ||||
|                                                  SellType.ROI, SellType.FORCE_SELL] | ||||
|                                  }), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user