Don't start plotting profit without trades
plotting profit only makes sense when trades are available
This commit is contained in:
parent
1a984ac677
commit
1f386c570d
@ -10,8 +10,9 @@ from freqtrade.data.btanalysis import (calculate_max_drawdown,
|
|||||||
create_cum_profit,
|
create_cum_profit,
|
||||||
extract_trades_of_period, load_trades)
|
extract_trades_of_period, load_trades)
|
||||||
from freqtrade.data.converter import trim_dataframe
|
from freqtrade.data.converter import trim_dataframe
|
||||||
from freqtrade.exchange import timeframe_to_prev_date
|
|
||||||
from freqtrade.data.history import load_data
|
from freqtrade.data.history import load_data
|
||||||
|
from freqtrade.exceptions import OperationalException
|
||||||
|
from freqtrade.exchange import timeframe_to_prev_date
|
||||||
from freqtrade.misc import pair_to_filename
|
from freqtrade.misc import pair_to_filename
|
||||||
from freqtrade.resolvers import StrategyResolver
|
from freqtrade.resolvers import StrategyResolver
|
||||||
|
|
||||||
@ -504,6 +505,9 @@ def plot_profit(config: Dict[str, Any]) -> None:
|
|||||||
trades = trades[(trades['pair'].isin(plot_elements["pairs"]))
|
trades = trades[(trades['pair'].isin(plot_elements["pairs"]))
|
||||||
& (~trades['close_time'].isnull())
|
& (~trades['close_time'].isnull())
|
||||||
]
|
]
|
||||||
|
if len(trades) == 0:
|
||||||
|
raise OperationalException("No trades found, cannot generate Profit-plot without "
|
||||||
|
"trades from either Backtest result or database.")
|
||||||
|
|
||||||
# Create an average close price of all the pairs that were involved.
|
# Create an average close price of all the pairs that were involved.
|
||||||
# this could be useful to gauge the overall market trend
|
# this could be useful to gauge the overall market trend
|
||||||
|
@ -374,7 +374,7 @@ def test_start_plot_profit_error(mocker):
|
|||||||
def test_plot_profit(default_conf, mocker, testdatadir, caplog):
|
def test_plot_profit(default_conf, mocker, testdatadir, caplog):
|
||||||
default_conf['trade_source'] = 'file'
|
default_conf['trade_source'] = 'file'
|
||||||
default_conf["datadir"] = testdatadir
|
default_conf["datadir"] = testdatadir
|
||||||
default_conf['exportfilename'] = testdatadir / "backtest-result_test.json"
|
default_conf['exportfilename'] = testdatadir / "backtest-result_test_nofile.json"
|
||||||
default_conf['pairs'] = ["ETH/BTC", "LTC/BTC"]
|
default_conf['pairs'] = ["ETH/BTC", "LTC/BTC"]
|
||||||
|
|
||||||
profit_mock = MagicMock()
|
profit_mock = MagicMock()
|
||||||
@ -384,6 +384,12 @@ def test_plot_profit(default_conf, mocker, testdatadir, caplog):
|
|||||||
generate_profit_graph=profit_mock,
|
generate_profit_graph=profit_mock,
|
||||||
store_plot_file=store_mock
|
store_plot_file=store_mock
|
||||||
)
|
)
|
||||||
|
with pytest.raises(OperationalException,
|
||||||
|
match=r"No trades found, cannot generate Profit-plot.*"):
|
||||||
|
plot_profit(default_conf)
|
||||||
|
|
||||||
|
default_conf['exportfilename'] = testdatadir / "backtest-result_test.json"
|
||||||
|
|
||||||
plot_profit(default_conf)
|
plot_profit(default_conf)
|
||||||
|
|
||||||
# Plot-profit generates one combined plot
|
# Plot-profit generates one combined plot
|
||||||
|
Loading…
Reference in New Issue
Block a user