Fix some assumptions on the data

available_capital is not guaranteed to be available, while dry-run-wallet is.
This commit is contained in:
Matthias 2022-05-02 19:44:14 +02:00
parent 7160f9085a
commit 1e2523af61
4 changed files with 6 additions and 6 deletions

View File

@ -1,5 +1,5 @@
import logging
from typing import Dict, Optional, Tuple
from typing import Dict, Tuple
import numpy as np
import pandas as pd
@ -73,7 +73,7 @@ def create_cum_profit(df: pd.DataFrame, trades: pd.DataFrame, col_name: str,
def _calc_drawdown_series(profit_results: pd.DataFrame, *, date_col: str, value_col: str,
starting_balance: Optional[float] = 0.0) -> pd.DataFrame:
starting_balance: float) -> pd.DataFrame:
max_drawdown_df = pd.DataFrame()
max_drawdown_df['cumulative'] = profit_results[value_col].cumsum()
max_drawdown_df['high_value'] = max_drawdown_df['cumulative'].cummax()
@ -93,7 +93,7 @@ def _calc_drawdown_series(profit_results: pd.DataFrame, *, date_col: str, value_
def calculate_underwater(trades: pd.DataFrame, *, date_col: str = 'close_date',
value_col: str = 'profit_ratio', starting_balance: Optional[float] = 0.0
value_col: str = 'profit_ratio', starting_balance: float = 0.0
):
"""
Calculate max drawdown and the corresponding close dates

View File

@ -36,7 +36,7 @@ class MaxDrawDownRelativeHyperOptLoss(IHyperOptLoss):
drawdown_df = calculate_underwater(
results,
value_col='profit_abs',
starting_balance=config['available_capital']
starting_balance=config['dry_run_wallet']
)
max_drawdown = abs(min(drawdown_df['drawdown']))
relative_drawdown = max(drawdown_df['drawdown_relative'])

View File

@ -692,7 +692,8 @@ def plot_profit(config: Dict[str, Any]) -> None:
# this could be useful to gauge the overall market trend
fig = generate_profit_graph(plot_elements['pairs'], plot_elements['ohlcv'],
trades, config['timeframe'],
config.get('stake_currency', ''), config['available_capital'])
config.get('stake_currency', ''),
config.get('available_capital', config['dry_run_wallet']))
store_plot_file(fig, filename='freqtrade-profit-plot.html',
directory=config['user_data_dir'] / 'plot',
auto_open=config.get('plot_auto_open', False))

View File

@ -454,7 +454,6 @@ def test_plot_profit(default_conf, mocker, testdatadir):
default_conf['datadir'] = testdatadir
default_conf['exportfilename'] = testdatadir / 'backtest-result_test_nofile.json'
default_conf['pairs'] = ['ETH/BTC', 'LTC/BTC']
default_conf['available_capital'] = 1000
profit_mock = MagicMock()
store_mock = MagicMock()