feat: add wallet to dataframe conversion
This commit is contained in:
@@ -55,6 +55,7 @@ class BacktestContentTypeIcomplete(TypedDict, total=False):
|
||||
backtest_start_time: int
|
||||
backtest_end_time: int
|
||||
run_id: str
|
||||
wallet_summary: DataFrame
|
||||
|
||||
|
||||
class BacktestContentType(BacktestContentTypeIcomplete, total=True):
|
||||
|
||||
@@ -51,6 +51,7 @@ from freqtrade.mixins import LoggingMixin
|
||||
from freqtrade.optimize.backtest_caching import get_strategy_run_id
|
||||
from freqtrade.optimize.bt_progress import BTProgress
|
||||
from freqtrade.optimize.optimize_reports import (
|
||||
convert_bt_wallet_collection,
|
||||
generate_backtest_stats,
|
||||
generate_rejected_signals,
|
||||
generate_trade_signal_candles,
|
||||
@@ -1752,6 +1753,7 @@ class Backtesting:
|
||||
"canceled_entry_orders": self.canceled_entry_orders,
|
||||
"replaced_entry_orders": self.replaced_entry_orders,
|
||||
"final_balance": self.wallets.get_total(self.strategy.config["stake_currency"]),
|
||||
"wallet_summary": convert_bt_wallet_collection(self.wallet_captures),
|
||||
}
|
||||
|
||||
def backtest_one_strategy(
|
||||
|
||||
@@ -12,6 +12,7 @@ from freqtrade.optimize.optimize_reports.bt_output import (
|
||||
)
|
||||
from freqtrade.optimize.optimize_reports.bt_storage import store_backtest_results
|
||||
from freqtrade.optimize.optimize_reports.optimize_reports import (
|
||||
convert_bt_wallet_collection,
|
||||
generate_all_periodic_breakdown_stats,
|
||||
generate_backtest_stats,
|
||||
generate_daily_stats,
|
||||
|
||||
@@ -29,6 +29,20 @@ from freqtrade.util import decimals_per_coin, fmt_coin, format_duration, get_dry
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def convert_bt_wallet_collection(wallet_captures: list[tuple]) -> DataFrame:
|
||||
"""
|
||||
Convert the wallet capture list to a DataFrame.
|
||||
Assumes the wallet_captures list contains tuples with the following structure:
|
||||
(date, currency, price, balance).
|
||||
"""
|
||||
if len(wallet_captures) == 0:
|
||||
return []
|
||||
return DataFrame(
|
||||
wallet_captures,
|
||||
columns=["date", "currency", "price", "balance"],
|
||||
)
|
||||
|
||||
|
||||
def generate_trade_signal_candles(
|
||||
preprocessed_df: dict[str, DataFrame], bt_results: BacktestContentType, date_col: str
|
||||
) -> dict[str, DataFrame]:
|
||||
|
||||
Reference in New Issue
Block a user