mirror of
https://github.com/freqtrade/freqtrade.git
synced 2025-12-16 12:51:14 +00:00
refactor: simplify backtest analysis data loading
This commit is contained in:
@@ -16,10 +16,7 @@ from .bt_fileutils import (
|
|||||||
load_backtest_data,
|
load_backtest_data,
|
||||||
load_backtest_metadata,
|
load_backtest_metadata,
|
||||||
load_backtest_stats,
|
load_backtest_stats,
|
||||||
load_exit_signal_candles,
|
|
||||||
load_file_from_zip,
|
load_file_from_zip,
|
||||||
load_rejected_signals,
|
|
||||||
load_signal_candles,
|
|
||||||
load_trades,
|
load_trades,
|
||||||
load_trades_from_db,
|
load_trades_from_db,
|
||||||
trade_list_to_dataframe,
|
trade_list_to_dataframe,
|
||||||
|
|||||||
@@ -473,27 +473,6 @@ def load_backtest_analysis_data(backtest_dir: Path, name: Literal["signals", "re
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def load_rejected_signals(backtest_dir: Path):
|
|
||||||
"""
|
|
||||||
Load rejected signals from backtest directory
|
|
||||||
"""
|
|
||||||
return load_backtest_analysis_data(backtest_dir, "rejected")
|
|
||||||
|
|
||||||
|
|
||||||
def load_signal_candles(backtest_dir: Path):
|
|
||||||
"""
|
|
||||||
Load signal candles from backtest directory
|
|
||||||
"""
|
|
||||||
return load_backtest_analysis_data(backtest_dir, "signals")
|
|
||||||
|
|
||||||
|
|
||||||
def load_exit_signal_candles(backtest_dir: Path) -> dict[str, dict[str, pd.DataFrame]]:
|
|
||||||
"""
|
|
||||||
Load exit signal candles from backtest directory
|
|
||||||
"""
|
|
||||||
return load_backtest_analysis_data(backtest_dir, "exited")
|
|
||||||
|
|
||||||
|
|
||||||
def trade_list_to_dataframe(trades: list[Trade] | list[LocalTrade]) -> pd.DataFrame:
|
def trade_list_to_dataframe(trades: list[Trade] | list[LocalTrade]) -> pd.DataFrame:
|
||||||
"""
|
"""
|
||||||
Convert list of Trade objects to pandas Dataframe
|
Convert list of Trade objects to pandas Dataframe
|
||||||
|
|||||||
@@ -7,11 +7,9 @@ from freqtrade.configuration import TimeRange
|
|||||||
from freqtrade.constants import Config
|
from freqtrade.constants import Config
|
||||||
from freqtrade.data.btanalysis import (
|
from freqtrade.data.btanalysis import (
|
||||||
BT_DATA_COLUMNS,
|
BT_DATA_COLUMNS,
|
||||||
|
load_backtest_analysis_data,
|
||||||
load_backtest_data,
|
load_backtest_data,
|
||||||
load_backtest_stats,
|
load_backtest_stats,
|
||||||
load_exit_signal_candles,
|
|
||||||
load_rejected_signals,
|
|
||||||
load_signal_candles,
|
|
||||||
)
|
)
|
||||||
from freqtrade.exceptions import ConfigurationError, OperationalException
|
from freqtrade.exceptions import ConfigurationError, OperationalException
|
||||||
from freqtrade.util import print_df_rich_table
|
from freqtrade.util import print_df_rich_table
|
||||||
@@ -354,12 +352,14 @@ def process_entry_exit_reasons(config: Config):
|
|||||||
trades = load_backtest_data(config["exportfilename"], strategy_name)
|
trades = load_backtest_data(config["exportfilename"], strategy_name)
|
||||||
|
|
||||||
if trades is not None and not trades.empty:
|
if trades is not None and not trades.empty:
|
||||||
signal_candles = load_signal_candles(config["exportfilename"])
|
signal_candles = load_backtest_analysis_data(config["exportfilename"], "signals")
|
||||||
exit_signals = load_exit_signal_candles(config["exportfilename"])
|
exit_signals = load_backtest_analysis_data(config["exportfilename"], "exited")
|
||||||
|
|
||||||
rej_df = None
|
rej_df = None
|
||||||
if do_rejected:
|
if do_rejected:
|
||||||
rejected_signals_dict = load_rejected_signals(config["exportfilename"])
|
rejected_signals_dict = load_backtest_analysis_data(
|
||||||
|
config["exportfilename"], "rejected"
|
||||||
|
)
|
||||||
rej_df = prepare_results(
|
rej_df = prepare_results(
|
||||||
rejected_signals_dict,
|
rejected_signals_dict,
|
||||||
strategy_name,
|
strategy_name,
|
||||||
|
|||||||
Reference in New Issue
Block a user