From ae443aa5f1c628a5030872a9d00aa11a5b36f41d Mon Sep 17 00:00:00 2001 From: "zhangkun9038@dingtalk.com" Date: Sun, 4 May 2025 21:07:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=9A=E6=97=B6=E9=97=B4=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- freqtrade/templates/OKXRegressionStrategy.py | 12 +- output.log | 222 +++++++++--------- output_filted.log | 222 +++++++++--------- ...ktest-result-2025-05-04_12-01-01.meta.json | 1 - ... backtest-result-2025-05-04_12-44-09.json} | 2 +- ...ktest-result-2025-05-04_12-44-09.meta.json | 1 + ...5-05-04_12-44-09_OKXRegressionStrategy.py} | 59 +++++ ...st-result-2025-05-04_12-44-09_config.json} | 0 result/output_filted.log | 222 +++++++++--------- 9 files changed, 405 insertions(+), 336 deletions(-) delete mode 100644 result/backtest-result-2025-05-04_12-01-01.meta.json rename result/{backtest-result-2025-05-04_12-01-01.json => backtest-result-2025-05-04_12-44-09.json} (99%) create mode 100644 result/backtest-result-2025-05-04_12-44-09.meta.json rename result/{backtest-result-2025-05-04_12-01-01_OKXRegressionStrategy.py => backtest-result-2025-05-04_12-44-09_OKXRegressionStrategy.py} (89%) rename result/{backtest-result-2025-05-04_12-01-01_config.json => backtest-result-2025-05-04_12-44-09_config.json} (100%) diff --git a/freqtrade/templates/OKXRegressionStrategy.py b/freqtrade/templates/OKXRegressionStrategy.py index dedb3360..160d0fab 100644 --- a/freqtrade/templates/OKXRegressionStrategy.py +++ b/freqtrade/templates/OKXRegressionStrategy.py @@ -293,11 +293,21 @@ class OKXRegressionStrategy(IStrategy): dataframe['bb_lower'] = lower # 添加高时间框架数据(例如 1h) + dataframe_1h = None # 显式声明 if self.config['timeframe'] != '1h': dataframe_1h = self.dp.get_analyzed_dataframe(metadata['pair'], '1h')[0] - dataframe['trend_1h'] = dataframe_1h['close'].rolling(window=20).mean() + # 确保 dataframe_1h 存在 'close' 列并且非空 + if dataframe_1h is not None and not dataframe_1h.empty and 'close' in dataframe_1h.columns: + dataframe['trend_1h'] = dataframe_1h['close'].rolling(window=20).mean() + else: + # 回退到当前时间框架数据 + dataframe['trend_1h'] = dataframe['close'].rolling(window=20).mean() else: dataframe['trend_1h'] = dataframe['close'].rolling(window=20).mean() + + # 记录 1h 数据框信息 + logger.debug(f"dataframe_1h columns: {dataframe_1h.columns.tolist() if dataframe_1h is not None and not dataframe_1h.empty else '未使用'}") + return dataframe diff --git a/output.log b/output.log index f95e1526..feeec01f 100644 --- a/output.log +++ b/output.log @@ -1,103 +1,103 @@ Creating freqtrade_freqtrade_run ... Creating freqtrade_freqtrade_run ... done -2025-05-04 11:58:28,633 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b -2025-05-04 11:58:28,848 - numexpr.utils - INFO - NumExpr defaulting to 12 threads. -2025-05-04 11:58:30,260 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_freqai.okx.json ... -2025-05-04 11:58:30,262 - freqtrade.loggers - INFO - Enabling colorized output. -2025-05-04 11:58:30,263 - root - INFO - Logfile configured -2025-05-04 11:58:30,263 - freqtrade.loggers - INFO - Verbosity set to 0 -2025-05-04 11:58:30,264 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates -2025-05-04 11:58:30,264 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ... -2025-05-04 11:58:30,265 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ... -2025-05-04 11:58:30,265 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250407-20250415 ... -2025-05-04 11:58:30,301 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ... -2025-05-04 11:58:30,302 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ... -2025-05-04 11:58:30,302 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ... -2025-05-04 11:58:30,303 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250407-20250415 -2025-05-04 11:58:30,303 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor -2025-05-04 11:58:30,304 - freqtrade.exchange.check_exchange - INFO - Checking exchange... -2025-05-04 11:58:30,311 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team. -2025-05-04 11:58:30,311 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration. -2025-05-04 11:58:30,312 - freqtrade.configuration.config_validation - INFO - Validating configuration ... -2025-05-04 11:58:30,314 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode -2025-05-04 11:58:30,314 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled -2025-05-04 11:58:30,315 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77 -2025-05-04 11:58:30,315 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}} -2025-05-04 11:58:30,320 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000} -2025-05-04 11:58:30,326 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX" -2025-05-04 11:58:32,974 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'... -2025-05-04 11:58:33,028 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy OKXRegressionStrategy from '/freqtrade/templates/OKXRegressionStrategy.py'... -2025-05-04 11:58:33,028 - freqtrade.strategy.hyper - INFO - Found no parameter file. -2025-05-04 11:58:33,029 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m. -2025-05-04 11:58:33,029 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05. -2025-05-04 11:58:33,030 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT. -2025-05-04 11:58:33,030 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150. -2025-05-04 11:58:33,030 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30. -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'unfilledtimeout' with value in config file: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': +2025-05-04 12:38:01,174 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b +2025-05-04 12:38:01,380 - numexpr.utils - INFO - NumExpr defaulting to 12 threads. +2025-05-04 12:38:02,816 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_freqai.okx.json ... +2025-05-04 12:38:02,818 - freqtrade.loggers - INFO - Enabling colorized output. +2025-05-04 12:38:02,818 - root - INFO - Logfile configured +2025-05-04 12:38:02,819 - freqtrade.loggers - INFO - Verbosity set to 0 +2025-05-04 12:38:02,819 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates +2025-05-04 12:38:02,819 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ... +2025-05-04 12:38:02,820 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ... +2025-05-04 12:38:02,820 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250407-20250415 ... +2025-05-04 12:38:02,846 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ... +2025-05-04 12:38:02,846 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ... +2025-05-04 12:38:02,847 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ... +2025-05-04 12:38:02,847 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250407-20250415 +2025-05-04 12:38:02,848 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor +2025-05-04 12:38:02,849 - freqtrade.exchange.check_exchange - INFO - Checking exchange... +2025-05-04 12:38:02,855 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team. +2025-05-04 12:38:02,856 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration. +2025-05-04 12:38:02,856 - freqtrade.configuration.config_validation - INFO - Validating configuration ... +2025-05-04 12:38:02,858 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode +2025-05-04 12:38:02,859 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled +2025-05-04 12:38:02,859 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77 +2025-05-04 12:38:02,859 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}} +2025-05-04 12:38:02,864 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000} +2025-05-04 12:38:02,870 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX" +2025-05-04 12:38:05,789 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'... +2025-05-04 12:38:05,841 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy OKXRegressionStrategy from '/freqtrade/templates/OKXRegressionStrategy.py'... +2025-05-04 12:38:05,842 - freqtrade.strategy.hyper - INFO - Found no parameter file. +2025-05-04 12:38:05,842 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m. +2025-05-04 12:38:05,843 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05. +2025-05-04 12:38:05,843 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT. +2025-05-04 12:38:05,843 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150. +2025-05-04 12:38:05,844 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30. +2025-05-04 12:38:05,844 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'unfilledtimeout' with value in config file: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'}. -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4. -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {} -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m -2025-05-04 11:58:33,032 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05 -2025-05-04 11:58:33,032 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True -2025-05-04 11:58:33,032 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01 -2025-05-04 11:58:33,033 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0 -2025-05-04 11:58:33,033 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False -2025-05-04 11:58:33,033 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, +2025-05-04 12:38:05,844 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4. +2025-05-04 12:38:05,845 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {} +2025-05-04 12:38:05,845 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m +2025-05-04 12:38:05,845 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05 +2025-05-04 12:38:05,846 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True +2025-05-04 12:38:05,846 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01 +2025-05-04 12:38:05,846 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0 +2025-05-04 12:38:05,847 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False +2025-05-04 12:38:05,847 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False +2025-05-04 12:38:05,847 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True +2025-05-04 12:38:05,848 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, 'stoploss_on_exchange_interval': 60} -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'} -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT -2025-05-04 11:58:33,035 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150 -2025-05-04 11:58:33,035 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30 -2025-05-04 11:58:33,035 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'} -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0 -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0 -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1 -2025-05-04 11:58:33,038 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4 -2025-05-04 11:58:33,038 - freqtrade.configuration.config_validation - INFO - Validating configuration ... -2025-05-04 11:58:33,042 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'... -2025-05-04 11:58:33,048 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config. -2025-05-04 11:58:33,049 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 -2025-05-04 11:58:33,049 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ... -2025-05-04 11:58:33,197 - freqtrade.optimize.backtesting - INFO - Loading data from 2025-01-06 21:30:00 up to 2025-04-15 00:00:00 (98 days). -2025-05-04 11:58:33,197 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators -2025-05-04 11:58:33,198 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy OKXRegressionStrategy -2025-05-04 11:58:34,759 - matplotlib.font_manager - INFO - generated new fontManager -2025-05-04 11:58:34,966 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'... -2025-05-04 11:58:34,966 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch -2025-05-04 11:58:34,967 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch -2025-05-04 11:58:34,967 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT', 'TON/USDT'] -2025-05-04 11:58:34,968 - freqtrade.strategy.hyper - INFO - No params for buy found, using default values. -2025-05-04 11:58:34,968 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_period = 14 -2025-05-04 11:58:34,969 - freqtrade.strategy.hyper - INFO - No params for sell found, using default values. -2025-05-04 11:58:34,969 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_multiplier = 2.0 -2025-05-04 11:58:34,970 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values. -2025-05-04 11:58:34,975 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges -2025-05-04 11:58:34,976 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains -2025-05-04 11:58:34,977 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at +2025-05-04 12:38:05,848 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'} +2025-05-04 12:38:05,848 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT +2025-05-04 12:38:05,849 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150 +2025-05-04 12:38:05,849 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30 +2025-05-04 12:38:05,849 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'} +2025-05-04 12:38:05,850 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True +2025-05-04 12:38:05,850 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False +2025-05-04 12:38:05,850 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False +2025-05-04 12:38:05,851 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0 +2025-05-04 12:38:05,851 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False +2025-05-04 12:38:05,851 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0 +2025-05-04 12:38:05,852 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False +2025-05-04 12:38:05,852 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1 +2025-05-04 12:38:05,852 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4 +2025-05-04 12:38:05,853 - freqtrade.configuration.config_validation - INFO - Validating configuration ... +2025-05-04 12:38:05,857 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'... +2025-05-04 12:38:05,862 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config. +2025-05-04 12:38:05,863 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 +2025-05-04 12:38:05,863 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ... +2025-05-04 12:38:06,006 - freqtrade.optimize.backtesting - INFO - Loading data from 2025-01-06 21:30:00 up to 2025-04-15 00:00:00 (98 days). +2025-05-04 12:38:06,007 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators +2025-05-04 12:38:06,008 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy OKXRegressionStrategy +2025-05-04 12:38:07,597 - matplotlib.font_manager - INFO - generated new fontManager +2025-05-04 12:38:07,798 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'... +2025-05-04 12:38:07,799 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch +2025-05-04 12:38:07,799 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch +2025-05-04 12:38:07,799 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT', 'TON/USDT'] +2025-05-04 12:38:07,800 - freqtrade.strategy.hyper - INFO - No params for buy found, using default values. +2025-05-04 12:38:07,801 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_period = 14 +2025-05-04 12:38:07,801 - freqtrade.strategy.hyper - INFO - No params for sell found, using default values. +2025-05-04 12:38:07,802 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_multiplier = 2.0 +2025-05-04 12:38:07,802 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values. +2025-05-04 12:38:07,808 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges +2025-05-04 12:38:07,809 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains +2025-05-04 12:38:07,810 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at /freqtrade/user_data/models/test175/backtesting_predictions/cb_okb_1743984000_prediction.feather -2025-05-04 11:58:35,224 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 -2025-05-04 11:58:35,224 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 -2025-05-04 11:58:35,416 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 -2025-05-04 11:58:35,417 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 +2025-05-04 12:38:08,058 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 +2025-05-04 12:38:08,059 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 +2025-05-04 12:38:08,253 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 +2025-05-04 12:38:08,254 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 /freqtrade/templates/OKXRegressionStrategy.py:246: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead. dataframe = dataframe.fillna(method="ffill").fillna(0) /freqtrade/templates/OKXRegressionStrategy.py:246: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead. dataframe = dataframe.fillna(method="ffill").fillna(0) -2025-05-04 11:58:41,469 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000 -2025-05-04 11:58:41,470 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT -------------------- -2025-05-04 11:58:41,593 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200. -2025-05-04 11:58:41,594 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- -2025-05-04 11:58:41,650 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] -2025-05-04 11:58:41,702 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features -2025-05-04 11:58:41,702 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points +2025-05-04 12:38:14,204 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000 +2025-05-04 12:38:14,205 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT -------------------- +2025-05-04 12:38:14,334 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200. +2025-05-04 12:38:14,334 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- +2025-05-04 12:38:14,391 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] +2025-05-04 12:38:14,444 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features +2025-05-04 12:38:14,444 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points [0] validation_0-rmse:0.36629 validation_1-rmse:0.37143 [1] validation_0-rmse:0.36088 validation_1-rmse:0.36593 [2] validation_0-rmse:0.35557 validation_1-rmse:0.36052 @@ -398,13 +398,13 @@ Creating freqtrade_freqtrade_run ... done [297] validation_0-rmse:0.03425 validation_1-rmse:0.02814 [298] validation_0-rmse:0.03423 validation_1-rmse:0.02811 [299] validation_0-rmse:0.03422 validation_1-rmse:0.02808 -2025-05-04 11:59:48,077 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (66.61 secs) -------------------- -2025-05-04 11:59:48,295 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000--s_close.html -2025-05-04 11:59:48,295 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. -2025-05-04 11:59:48,357 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None -2025-05-04 11:59:48,442 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges -2025-05-04 11:59:48,443 - freqtrade.freqai.freqai_interface - INFO - Training TON/USDT, 2/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains -2025-05-04 11:59:48,444 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at +2025-05-04 12:41:04,061 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (169.86 secs) -------------------- +2025-05-04 12:41:04,283 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000--s_close.html +2025-05-04 12:41:04,283 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. +2025-05-04 12:41:04,345 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None +2025-05-04 12:41:04,441 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges +2025-05-04 12:41:04,442 - freqtrade.freqai.freqai_interface - INFO - Training TON/USDT, 2/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains +2025-05-04 12:41:04,443 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at /freqtrade/user_data/models/test175/backtesting_predictions/cb_ton_1743984000_prediction.feather /freqtrade/templates/OKXRegressionStrategy.py:246: FutureWarning: @@ -414,13 +414,13 @@ DataFrame.fillna with 'method' is deprecated and will raise in a future version. DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead. -2025-05-04 11:59:54,567 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000 -2025-05-04 11:59:54,568 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training TON/USDT -------------------- -2025-05-04 11:59:54,684 - freqtrade.freqai.data_kitchen - INFO - TON/USDT: dropped 0 training points due to NaNs in populated dataset 43200. -2025-05-04 11:59:54,685 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- -2025-05-04 11:59:54,741 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] -2025-05-04 11:59:54,791 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features -2025-05-04 11:59:54,791 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points +2025-05-04 12:41:10,679 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000 +2025-05-04 12:41:10,680 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training TON/USDT -------------------- +2025-05-04 12:41:10,811 - freqtrade.freqai.data_kitchen - INFO - TON/USDT: dropped 0 training points due to NaNs in populated dataset 43200. +2025-05-04 12:41:10,812 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- +2025-05-04 12:41:10,870 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] +2025-05-04 12:41:10,921 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features +2025-05-04 12:41:10,922 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points [0] validation_0-rmse:0.52241 validation_1-rmse:0.52534 [1] validation_0-rmse:0.51462 validation_1-rmse:0.51751 [2] validation_0-rmse:0.50695 validation_1-rmse:0.50980 @@ -721,12 +721,12 @@ DataFrame.fillna with 'method' is deprecated and will raise in a future version. [297] validation_0-rmse:0.03155 validation_1-rmse:0.02866 [298] validation_0-rmse:0.03153 validation_1-rmse:0.02862 [299] validation_0-rmse:0.03150 validation_1-rmse:0.02858 -2025-05-04 12:01:00,801 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training TON/USDT (66.23 secs) -------------------- -2025-05-04 12:01:00,836 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000--s_close.html -2025-05-04 12:01:00,836 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. -2025-05-04 12:01:00,894 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None -2025-05-04 12:01:00,976 - freqtrade.optimize.backtesting - INFO - Backtesting with data from 2025-04-07 00:00:00 up to 2025-04-15 00:00:00 (8 days). -2025-05-04 12:01:01,168 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-04_12-01-01.meta.json" +2025-05-04 12:44:08,729 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training TON/USDT (178.05 secs) -------------------- +2025-05-04 12:44:08,769 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000--s_close.html +2025-05-04 12:44:08,769 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. +2025-05-04 12:44:08,831 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None +2025-05-04 12:44:08,923 - freqtrade.optimize.backtesting - INFO - Backtesting with data from 2025-04-07 00:00:00 up to 2025-04-15 00:00:00 (8 days). +2025-05-04 12:44:09,123 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-04_12-44-09.meta.json" Result for strategy OKXRegressionStrategy BACKTESTING REPORT ┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ diff --git a/output_filted.log b/output_filted.log index a9ddaece..d0dfeb40 100644 --- a/output_filted.log +++ b/output_filted.log @@ -1,111 +1,111 @@ Creating freqtrade_freqtrade_run ... Creating freqtrade_freqtrade_run ... done -2025-05-04 11:58:28,633 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b -2025-05-04 11:58:28,848 - numexpr.utils - INFO - NumExpr defaulting to 12 threads. -2025-05-04 11:58:30,260 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_freqai.okx.json ... -2025-05-04 11:58:30,262 - freqtrade.loggers - INFO - Enabling colorized output. -2025-05-04 11:58:30,263 - root - INFO - Logfile configured -2025-05-04 11:58:30,263 - freqtrade.loggers - INFO - Verbosity set to 0 -2025-05-04 11:58:30,264 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates -2025-05-04 11:58:30,264 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ... -2025-05-04 11:58:30,265 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ... -2025-05-04 11:58:30,265 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250407-20250415 ... -2025-05-04 11:58:30,301 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ... -2025-05-04 11:58:30,302 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ... -2025-05-04 11:58:30,302 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ... -2025-05-04 11:58:30,303 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250407-20250415 -2025-05-04 11:58:30,303 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor -2025-05-04 11:58:30,304 - freqtrade.exchange.check_exchange - INFO - Checking exchange... -2025-05-04 11:58:30,311 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team. -2025-05-04 11:58:30,311 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration. -2025-05-04 11:58:30,312 - freqtrade.configuration.config_validation - INFO - Validating configuration ... -2025-05-04 11:58:30,314 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode -2025-05-04 11:58:30,314 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled -2025-05-04 11:58:30,315 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77 -2025-05-04 11:58:30,315 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}} -2025-05-04 11:58:30,320 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000} -2025-05-04 11:58:30,326 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX" -2025-05-04 11:58:32,974 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'... -2025-05-04 11:58:33,028 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy OKXRegressionStrategy from '/freqtrade/templates/OKXRegressionStrategy.py'... -2025-05-04 11:58:33,028 - freqtrade.strategy.hyper - INFO - Found no parameter file. -2025-05-04 11:58:33,029 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m. -2025-05-04 11:58:33,029 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05. -2025-05-04 11:58:33,030 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT. -2025-05-04 11:58:33,030 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150. -2025-05-04 11:58:33,030 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30. -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'unfilledtimeout' with value in config file: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': +2025-05-04 12:38:01,174 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b +2025-05-04 12:38:01,380 - numexpr.utils - INFO - NumExpr defaulting to 12 threads. +2025-05-04 12:38:02,816 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_freqai.okx.json ... +2025-05-04 12:38:02,818 - freqtrade.loggers - INFO - Enabling colorized output. +2025-05-04 12:38:02,818 - root - INFO - Logfile configured +2025-05-04 12:38:02,819 - freqtrade.loggers - INFO - Verbosity set to 0 +2025-05-04 12:38:02,819 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates +2025-05-04 12:38:02,819 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ... +2025-05-04 12:38:02,820 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ... +2025-05-04 12:38:02,820 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250407-20250415 ... +2025-05-04 12:38:02,846 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ... +2025-05-04 12:38:02,846 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ... +2025-05-04 12:38:02,847 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ... +2025-05-04 12:38:02,847 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250407-20250415 +2025-05-04 12:38:02,848 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor +2025-05-04 12:38:02,849 - freqtrade.exchange.check_exchange - INFO - Checking exchange... +2025-05-04 12:38:02,855 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team. +2025-05-04 12:38:02,856 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration. +2025-05-04 12:38:02,856 - freqtrade.configuration.config_validation - INFO - Validating configuration ... +2025-05-04 12:38:02,858 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode +2025-05-04 12:38:02,859 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled +2025-05-04 12:38:02,859 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77 +2025-05-04 12:38:02,859 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}} +2025-05-04 12:38:02,864 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000} +2025-05-04 12:38:02,870 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX" +2025-05-04 12:38:05,789 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'... +2025-05-04 12:38:05,841 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy OKXRegressionStrategy from '/freqtrade/templates/OKXRegressionStrategy.py'... +2025-05-04 12:38:05,842 - freqtrade.strategy.hyper - INFO - Found no parameter file. +2025-05-04 12:38:05,842 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m. +2025-05-04 12:38:05,843 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05. +2025-05-04 12:38:05,843 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT. +2025-05-04 12:38:05,843 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150. +2025-05-04 12:38:05,844 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30. +2025-05-04 12:38:05,844 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'unfilledtimeout' with value in config file: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'}. -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4. -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {} -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m -2025-05-04 11:58:33,032 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05 -2025-05-04 11:58:33,032 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True -2025-05-04 11:58:33,032 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01 -2025-05-04 11:58:33,033 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0 -2025-05-04 11:58:33,033 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False -2025-05-04 11:58:33,033 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, +2025-05-04 12:38:05,844 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4. +2025-05-04 12:38:05,845 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {} +2025-05-04 12:38:05,845 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m +2025-05-04 12:38:05,845 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05 +2025-05-04 12:38:05,846 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True +2025-05-04 12:38:05,846 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01 +2025-05-04 12:38:05,846 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0 +2025-05-04 12:38:05,847 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False +2025-05-04 12:38:05,847 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False +2025-05-04 12:38:05,847 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True +2025-05-04 12:38:05,848 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, 'stoploss_on_exchange_interval': 60} -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'} -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT -2025-05-04 11:58:33,035 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150 -2025-05-04 11:58:33,035 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30 -2025-05-04 11:58:33,035 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'} -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0 -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0 -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1 -2025-05-04 11:58:33,038 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4 -2025-05-04 11:58:33,038 - freqtrade.configuration.config_validation - INFO - Validating configuration ... -2025-05-04 11:58:33,042 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'... -2025-05-04 11:58:33,048 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config. -2025-05-04 11:58:33,049 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 -2025-05-04 11:58:33,049 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ... -2025-05-04 11:58:33,197 - freqtrade.optimize.backtesting - INFO - Loading data from 2025-01-06 21:30:00 up to 2025-04-15 00:00:00 (98 days). -2025-05-04 11:58:33,197 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators -2025-05-04 11:58:33,198 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy OKXRegressionStrategy -2025-05-04 11:58:34,759 - matplotlib.font_manager - INFO - generated new fontManager -2025-05-04 11:58:34,966 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'... -2025-05-04 11:58:34,966 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch -2025-05-04 11:58:34,967 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch -2025-05-04 11:58:34,967 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT', 'TON/USDT'] -2025-05-04 11:58:34,968 - freqtrade.strategy.hyper - INFO - No params for buy found, using default values. -2025-05-04 11:58:34,968 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_period = 14 -2025-05-04 11:58:34,969 - freqtrade.strategy.hyper - INFO - No params for sell found, using default values. -2025-05-04 11:58:34,969 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_multiplier = 2.0 -2025-05-04 11:58:34,970 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values. -2025-05-04 11:58:34,975 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges -2025-05-04 11:58:34,976 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains -2025-05-04 11:58:34,977 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at +2025-05-04 12:38:05,848 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'} +2025-05-04 12:38:05,848 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT +2025-05-04 12:38:05,849 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150 +2025-05-04 12:38:05,849 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30 +2025-05-04 12:38:05,849 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'} +2025-05-04 12:38:05,850 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True +2025-05-04 12:38:05,850 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False +2025-05-04 12:38:05,850 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False +2025-05-04 12:38:05,851 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0 +2025-05-04 12:38:05,851 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False +2025-05-04 12:38:05,851 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0 +2025-05-04 12:38:05,852 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False +2025-05-04 12:38:05,852 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1 +2025-05-04 12:38:05,852 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4 +2025-05-04 12:38:05,853 - freqtrade.configuration.config_validation - INFO - Validating configuration ... +2025-05-04 12:38:05,857 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'... +2025-05-04 12:38:05,862 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config. +2025-05-04 12:38:05,863 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 +2025-05-04 12:38:05,863 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ... +2025-05-04 12:38:06,006 - freqtrade.optimize.backtesting - INFO - Loading data from 2025-01-06 21:30:00 up to 2025-04-15 00:00:00 (98 days). +2025-05-04 12:38:06,007 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators +2025-05-04 12:38:06,008 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy OKXRegressionStrategy +2025-05-04 12:38:07,597 - matplotlib.font_manager - INFO - generated new fontManager +2025-05-04 12:38:07,798 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'... +2025-05-04 12:38:07,799 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch +2025-05-04 12:38:07,799 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch +2025-05-04 12:38:07,799 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT', 'TON/USDT'] +2025-05-04 12:38:07,800 - freqtrade.strategy.hyper - INFO - No params for buy found, using default values. +2025-05-04 12:38:07,801 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_period = 14 +2025-05-04 12:38:07,801 - freqtrade.strategy.hyper - INFO - No params for sell found, using default values. +2025-05-04 12:38:07,802 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_multiplier = 2.0 +2025-05-04 12:38:07,802 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values. +2025-05-04 12:38:07,808 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges +2025-05-04 12:38:07,809 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains +2025-05-04 12:38:07,810 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at /freqtrade/user_data/models/test175/backtesting_predictions/cb_okb_1743984000_prediction.feather -2025-05-04 11:58:35,224 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 -2025-05-04 11:58:35,224 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 -2025-05-04 11:58:35,416 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 -2025-05-04 11:58:35,417 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 +2025-05-04 12:38:08,058 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 +2025-05-04 12:38:08,059 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 +2025-05-04 12:38:08,253 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 +2025-05-04 12:38:08,254 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 /freqtrade/templates/OKXRegressionStrategy.py:246: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead. dataframe = dataframe.fillna(method="ffill").fillna(0) /freqtrade/templates/OKXRegressionStrategy.py:246: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead. dataframe = dataframe.fillna(method="ffill").fillna(0) -2025-05-04 11:58:41,469 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000 -2025-05-04 11:58:41,470 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT -------------------- -2025-05-04 11:58:41,593 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200. -2025-05-04 11:58:41,594 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- -2025-05-04 11:58:41,650 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] -2025-05-04 11:58:41,702 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features -2025-05-04 11:58:41,702 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points +2025-05-04 12:38:14,204 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000 +2025-05-04 12:38:14,205 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT -------------------- +2025-05-04 12:38:14,334 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200. +2025-05-04 12:38:14,334 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- +2025-05-04 12:38:14,391 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] +2025-05-04 12:38:14,444 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features +2025-05-04 12:38:14,444 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points [99] validation_0-rmse:0.09103 validation_1-rmse:0.09003 -2025-05-04 11:59:48,077 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (66.61 secs) -------------------- -2025-05-04 11:59:48,295 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000--s_close.html -2025-05-04 11:59:48,295 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. -2025-05-04 11:59:48,357 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None -2025-05-04 11:59:48,442 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges -2025-05-04 11:59:48,443 - freqtrade.freqai.freqai_interface - INFO - Training TON/USDT, 2/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains -2025-05-04 11:59:48,444 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at +2025-05-04 12:41:04,061 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (169.86 secs) -------------------- +2025-05-04 12:41:04,283 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000--s_close.html +2025-05-04 12:41:04,283 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. +2025-05-04 12:41:04,345 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None +2025-05-04 12:41:04,441 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges +2025-05-04 12:41:04,442 - freqtrade.freqai.freqai_interface - INFO - Training TON/USDT, 2/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains +2025-05-04 12:41:04,443 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at /freqtrade/user_data/models/test175/backtesting_predictions/cb_ton_1743984000_prediction.feather /freqtrade/templates/OKXRegressionStrategy.py:246: FutureWarning: @@ -115,20 +115,20 @@ DataFrame.fillna with 'method' is deprecated and will raise in a future version. DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead. -2025-05-04 11:59:54,567 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000 -2025-05-04 11:59:54,568 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training TON/USDT -------------------- -2025-05-04 11:59:54,684 - freqtrade.freqai.data_kitchen - INFO - TON/USDT: dropped 0 training points due to NaNs in populated dataset 43200. -2025-05-04 11:59:54,685 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- -2025-05-04 11:59:54,741 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] -2025-05-04 11:59:54,791 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features -2025-05-04 11:59:54,791 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points +2025-05-04 12:41:10,679 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000 +2025-05-04 12:41:10,680 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training TON/USDT -------------------- +2025-05-04 12:41:10,811 - freqtrade.freqai.data_kitchen - INFO - TON/USDT: dropped 0 training points due to NaNs in populated dataset 43200. +2025-05-04 12:41:10,812 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- +2025-05-04 12:41:10,870 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] +2025-05-04 12:41:10,921 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features +2025-05-04 12:41:10,922 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points [99] validation_0-rmse:0.12193 validation_1-rmse:0.12248 -2025-05-04 12:01:00,801 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training TON/USDT (66.23 secs) -------------------- -2025-05-04 12:01:00,836 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000--s_close.html -2025-05-04 12:01:00,836 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. -2025-05-04 12:01:00,894 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None -2025-05-04 12:01:00,976 - freqtrade.optimize.backtesting - INFO - Backtesting with data from 2025-04-07 00:00:00 up to 2025-04-15 00:00:00 (8 days). -2025-05-04 12:01:01,168 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-04_12-01-01.meta.json" +2025-05-04 12:44:08,729 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training TON/USDT (178.05 secs) -------------------- +2025-05-04 12:44:08,769 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000--s_close.html +2025-05-04 12:44:08,769 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. +2025-05-04 12:44:08,831 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None +2025-05-04 12:44:08,923 - freqtrade.optimize.backtesting - INFO - Backtesting with data from 2025-04-07 00:00:00 up to 2025-04-15 00:00:00 (8 days). +2025-05-04 12:44:09,123 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-04_12-44-09.meta.json" Result for strategy OKXRegressionStrategy BACKTESTING REPORT ┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ diff --git a/result/backtest-result-2025-05-04_12-01-01.meta.json b/result/backtest-result-2025-05-04_12-01-01.meta.json deleted file mode 100644 index 6b90e119..00000000 --- a/result/backtest-result-2025-05-04_12-01-01.meta.json +++ /dev/null @@ -1 +0,0 @@ -{"OKXRegressionStrategy":{"run_id":"203132ae0c5df1caf5c9fd1791d1721147fe4890","backtest_start_time":1746359913,"timeframe":"3m","timeframe_detail":null,"backtest_start_ts":1743984000,"backtest_end_ts":1744675200}} \ No newline at end of file diff --git a/result/backtest-result-2025-05-04_12-01-01.json b/result/backtest-result-2025-05-04_12-44-09.json similarity index 99% rename from result/backtest-result-2025-05-04_12-01-01.json rename to result/backtest-result-2025-05-04_12-44-09.json index 39e4d19c..54cdeaef 100644 --- a/result/backtest-result-2025-05-04_12-01-01.json +++ b/result/backtest-result-2025-05-04_12-44-09.json @@ -1 +1 @@ -{"strategy":{"OKXRegressionStrategy":{"trades":[{"pair":"TON/USDT","stake_amount":19.9999632,"max_stake_amount":19.9999632,"amount":6.9348,"open_date":"2025-04-07 07:06:00+00:00","close_date":"2025-04-07 07:06:00+00:00","open_rate":2.884,"close_rate":2.883,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":0,"profit_ratio":-0.0019449071557674563,"profit_abs":-0.03892919,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":2.74,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":2.895,"stop_loss_ratio":-0.01,"min_rate":2.883,"max_rate":2.924,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744009560000,"close_timestamp":1744009560000,"orders":[{"amount":6.9348,"safe_price":2.884,"ft_order_side":"buy","order_filled_timestamp":1744009560000,"ft_is_entry":true,"ft_order_tag":"","cost":20.01596317056},{"amount":6.9348,"safe_price":2.883,"ft_order_side":"sell","order_filled_timestamp":1744009560000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":20.00902282272}]},{"pair":"OKB/USDT","stake_amount":19.99922061,"max_stake_amount":19.99922061,"amount":0.405417,"open_date":"2025-04-07 07:21:00+00:00","close_date":"2025-04-07 07:24:00+00:00","open_rate":49.33,"close_rate":49.11,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":3,"profit_ratio":-0.006051351925273161,"profit_abs":-0.12111914,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":46.87,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":49.11,"stop_loss_ratio":-0.01,"min_rate":49.0,"max_rate":49.6,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744010460000,"close_timestamp":1744010640000,"orders":[{"amount":0.405417,"safe_price":49.33,"ft_order_side":"buy","order_filled_timestamp":1744010460000,"ft_is_entry":true,"ft_order_tag":"","cost":20.015219986488},{"amount":0.405417,"safe_price":49.11,"ft_order_side":"sell","order_filled_timestamp":1744010640000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":19.925956893096}]},{"pair":"OKB/USDT","stake_amount":19.99675792,"max_stake_amount":19.99675792,"amount":0.406108,"open_date":"2025-04-07 07:27:00+00:00","close_date":"2025-04-07 08:21:00+00:00","open_rate":49.24,"close_rate":50.15,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":54,"profit_ratio":0.016852642951976173,"profit_abs":0.33726782,"exit_reason":"exit_signal","initial_stop_loss_abs":46.78,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":49.8,"stop_loss_ratio":-0.01,"min_rate":48.97,"max_rate":50.3,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744010820000,"close_timestamp":1744014060000,"orders":[{"amount":0.406108,"safe_price":49.24,"ft_order_side":"buy","order_filled_timestamp":1744010820000,"ft_is_entry":true,"ft_order_tag":"","cost":20.012755326336},{"amount":0.406108,"safe_price":50.15,"ft_order_side":"sell","order_filled_timestamp":1744014060000,"ft_is_entry":false,"ft_order_tag":"exit_signal","cost":20.38260925296}]},{"pair":"TON/USDT","stake_amount":20.0034459,"max_stake_amount":20.0034459,"amount":6.7329,"open_date":"2025-04-07 08:57:00+00:00","close_date":"2025-04-07 09:00:00+00:00","open_rate":2.971,"close_rate":2.987,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":3,"profit_ratio":0.0037780615888545668,"profit_abs":0.07563471,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":2.823,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":2.987,"stop_loss_ratio":-0.01,"min_rate":2.959,"max_rate":3.017,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744016220000,"close_timestamp":1744016400000,"orders":[{"amount":6.7329,"safe_price":2.971,"ft_order_side":"buy","order_filled_timestamp":1744016220000,"ft_is_entry":true,"ft_order_tag":"","cost":20.019448656719998},{"amount":6.7329,"safe_price":2.987,"ft_order_side":"sell","order_filled_timestamp":1744016400000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":20.12726123784}]},{"pair":"TON/USDT","stake_amount":20.0050356,"max_stake_amount":20.0050356,"amount":6.6484,"open_date":"2025-04-07 09:03:00+00:00","close_date":"2025-04-07 09:06:00+00:00","open_rate":3.009,"close_rate":2.999,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":3,"profit_ratio":-0.004916771148086154,"profit_abs":-0.09843887,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":2.859,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":2.999,"stop_loss_ratio":-0.01,"min_rate":2.991,"max_rate":3.029,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744016580000,"close_timestamp":1744016760000,"orders":[{"amount":6.6484,"safe_price":3.009,"ft_order_side":"buy","order_filled_timestamp":1744016580000,"ft_is_entry":true,"ft_order_tag":"","cost":20.021039628479997},{"amount":6.6484,"safe_price":2.999,"ft_order_side":"sell","order_filled_timestamp":1744016760000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":19.95450244128}]},{"pair":"OKB/USDT","stake_amount":20.00304124,"max_stake_amount":20.00304124,"amount":0.396571,"open_date":"2025-04-07 14:06:00+00:00","close_date":"2025-04-07 14:15:00+00:00","open_rate":50.44,"close_rate":50.97,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":9,"profit_ratio":0.008892014169495794,"profit_abs":0.17800962,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":47.92,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":50.97,"stop_loss_ratio":-0.01,"min_rate":50.41,"max_rate":51.48,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744034760000,"close_timestamp":1744035300000,"orders":[{"amount":0.396571,"safe_price":50.44,"ft_order_side":"buy","order_filled_timestamp":1744034760000,"ft_is_entry":true,"ft_order_tag":"","cost":20.019043672991998},{"amount":0.396571,"safe_price":50.97,"ft_order_side":"sell","order_filled_timestamp":1744035300000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":20.229394449096}]},{"pair":"OKB/USDT","stake_amount":20.0066297,"max_stake_amount":20.0066297,"amount":0.407467,"open_date":"2025-04-08 17:18:00+00:00","close_date":"2025-04-08 17:27:00+00:00","open_rate":49.1,"close_rate":48.83,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":9,"profit_ratio":-0.00708891112350326,"profit_abs":-0.14193868,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":46.65,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":48.83,"stop_loss_ratio":-0.01,"min_rate":48.79,"max_rate":49.32,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744132680000,"close_timestamp":1744133220000,"orders":[{"amount":0.407467,"safe_price":49.1,"ft_order_side":"buy","order_filled_timestamp":1744132680000,"ft_is_entry":true,"ft_order_tag":"","cost":20.022635003759998},{"amount":0.407467,"safe_price":48.83,"ft_order_side":"sell","order_filled_timestamp":1744133220000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":19.912530900887997}]},{"pair":"OKB/USDT","stake_amount":20.00378952,"max_stake_amount":20.00378952,"amount":0.409578,"open_date":"2025-04-08 17:30:00+00:00","close_date":"2025-04-08 18:33:00+00:00","open_rate":48.84,"close_rate":49.96,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":63,"profit_ratio":0.021296639757917204,"profit_abs":0.42635431,"exit_reason":"exit_signal","initial_stop_loss_abs":46.4,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":49.47,"stop_loss_ratio":-0.01,"min_rate":48.84,"max_rate":49.96,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744133400000,"close_timestamp":1744137180000,"orders":[{"amount":0.409578,"safe_price":48.84,"ft_order_side":"buy","order_filled_timestamp":1744133400000,"ft_is_entry":true,"ft_order_tag":"","cost":20.019792551616},{"amount":0.409578,"safe_price":49.96,"ft_order_side":"sell","order_filled_timestamp":1744137180000,"ft_is_entry":false,"ft_order_tag":"exit_signal","cost":20.478886893503997}]},{"pair":"OKB/USDT","stake_amount":20.01232859,"max_stake_amount":20.01232859,"amount":0.376951,"open_date":"2025-04-12 12:42:00+00:00","close_date":"2025-04-12 13:48:00+00:00","open_rate":53.09,"close_rate":53.28,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":66,"profit_ratio":0.0019743859478432955,"profit_abs":0.03954367,"exit_reason":"exit_signal","initial_stop_loss_abs":50.44,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":52.78,"stop_loss_ratio":-0.01,"min_rate":53.02,"max_rate":53.31,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744461720000,"close_timestamp":1744465680000,"orders":[{"amount":0.376951,"safe_price":53.09,"ft_order_side":"buy","order_filled_timestamp":1744461720000,"ft_is_entry":true,"ft_order_tag":"","cost":20.028338452871996},{"amount":0.376951,"safe_price":53.28,"ft_order_side":"sell","order_filled_timestamp":1744465680000,"ft_is_entry":false,"ft_order_tag":"exit_signal","cost":20.100016439423996}]}],"locks":[],"best_pair":{"key":"OKB/USDT","trades":6,"profit_mean":0.005979236629742676,"profit_mean_pct":0.6,"profit_sum":0.035875419778456055,"profit_sum_pct":3.59,"profit_total_abs":0.7181176,"profit_total":0.0007181176,"profit_total_pct":0.07,"duration_avg":"0:34:00","wins":4,"draws":0,"losses":2,"winrate":0.6666666666666666,"cagr":0.03329461925602417,"expectancy":0.11968626666666667,"expectancy_ratio":0.9099616705305826,"sortino":164.744483837864,"sharpe":7.972264055280644,"calmar":1208.7107955065367,"sqn":1.2441,"profit_factor":3.7298850115917483,"max_drawdown_account":0.00014188275573415342,"max_drawdown_abs":0.14193867999999998},"worst_pair":{"key":"TON/USDT","trades":3,"profit_mean":-0.0010278722383330146,"profit_mean_pct":-0.1,"profit_sum":-0.0030836167149990434,"profit_sum_pct":-0.31,"profit_total_abs":-0.061733350000000006,"profit_total":-6.173335000000001e-05,"profit_total_pct":-0.01,"duration_avg":"0:02:00","wins":1,"draws":0,"losses":2,"winrate":0.3333333333333333,"cagr":-0.002812707939839232,"expectancy":-0.020577783333333342,"expectancy_ratio":-0.29960069805649636,"sortino":-4.954714912450637,"sharpe":-2.0407836743585777,"calmar":-149.77026944835958,"sqn":-0.4028,"profit_factor":0.5505989529152554,"max_drawdown_account":9.843525688281887e-05,"max_drawdown_abs":0.09843887},"results_per_pair":[{"key":"OKB/USDT","trades":6,"profit_mean":0.005979236629742676,"profit_mean_pct":0.6,"profit_sum":0.035875419778456055,"profit_sum_pct":3.59,"profit_total_abs":0.7181176,"profit_total":0.0007181176,"profit_total_pct":0.07,"duration_avg":"0:34:00","wins":4,"draws":0,"losses":2,"winrate":0.6666666666666666,"cagr":0.03329461925602417,"expectancy":0.11968626666666667,"expectancy_ratio":0.9099616705305826,"sortino":164.744483837864,"sharpe":7.972264055280644,"calmar":1208.7107955065367,"sqn":1.2441,"profit_factor":3.7298850115917483,"max_drawdown_account":0.00014188275573415342,"max_drawdown_abs":0.14193867999999998},{"key":"TON/USDT","trades":3,"profit_mean":-0.0010278722383330146,"profit_mean_pct":-0.1,"profit_sum":-0.0030836167149990434,"profit_sum_pct":-0.31,"profit_total_abs":-0.061733350000000006,"profit_total":-6.173335000000001e-05,"profit_total_pct":-0.01,"duration_avg":"0:02:00","wins":1,"draws":0,"losses":2,"winrate":0.3333333333333333,"cagr":-0.002812707939839232,"expectancy":-0.020577783333333342,"expectancy_ratio":-0.29960069805649636,"sortino":-4.954714912450637,"sharpe":-2.0407836743585777,"calmar":-149.77026944835958,"sqn":-0.4028,"profit_factor":0.5505989529152554,"max_drawdown_account":9.843525688281887e-05,"max_drawdown_abs":0.09843887},{"key":"TOTAL","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002}],"results_per_enter_tag":[{"key":"","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002},{"key":"TOTAL","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002}],"exit_reason_summary":[{"key":"exit_signal","trades":3,"profit_mean":0.013374556219245557,"profit_mean_pct":1.34,"profit_sum":0.04012366865773667,"profit_sum_pct":4.01,"profit_total_abs":0.8031658,"profit_total":0.0008031658000000001,"profit_total_pct":0.08,"duration_avg":"1:01:00","wins":3,"draws":0,"losses":0,"winrate":1.0,"cagr":0.03730886715189241,"expectancy":0.26772193333333333,"expectancy_ratio":100.0,"sortino":-100,"sharpe":11.596853414138549,"calmar":-100,"sqn":2.2892,"profit_factor":0.0,"max_drawdown_account":0.0,"max_drawdown_abs":0.0},{"key":"trailing_stop_loss","trades":6,"profit_mean":-0.0012219775990466115,"profit_mean_pct":-0.12,"profit_sum":-0.00733186559427967,"profit_sum_pct":-0.73,"profit_total_abs":-0.14678155000000004,"profit_total":-0.00014678155000000004,"profit_total_pct":-0.01,"duration_avg":"0:04:00","wins":2,"draws":0,"losses":4,"winrate":0.3333333333333333,"cagr":-0.006675022161481747,"expectancy":-0.024463591666666673,"expectancy_ratio":-0.24437572982711975,"sortino":-9.098667679582922,"sharpe":-3.0387503466882784,"calmar":-191.70217310606748,"sqn":-0.4742,"profit_factor":0.6334364052593203,"max_drawdown_account":0.00018285248999995929,"max_drawdown_abs":0.18285249000000003},{"key":"TOTAL","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002}],"mix_tag_stats":[{"key":["","exit_signal"],"trades":3,"profit_mean":0.013374556219245557,"profit_mean_pct":1.34,"profit_sum":0.04012366865773667,"profit_sum_pct":4.01,"profit_total_abs":0.8031658,"profit_total":0.0008031658000000001,"profit_total_pct":0.08,"duration_avg":"1:01:00","wins":3,"draws":0,"losses":0,"winrate":1.0,"cagr":0.03730886715189241,"expectancy":0.26772193333333333,"expectancy_ratio":100.0,"sortino":-100,"sharpe":11.596853414138549,"calmar":-100,"sqn":2.2892,"profit_factor":0.0,"max_drawdown_account":0.0,"max_drawdown_abs":0.0},{"key":["","trailing_stop_loss"],"trades":6,"profit_mean":-0.0012219775990466115,"profit_mean_pct":-0.12,"profit_sum":-0.00733186559427967,"profit_sum_pct":-0.73,"profit_total_abs":-0.14678155000000004,"profit_total":-0.00014678155000000004,"profit_total_pct":-0.01,"duration_avg":"0:04:00","wins":2,"draws":0,"losses":4,"winrate":0.3333333333333333,"cagr":-0.006675022161481747,"expectancy":-0.024463591666666673,"expectancy_ratio":-0.24437572982711975,"sortino":-9.098667679582922,"sharpe":-3.0387503466882784,"calmar":-191.70217310606748,"sqn":-0.4742,"profit_factor":0.6334364052593203,"max_drawdown_account":0.00018285248999995929,"max_drawdown_abs":0.18285249000000003},{"key":"TOTAL","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002}],"left_open_trades":[{"key":"TOTAL","trades":0,"profit_mean":0.0,"profit_mean_pct":0.0,"profit_sum":0.0,"profit_sum_pct":0.0,"profit_total_abs":0.0,"profit_total":0.0,"profit_total_pct":0.0,"duration_avg":"0:00","wins":0,"draws":0,"losses":0,"winrate":0.0,"cagr":0.0,"expectancy":0.0,"expectancy_ratio":100.0,"sortino":0,"sharpe":0,"calmar":0,"sqn":0.0,"profit_factor":0.0,"max_drawdown_account":0.0,"max_drawdown_abs":0.0}],"total_trades":9,"trade_count_long":9,"trade_count_short":0,"total_volume":361.294417780632,"avg_stake_amount":20.00335692,"profit_mean":0.003643533673717445,"profit_median":0.0019743859478432955,"profit_total":0.0006563842500000001,"profit_total_long":0.0006563842500000001,"profit_total_short":0.0,"profit_total_abs":0.6563842500000001,"profit_total_long_abs":0.6563842500000001,"profit_total_short_abs":0.0,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"backtest_start":"2025-04-07 00:00:00","backtest_start_ts":1743984000000,"backtest_end":"2025-04-15 00:00:00","backtest_end_ts":1744675200000,"backtest_days":8,"backtest_run_start_ts":1746359913,"backtest_run_end_ts":1746360061,"trades_per_day":1.12,"market_change":-0.006988727416541546,"pairlist":["OKB/USDT","TON/USDT"],"stake_amount":150,"stake_currency":"USDT","stake_currency_decimals":3,"starting_balance":1000,"dry_run_wallet":1000,"final_balance":1000.65638425,"rejected_signals":0,"timedout_entry_orders":0,"timedout_exit_orders":0,"canceled_trade_entries":0,"canceled_entry_orders":0,"replaced_entry_orders":0,"max_open_trades":2,"max_open_trades_setting":4,"timeframe":"3m","timeframe_detail":"","timerange":"20250407-20250415","enable_protections":false,"strategy_name":"OKXRegressionStrategy","stoploss":-0.05,"trailing_stop":true,"trailing_stop_positive":0.01,"trailing_stop_positive_offset":0.0,"trailing_only_offset_is_reached":false,"use_custom_stoploss":false,"minimal_roi":{},"use_exit_signal":true,"exit_profit_only":false,"exit_profit_offset":0.0,"ignore_roi_if_entry_signal":false,"trading_mode":"spot","margin_mode":"isolated","periodic_breakdown":{"day":[{"date":"07/04/2025","date_ts":1743984000000,"profit_abs":0.33242495,"wins":3,"draws":0,"losses":3,"trades":6,"profit_factor":2.28604028},{"date":"08/04/2025","date_ts":1744070400000,"profit_abs":0.28441563,"wins":1,"draws":0,"losses":1,"trades":2,"profit_factor":3.00379227},{"date":"09/04/2025","date_ts":1744156800000,"profit_abs":0.0,"wins":0,"draws":0,"losses":0,"trades":0,"profit_factor":0.0},{"date":"10/04/2025","date_ts":1744243200000,"profit_abs":0.0,"wins":0,"draws":0,"losses":0,"trades":0,"profit_factor":0.0},{"date":"11/04/2025","date_ts":1744329600000,"profit_abs":0.0,"wins":0,"draws":0,"losses":0,"trades":0,"profit_factor":0.0},{"date":"12/04/2025","date_ts":1744416000000,"profit_abs":0.03954367,"wins":1,"draws":0,"losses":0,"trades":1,"profit_factor":0.0}],"week":[{"date":"07/04/2025","date_ts":1743984000000,"profit_abs":0.33242495,"wins":3,"draws":0,"losses":3,"trades":6,"profit_factor":2.28604028},{"date":"14/04/2025","date_ts":1744588800000,"profit_abs":0.3239593,"wins":2,"draws":0,"losses":1,"trades":3,"profit_factor":3.28238913}],"month":[{"date":"30/04/2025","date_ts":1745971200000,"profit_abs":0.65638425,"wins":5,"draws":0,"losses":4,"trades":9,"profit_factor":2.63921535}],"year":[{"date":"31/12/2025","date_ts":1767139200000,"profit_abs":0.65638425,"wins":5,"draws":0,"losses":4,"trades":9,"profit_factor":2.63921535}]},"backtest_best_day":0.01660968848119976,"backtest_worst_day":0.0,"backtest_best_day_abs":0.33242495,"backtest_worst_day_abs":0.0,"winning_days":3,"draw_days":3,"losing_days":0,"daily_profit":[["2025-04-07",0.33242495],["2025-04-08",0.28441563],["2025-04-09",0.0],["2025-04-10",0.0],["2025-04-11",0.0],["2025-04-12",0.03954367]],"wins":5,"losses":4,"draws":0,"winrate":0.5555555555555556,"holding_avg":"0:23:00","holding_avg_s":1380.0,"winner_holding_avg":"0:39:00","winner_holding_avg_s":2340.0,"loser_holding_avg":"0:04:00","loser_holding_avg_s":240.0,"max_consecutive_wins":2,"max_consecutive_losses":2,"max_drawdown_account":0.00016004832999999509,"max_relative_drawdown":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002,"drawdown_start":"2025-04-07 07:06:00","drawdown_start_ts":1744009560000.0,"drawdown_end":"2025-04-07 07:24:00","drawdown_end_ts":1744010640000.0,"max_drawdown_low":-0.16004833000000002,"max_drawdown_high":-0.03892919,"csum_min":999.83995167,"csum_max":1000.65638425}},"strategy_comparison":[{"key":"OKXRegressionStrategy","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":"0.16"}]} \ No newline at end of file +{"strategy":{"OKXRegressionStrategy":{"trades":[{"pair":"TON/USDT","stake_amount":19.9999632,"max_stake_amount":19.9999632,"amount":6.9348,"open_date":"2025-04-07 07:06:00+00:00","close_date":"2025-04-07 07:06:00+00:00","open_rate":2.884,"close_rate":2.883,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":0,"profit_ratio":-0.0019449071557674563,"profit_abs":-0.03892919,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":2.74,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":2.895,"stop_loss_ratio":-0.01,"min_rate":2.883,"max_rate":2.924,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744009560000,"close_timestamp":1744009560000,"orders":[{"amount":6.9348,"safe_price":2.884,"ft_order_side":"buy","order_filled_timestamp":1744009560000,"ft_is_entry":true,"ft_order_tag":"","cost":20.01596317056},{"amount":6.9348,"safe_price":2.883,"ft_order_side":"sell","order_filled_timestamp":1744009560000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":20.00902282272}]},{"pair":"OKB/USDT","stake_amount":19.99922061,"max_stake_amount":19.99922061,"amount":0.405417,"open_date":"2025-04-07 07:21:00+00:00","close_date":"2025-04-07 07:24:00+00:00","open_rate":49.33,"close_rate":49.11,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":3,"profit_ratio":-0.006051351925273161,"profit_abs":-0.12111914,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":46.87,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":49.11,"stop_loss_ratio":-0.01,"min_rate":49.0,"max_rate":49.6,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744010460000,"close_timestamp":1744010640000,"orders":[{"amount":0.405417,"safe_price":49.33,"ft_order_side":"buy","order_filled_timestamp":1744010460000,"ft_is_entry":true,"ft_order_tag":"","cost":20.015219986488},{"amount":0.405417,"safe_price":49.11,"ft_order_side":"sell","order_filled_timestamp":1744010640000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":19.925956893096}]},{"pair":"OKB/USDT","stake_amount":19.99675792,"max_stake_amount":19.99675792,"amount":0.406108,"open_date":"2025-04-07 07:27:00+00:00","close_date":"2025-04-07 08:21:00+00:00","open_rate":49.24,"close_rate":50.15,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":54,"profit_ratio":0.016852642951976173,"profit_abs":0.33726782,"exit_reason":"exit_signal","initial_stop_loss_abs":46.78,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":49.8,"stop_loss_ratio":-0.01,"min_rate":48.97,"max_rate":50.3,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744010820000,"close_timestamp":1744014060000,"orders":[{"amount":0.406108,"safe_price":49.24,"ft_order_side":"buy","order_filled_timestamp":1744010820000,"ft_is_entry":true,"ft_order_tag":"","cost":20.012755326336},{"amount":0.406108,"safe_price":50.15,"ft_order_side":"sell","order_filled_timestamp":1744014060000,"ft_is_entry":false,"ft_order_tag":"exit_signal","cost":20.38260925296}]},{"pair":"TON/USDT","stake_amount":20.0034459,"max_stake_amount":20.0034459,"amount":6.7329,"open_date":"2025-04-07 08:57:00+00:00","close_date":"2025-04-07 09:00:00+00:00","open_rate":2.971,"close_rate":2.987,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":3,"profit_ratio":0.0037780615888545668,"profit_abs":0.07563471,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":2.823,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":2.987,"stop_loss_ratio":-0.01,"min_rate":2.959,"max_rate":3.017,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744016220000,"close_timestamp":1744016400000,"orders":[{"amount":6.7329,"safe_price":2.971,"ft_order_side":"buy","order_filled_timestamp":1744016220000,"ft_is_entry":true,"ft_order_tag":"","cost":20.019448656719998},{"amount":6.7329,"safe_price":2.987,"ft_order_side":"sell","order_filled_timestamp":1744016400000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":20.12726123784}]},{"pair":"TON/USDT","stake_amount":20.0050356,"max_stake_amount":20.0050356,"amount":6.6484,"open_date":"2025-04-07 09:03:00+00:00","close_date":"2025-04-07 09:06:00+00:00","open_rate":3.009,"close_rate":2.999,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":3,"profit_ratio":-0.004916771148086154,"profit_abs":-0.09843887,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":2.859,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":2.999,"stop_loss_ratio":-0.01,"min_rate":2.991,"max_rate":3.029,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744016580000,"close_timestamp":1744016760000,"orders":[{"amount":6.6484,"safe_price":3.009,"ft_order_side":"buy","order_filled_timestamp":1744016580000,"ft_is_entry":true,"ft_order_tag":"","cost":20.021039628479997},{"amount":6.6484,"safe_price":2.999,"ft_order_side":"sell","order_filled_timestamp":1744016760000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":19.95450244128}]},{"pair":"OKB/USDT","stake_amount":20.00304124,"max_stake_amount":20.00304124,"amount":0.396571,"open_date":"2025-04-07 14:06:00+00:00","close_date":"2025-04-07 14:15:00+00:00","open_rate":50.44,"close_rate":50.97,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":9,"profit_ratio":0.008892014169495794,"profit_abs":0.17800962,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":47.92,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":50.97,"stop_loss_ratio":-0.01,"min_rate":50.41,"max_rate":51.48,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744034760000,"close_timestamp":1744035300000,"orders":[{"amount":0.396571,"safe_price":50.44,"ft_order_side":"buy","order_filled_timestamp":1744034760000,"ft_is_entry":true,"ft_order_tag":"","cost":20.019043672991998},{"amount":0.396571,"safe_price":50.97,"ft_order_side":"sell","order_filled_timestamp":1744035300000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":20.229394449096}]},{"pair":"OKB/USDT","stake_amount":20.0066297,"max_stake_amount":20.0066297,"amount":0.407467,"open_date":"2025-04-08 17:18:00+00:00","close_date":"2025-04-08 17:27:00+00:00","open_rate":49.1,"close_rate":48.83,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":9,"profit_ratio":-0.00708891112350326,"profit_abs":-0.14193868,"exit_reason":"trailing_stop_loss","initial_stop_loss_abs":46.65,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":48.83,"stop_loss_ratio":-0.01,"min_rate":48.79,"max_rate":49.32,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744132680000,"close_timestamp":1744133220000,"orders":[{"amount":0.407467,"safe_price":49.1,"ft_order_side":"buy","order_filled_timestamp":1744132680000,"ft_is_entry":true,"ft_order_tag":"","cost":20.022635003759998},{"amount":0.407467,"safe_price":48.83,"ft_order_side":"sell","order_filled_timestamp":1744133220000,"ft_is_entry":false,"ft_order_tag":"trailing_stop_loss","cost":19.912530900887997}]},{"pair":"OKB/USDT","stake_amount":20.00378952,"max_stake_amount":20.00378952,"amount":0.409578,"open_date":"2025-04-08 17:30:00+00:00","close_date":"2025-04-08 18:33:00+00:00","open_rate":48.84,"close_rate":49.96,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":63,"profit_ratio":0.021296639757917204,"profit_abs":0.42635431,"exit_reason":"exit_signal","initial_stop_loss_abs":46.4,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":49.47,"stop_loss_ratio":-0.01,"min_rate":48.84,"max_rate":49.96,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744133400000,"close_timestamp":1744137180000,"orders":[{"amount":0.409578,"safe_price":48.84,"ft_order_side":"buy","order_filled_timestamp":1744133400000,"ft_is_entry":true,"ft_order_tag":"","cost":20.019792551616},{"amount":0.409578,"safe_price":49.96,"ft_order_side":"sell","order_filled_timestamp":1744137180000,"ft_is_entry":false,"ft_order_tag":"exit_signal","cost":20.478886893503997}]},{"pair":"OKB/USDT","stake_amount":20.01232859,"max_stake_amount":20.01232859,"amount":0.376951,"open_date":"2025-04-12 12:42:00+00:00","close_date":"2025-04-12 13:48:00+00:00","open_rate":53.09,"close_rate":53.28,"fee_open":0.0008,"fee_close":0.0008,"trade_duration":66,"profit_ratio":0.0019743859478432955,"profit_abs":0.03954367,"exit_reason":"exit_signal","initial_stop_loss_abs":50.44,"initial_stop_loss_ratio":-0.05,"stop_loss_abs":52.78,"stop_loss_ratio":-0.01,"min_rate":53.02,"max_rate":53.31,"is_open":false,"enter_tag":"","leverage":1.0,"is_short":false,"open_timestamp":1744461720000,"close_timestamp":1744465680000,"orders":[{"amount":0.376951,"safe_price":53.09,"ft_order_side":"buy","order_filled_timestamp":1744461720000,"ft_is_entry":true,"ft_order_tag":"","cost":20.028338452871996},{"amount":0.376951,"safe_price":53.28,"ft_order_side":"sell","order_filled_timestamp":1744465680000,"ft_is_entry":false,"ft_order_tag":"exit_signal","cost":20.100016439423996}]}],"locks":[],"best_pair":{"key":"OKB/USDT","trades":6,"profit_mean":0.005979236629742676,"profit_mean_pct":0.6,"profit_sum":0.035875419778456055,"profit_sum_pct":3.59,"profit_total_abs":0.7181176,"profit_total":0.0007181176,"profit_total_pct":0.07,"duration_avg":"0:34:00","wins":4,"draws":0,"losses":2,"winrate":0.6666666666666666,"cagr":0.03329461925602417,"expectancy":0.11968626666666667,"expectancy_ratio":0.9099616705305826,"sortino":164.744483837864,"sharpe":7.972264055280644,"calmar":1208.7107955065367,"sqn":1.2441,"profit_factor":3.7298850115917483,"max_drawdown_account":0.00014188275573415342,"max_drawdown_abs":0.14193867999999998},"worst_pair":{"key":"TON/USDT","trades":3,"profit_mean":-0.0010278722383330146,"profit_mean_pct":-0.1,"profit_sum":-0.0030836167149990434,"profit_sum_pct":-0.31,"profit_total_abs":-0.061733350000000006,"profit_total":-6.173335000000001e-05,"profit_total_pct":-0.01,"duration_avg":"0:02:00","wins":1,"draws":0,"losses":2,"winrate":0.3333333333333333,"cagr":-0.002812707939839232,"expectancy":-0.020577783333333342,"expectancy_ratio":-0.29960069805649636,"sortino":-4.954714912450637,"sharpe":-2.0407836743585777,"calmar":-149.77026944835958,"sqn":-0.4028,"profit_factor":0.5505989529152554,"max_drawdown_account":9.843525688281887e-05,"max_drawdown_abs":0.09843887},"results_per_pair":[{"key":"OKB/USDT","trades":6,"profit_mean":0.005979236629742676,"profit_mean_pct":0.6,"profit_sum":0.035875419778456055,"profit_sum_pct":3.59,"profit_total_abs":0.7181176,"profit_total":0.0007181176,"profit_total_pct":0.07,"duration_avg":"0:34:00","wins":4,"draws":0,"losses":2,"winrate":0.6666666666666666,"cagr":0.03329461925602417,"expectancy":0.11968626666666667,"expectancy_ratio":0.9099616705305826,"sortino":164.744483837864,"sharpe":7.972264055280644,"calmar":1208.7107955065367,"sqn":1.2441,"profit_factor":3.7298850115917483,"max_drawdown_account":0.00014188275573415342,"max_drawdown_abs":0.14193867999999998},{"key":"TON/USDT","trades":3,"profit_mean":-0.0010278722383330146,"profit_mean_pct":-0.1,"profit_sum":-0.0030836167149990434,"profit_sum_pct":-0.31,"profit_total_abs":-0.061733350000000006,"profit_total":-6.173335000000001e-05,"profit_total_pct":-0.01,"duration_avg":"0:02:00","wins":1,"draws":0,"losses":2,"winrate":0.3333333333333333,"cagr":-0.002812707939839232,"expectancy":-0.020577783333333342,"expectancy_ratio":-0.29960069805649636,"sortino":-4.954714912450637,"sharpe":-2.0407836743585777,"calmar":-149.77026944835958,"sqn":-0.4028,"profit_factor":0.5505989529152554,"max_drawdown_account":9.843525688281887e-05,"max_drawdown_abs":0.09843887},{"key":"TOTAL","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002}],"results_per_enter_tag":[{"key":"","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002},{"key":"TOTAL","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002}],"exit_reason_summary":[{"key":"exit_signal","trades":3,"profit_mean":0.013374556219245557,"profit_mean_pct":1.34,"profit_sum":0.04012366865773667,"profit_sum_pct":4.01,"profit_total_abs":0.8031658,"profit_total":0.0008031658000000001,"profit_total_pct":0.08,"duration_avg":"1:01:00","wins":3,"draws":0,"losses":0,"winrate":1.0,"cagr":0.03730886715189241,"expectancy":0.26772193333333333,"expectancy_ratio":100.0,"sortino":-100,"sharpe":11.596853414138549,"calmar":-100,"sqn":2.2892,"profit_factor":0.0,"max_drawdown_account":0.0,"max_drawdown_abs":0.0},{"key":"trailing_stop_loss","trades":6,"profit_mean":-0.0012219775990466115,"profit_mean_pct":-0.12,"profit_sum":-0.00733186559427967,"profit_sum_pct":-0.73,"profit_total_abs":-0.14678155000000004,"profit_total":-0.00014678155000000004,"profit_total_pct":-0.01,"duration_avg":"0:04:00","wins":2,"draws":0,"losses":4,"winrate":0.3333333333333333,"cagr":-0.006675022161481747,"expectancy":-0.024463591666666673,"expectancy_ratio":-0.24437572982711975,"sortino":-9.098667679582922,"sharpe":-3.0387503466882784,"calmar":-191.70217310606748,"sqn":-0.4742,"profit_factor":0.6334364052593203,"max_drawdown_account":0.00018285248999995929,"max_drawdown_abs":0.18285249000000003},{"key":"TOTAL","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002}],"mix_tag_stats":[{"key":["","exit_signal"],"trades":3,"profit_mean":0.013374556219245557,"profit_mean_pct":1.34,"profit_sum":0.04012366865773667,"profit_sum_pct":4.01,"profit_total_abs":0.8031658,"profit_total":0.0008031658000000001,"profit_total_pct":0.08,"duration_avg":"1:01:00","wins":3,"draws":0,"losses":0,"winrate":1.0,"cagr":0.03730886715189241,"expectancy":0.26772193333333333,"expectancy_ratio":100.0,"sortino":-100,"sharpe":11.596853414138549,"calmar":-100,"sqn":2.2892,"profit_factor":0.0,"max_drawdown_account":0.0,"max_drawdown_abs":0.0},{"key":["","trailing_stop_loss"],"trades":6,"profit_mean":-0.0012219775990466115,"profit_mean_pct":-0.12,"profit_sum":-0.00733186559427967,"profit_sum_pct":-0.73,"profit_total_abs":-0.14678155000000004,"profit_total":-0.00014678155000000004,"profit_total_pct":-0.01,"duration_avg":"0:04:00","wins":2,"draws":0,"losses":4,"winrate":0.3333333333333333,"cagr":-0.006675022161481747,"expectancy":-0.024463591666666673,"expectancy_ratio":-0.24437572982711975,"sortino":-9.098667679582922,"sharpe":-3.0387503466882784,"calmar":-191.70217310606748,"sqn":-0.4742,"profit_factor":0.6334364052593203,"max_drawdown_account":0.00018285248999995929,"max_drawdown_abs":0.18285249000000003},{"key":"TOTAL","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002}],"left_open_trades":[{"key":"TOTAL","trades":0,"profit_mean":0.0,"profit_mean_pct":0.0,"profit_sum":0.0,"profit_sum_pct":0.0,"profit_total_abs":0.0,"profit_total":0.0,"profit_total_pct":0.0,"duration_avg":"0:00","wins":0,"draws":0,"losses":0,"winrate":0.0,"cagr":0.0,"expectancy":0.0,"expectancy_ratio":100.0,"sortino":0,"sharpe":0,"calmar":0,"sqn":0.0,"profit_factor":0.0,"max_drawdown_account":0.0,"max_drawdown_abs":0.0}],"total_trades":9,"trade_count_long":9,"trade_count_short":0,"total_volume":361.294417780632,"avg_stake_amount":20.00335692,"profit_mean":0.003643533673717445,"profit_median":0.0019743859478432955,"profit_total":0.0006563842500000001,"profit_total_long":0.0006563842500000001,"profit_total_short":0.0,"profit_total_abs":0.6563842500000001,"profit_total_long_abs":0.6563842500000001,"profit_total_short_abs":0.0,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"backtest_start":"2025-04-07 00:00:00","backtest_start_ts":1743984000000,"backtest_end":"2025-04-15 00:00:00","backtest_end_ts":1744675200000,"backtest_days":8,"backtest_run_start_ts":1746362286,"backtest_run_end_ts":1746362649,"trades_per_day":1.12,"market_change":-0.006988727416541546,"pairlist":["OKB/USDT","TON/USDT"],"stake_amount":150,"stake_currency":"USDT","stake_currency_decimals":3,"starting_balance":1000,"dry_run_wallet":1000,"final_balance":1000.65638425,"rejected_signals":0,"timedout_entry_orders":0,"timedout_exit_orders":0,"canceled_trade_entries":0,"canceled_entry_orders":0,"replaced_entry_orders":0,"max_open_trades":2,"max_open_trades_setting":4,"timeframe":"3m","timeframe_detail":"","timerange":"20250407-20250415","enable_protections":false,"strategy_name":"OKXRegressionStrategy","stoploss":-0.05,"trailing_stop":true,"trailing_stop_positive":0.01,"trailing_stop_positive_offset":0.0,"trailing_only_offset_is_reached":false,"use_custom_stoploss":false,"minimal_roi":{},"use_exit_signal":true,"exit_profit_only":false,"exit_profit_offset":0.0,"ignore_roi_if_entry_signal":false,"trading_mode":"spot","margin_mode":"isolated","periodic_breakdown":{"day":[{"date":"07/04/2025","date_ts":1743984000000,"profit_abs":0.33242495,"wins":3,"draws":0,"losses":3,"trades":6,"profit_factor":2.28604028},{"date":"08/04/2025","date_ts":1744070400000,"profit_abs":0.28441563,"wins":1,"draws":0,"losses":1,"trades":2,"profit_factor":3.00379227},{"date":"09/04/2025","date_ts":1744156800000,"profit_abs":0.0,"wins":0,"draws":0,"losses":0,"trades":0,"profit_factor":0.0},{"date":"10/04/2025","date_ts":1744243200000,"profit_abs":0.0,"wins":0,"draws":0,"losses":0,"trades":0,"profit_factor":0.0},{"date":"11/04/2025","date_ts":1744329600000,"profit_abs":0.0,"wins":0,"draws":0,"losses":0,"trades":0,"profit_factor":0.0},{"date":"12/04/2025","date_ts":1744416000000,"profit_abs":0.03954367,"wins":1,"draws":0,"losses":0,"trades":1,"profit_factor":0.0}],"week":[{"date":"07/04/2025","date_ts":1743984000000,"profit_abs":0.33242495,"wins":3,"draws":0,"losses":3,"trades":6,"profit_factor":2.28604028},{"date":"14/04/2025","date_ts":1744588800000,"profit_abs":0.3239593,"wins":2,"draws":0,"losses":1,"trades":3,"profit_factor":3.28238913}],"month":[{"date":"30/04/2025","date_ts":1745971200000,"profit_abs":0.65638425,"wins":5,"draws":0,"losses":4,"trades":9,"profit_factor":2.63921535}],"year":[{"date":"31/12/2025","date_ts":1767139200000,"profit_abs":0.65638425,"wins":5,"draws":0,"losses":4,"trades":9,"profit_factor":2.63921535}]},"backtest_best_day":0.01660968848119976,"backtest_worst_day":0.0,"backtest_best_day_abs":0.33242495,"backtest_worst_day_abs":0.0,"winning_days":3,"draw_days":3,"losing_days":0,"daily_profit":[["2025-04-07",0.33242495],["2025-04-08",0.28441563],["2025-04-09",0.0],["2025-04-10",0.0],["2025-04-11",0.0],["2025-04-12",0.03954367]],"wins":5,"losses":4,"draws":0,"winrate":0.5555555555555556,"holding_avg":"0:23:00","holding_avg_s":1380.0,"winner_holding_avg":"0:39:00","winner_holding_avg_s":2340.0,"loser_holding_avg":"0:04:00","loser_holding_avg_s":240.0,"max_consecutive_wins":2,"max_consecutive_losses":2,"max_drawdown_account":0.00016004832999999509,"max_relative_drawdown":0.00016004832999999509,"max_drawdown_abs":0.16004833000000002,"drawdown_start":"2025-04-07 07:06:00","drawdown_start_ts":1744009560000.0,"drawdown_end":"2025-04-07 07:24:00","drawdown_end_ts":1744010640000.0,"max_drawdown_low":-0.16004833000000002,"max_drawdown_high":-0.03892919,"csum_min":999.83995167,"csum_max":1000.65638425}},"strategy_comparison":[{"key":"OKXRegressionStrategy","trades":9,"profit_mean":0.003643533673717445,"profit_mean_pct":0.36,"profit_sum":0.032791803063457005,"profit_sum_pct":3.28,"profit_total_abs":0.6563842500000001,"profit_total":0.0006563842500000001,"profit_total_pct":0.07,"duration_avg":"0:23:00","wins":5,"draws":0,"losses":4,"winrate":0.5555555555555556,"cagr":0.030390346014414815,"expectancy":0.07293158333333336,"expectancy_ratio":0.728540156628571,"sortino":40.687825962202176,"sharpe":8.153458985742828,"calmar":979.4075552399374,"sqn":1.073,"profit_factor":2.639215352414285,"max_drawdown_account":0.00016004832999999509,"max_drawdown_abs":"0.16"}]} \ No newline at end of file diff --git a/result/backtest-result-2025-05-04_12-44-09.meta.json b/result/backtest-result-2025-05-04_12-44-09.meta.json new file mode 100644 index 00000000..bbf80141 --- /dev/null +++ b/result/backtest-result-2025-05-04_12-44-09.meta.json @@ -0,0 +1 @@ +{"OKXRegressionStrategy":{"run_id":"ba6bbc90aba8ad2f31e1ac23d54cca8263b3b93d","backtest_start_time":1746362286,"timeframe":"3m","timeframe_detail":null,"backtest_start_ts":1743984000,"backtest_end_ts":1744675200}} \ No newline at end of file diff --git a/result/backtest-result-2025-05-04_12-01-01_OKXRegressionStrategy.py b/result/backtest-result-2025-05-04_12-44-09_OKXRegressionStrategy.py similarity index 89% rename from result/backtest-result-2025-05-04_12-01-01_OKXRegressionStrategy.py rename to result/backtest-result-2025-05-04_12-44-09_OKXRegressionStrategy.py index 4ca987ae..160d0fab 100644 --- a/result/backtest-result-2025-05-04_12-01-01_OKXRegressionStrategy.py +++ b/result/backtest-result-2025-05-04_12-44-09_OKXRegressionStrategy.py @@ -285,6 +285,29 @@ class OKXRegressionStrategy(IStrategy): if dataframe is None: dataframe = DataFrame() dataframe['ATR_{}'.format(self.atr_period.value)] = ta.ATR(dataframe['high'], dataframe['low'], dataframe['close'], timeperiod=self.atr_period.value) + # 添加 RSI 和布林带指标 + dataframe['rsi'] = ta.RSI(dataframe['close'], timeperiod=14) + upper, middle, lower = ta.BBANDS(dataframe['close'], timeperiod=20, nbdevup=2, nbdevdn=2) + dataframe['bb_upper'] = upper + dataframe['bb_middle'] = middle + dataframe['bb_lower'] = lower + + # 添加高时间框架数据(例如 1h) + dataframe_1h = None # 显式声明 + if self.config['timeframe'] != '1h': + dataframe_1h = self.dp.get_analyzed_dataframe(metadata['pair'], '1h')[0] + # 确保 dataframe_1h 存在 'close' 列并且非空 + if dataframe_1h is not None and not dataframe_1h.empty and 'close' in dataframe_1h.columns: + dataframe['trend_1h'] = dataframe_1h['close'].rolling(window=20).mean() + else: + # 回退到当前时间框架数据 + dataframe['trend_1h'] = dataframe['close'].rolling(window=20).mean() + else: + dataframe['trend_1h'] = dataframe['close'].rolling(window=20).mean() + + # 记录 1h 数据框信息 + logger.debug(f"dataframe_1h columns: {dataframe_1h.columns.tolist() if dataframe_1h is not None and not dataframe_1h.empty else '未使用'}") + return dataframe @@ -560,3 +583,39 @@ class OKXRegressionStrategy(IStrategy): except Exception as e: logger.error(f"FreqAI fit 失败:{str(e)}") raise + def _callback_stop_loss(self, dataframe: DataFrame, metadata: dict, callback_percent: float = 0.015) -> DataFrame: + """ + 回调止损逻辑:当价格从近期高点回撤超过指定百分比, + 并结合 RSI 或布林带信号,同时考虑高时间框架趋势。 + """ + + # 计算滚动最高价(过去 N 根K线内的最高点) + rolling_high_period = 20 + dataframe['rolling_high'] = dataframe['close'].rolling(window=rolling_high_period).max() + + # 计算当前价格相对于最近高点的回撤比例 + dataframe['callback_ratio'] = (dataframe['close'] - dataframe['rolling_high']) / dataframe['rolling_high'] + + # 获取 RSI 和布林带信息 + rsi_overbought = 70 + dataframe['in_overbought'] = dataframe['rsi'] > rsi_overbought + dataframe['below_bb_upper'] = dataframe['close'] < dataframe['bb_upper'] + + # 获取高时间框架趋势(1小时均线) + dataframe['trend_up'] = dataframe['close'] > dataframe['trend_1h'] + dataframe['trend_down'] = dataframe['close'] < dataframe['trend_1h'] + + # 回调止损条件: + # 1. 当前价格回撤超过设定的百分比 + # 2. RSI 处于超买状态 OR 价格跌破布林带上轨 + # 3. 当前处于下降趋势(高时间框架确认) + callback_condition = ( + (dataframe['callback_ratio'] <= -callback_percent) & + ((dataframe['in_overbought'] | (~dataframe['below_bb_upper']))) & + (dataframe['trend_down']) + ) + + # 应用回调止损逻辑 + dataframe.loc[callback_condition, 'exit_long'] = 1 + + return dataframe diff --git a/result/backtest-result-2025-05-04_12-01-01_config.json b/result/backtest-result-2025-05-04_12-44-09_config.json similarity index 100% rename from result/backtest-result-2025-05-04_12-01-01_config.json rename to result/backtest-result-2025-05-04_12-44-09_config.json diff --git a/result/output_filted.log b/result/output_filted.log index a9ddaece..d0dfeb40 100644 --- a/result/output_filted.log +++ b/result/output_filted.log @@ -1,111 +1,111 @@ Creating freqtrade_freqtrade_run ... Creating freqtrade_freqtrade_run ... done -2025-05-04 11:58:28,633 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b -2025-05-04 11:58:28,848 - numexpr.utils - INFO - NumExpr defaulting to 12 threads. -2025-05-04 11:58:30,260 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_freqai.okx.json ... -2025-05-04 11:58:30,262 - freqtrade.loggers - INFO - Enabling colorized output. -2025-05-04 11:58:30,263 - root - INFO - Logfile configured -2025-05-04 11:58:30,263 - freqtrade.loggers - INFO - Verbosity set to 0 -2025-05-04 11:58:30,264 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates -2025-05-04 11:58:30,264 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ... -2025-05-04 11:58:30,265 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ... -2025-05-04 11:58:30,265 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250407-20250415 ... -2025-05-04 11:58:30,301 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ... -2025-05-04 11:58:30,302 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ... -2025-05-04 11:58:30,302 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ... -2025-05-04 11:58:30,303 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250407-20250415 -2025-05-04 11:58:30,303 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor -2025-05-04 11:58:30,304 - freqtrade.exchange.check_exchange - INFO - Checking exchange... -2025-05-04 11:58:30,311 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team. -2025-05-04 11:58:30,311 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration. -2025-05-04 11:58:30,312 - freqtrade.configuration.config_validation - INFO - Validating configuration ... -2025-05-04 11:58:30,314 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode -2025-05-04 11:58:30,314 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled -2025-05-04 11:58:30,315 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77 -2025-05-04 11:58:30,315 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}} -2025-05-04 11:58:30,320 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000} -2025-05-04 11:58:30,326 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX" -2025-05-04 11:58:32,974 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'... -2025-05-04 11:58:33,028 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy OKXRegressionStrategy from '/freqtrade/templates/OKXRegressionStrategy.py'... -2025-05-04 11:58:33,028 - freqtrade.strategy.hyper - INFO - Found no parameter file. -2025-05-04 11:58:33,029 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m. -2025-05-04 11:58:33,029 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05. -2025-05-04 11:58:33,030 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT. -2025-05-04 11:58:33,030 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150. -2025-05-04 11:58:33,030 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30. -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'unfilledtimeout' with value in config file: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': +2025-05-04 12:38:01,174 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b +2025-05-04 12:38:01,380 - numexpr.utils - INFO - NumExpr defaulting to 12 threads. +2025-05-04 12:38:02,816 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_freqai.okx.json ... +2025-05-04 12:38:02,818 - freqtrade.loggers - INFO - Enabling colorized output. +2025-05-04 12:38:02,818 - root - INFO - Logfile configured +2025-05-04 12:38:02,819 - freqtrade.loggers - INFO - Verbosity set to 0 +2025-05-04 12:38:02,819 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates +2025-05-04 12:38:02,819 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ... +2025-05-04 12:38:02,820 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ... +2025-05-04 12:38:02,820 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250407-20250415 ... +2025-05-04 12:38:02,846 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ... +2025-05-04 12:38:02,846 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ... +2025-05-04 12:38:02,847 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ... +2025-05-04 12:38:02,847 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250407-20250415 +2025-05-04 12:38:02,848 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor +2025-05-04 12:38:02,849 - freqtrade.exchange.check_exchange - INFO - Checking exchange... +2025-05-04 12:38:02,855 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team. +2025-05-04 12:38:02,856 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration. +2025-05-04 12:38:02,856 - freqtrade.configuration.config_validation - INFO - Validating configuration ... +2025-05-04 12:38:02,858 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode +2025-05-04 12:38:02,859 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled +2025-05-04 12:38:02,859 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77 +2025-05-04 12:38:02,859 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}} +2025-05-04 12:38:02,864 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000} +2025-05-04 12:38:02,870 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX" +2025-05-04 12:38:05,789 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'... +2025-05-04 12:38:05,841 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy OKXRegressionStrategy from '/freqtrade/templates/OKXRegressionStrategy.py'... +2025-05-04 12:38:05,842 - freqtrade.strategy.hyper - INFO - Found no parameter file. +2025-05-04 12:38:05,842 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m. +2025-05-04 12:38:05,843 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05. +2025-05-04 12:38:05,843 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT. +2025-05-04 12:38:05,843 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150. +2025-05-04 12:38:05,844 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30. +2025-05-04 12:38:05,844 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'unfilledtimeout' with value in config file: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'}. -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4. -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {} -2025-05-04 11:58:33,031 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m -2025-05-04 11:58:33,032 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05 -2025-05-04 11:58:33,032 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True -2025-05-04 11:58:33,032 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01 -2025-05-04 11:58:33,033 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0 -2025-05-04 11:58:33,033 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False -2025-05-04 11:58:33,033 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, +2025-05-04 12:38:05,844 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4. +2025-05-04 12:38:05,845 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {} +2025-05-04 12:38:05,845 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m +2025-05-04 12:38:05,845 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05 +2025-05-04 12:38:05,846 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True +2025-05-04 12:38:05,846 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01 +2025-05-04 12:38:05,846 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0 +2025-05-04 12:38:05,847 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False +2025-05-04 12:38:05,847 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False +2025-05-04 12:38:05,847 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True +2025-05-04 12:38:05,848 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_types: {'entry': 'limit', 'exit': 'limit', 'stoploss': 'limit', 'stoploss_on_exchange': False, 'stoploss_on_exchange_interval': 60} -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'} -2025-05-04 11:58:33,034 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT -2025-05-04 11:58:33,035 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150 -2025-05-04 11:58:33,035 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30 -2025-05-04 11:58:33,035 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'} -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False -2025-05-04 11:58:33,036 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0 -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0 -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False -2025-05-04 11:58:33,037 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1 -2025-05-04 11:58:33,038 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4 -2025-05-04 11:58:33,038 - freqtrade.configuration.config_validation - INFO - Validating configuration ... -2025-05-04 11:58:33,042 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'... -2025-05-04 11:58:33,048 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config. -2025-05-04 11:58:33,049 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 -2025-05-04 11:58:33,049 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ... -2025-05-04 11:58:33,197 - freqtrade.optimize.backtesting - INFO - Loading data from 2025-01-06 21:30:00 up to 2025-04-15 00:00:00 (98 days). -2025-05-04 11:58:33,197 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators -2025-05-04 11:58:33,198 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy OKXRegressionStrategy -2025-05-04 11:58:34,759 - matplotlib.font_manager - INFO - generated new fontManager -2025-05-04 11:58:34,966 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'... -2025-05-04 11:58:34,966 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch -2025-05-04 11:58:34,967 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch -2025-05-04 11:58:34,967 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT', 'TON/USDT'] -2025-05-04 11:58:34,968 - freqtrade.strategy.hyper - INFO - No params for buy found, using default values. -2025-05-04 11:58:34,968 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_period = 14 -2025-05-04 11:58:34,969 - freqtrade.strategy.hyper - INFO - No params for sell found, using default values. -2025-05-04 11:58:34,969 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_multiplier = 2.0 -2025-05-04 11:58:34,970 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values. -2025-05-04 11:58:34,975 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges -2025-05-04 11:58:34,976 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains -2025-05-04 11:58:34,977 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at +2025-05-04 12:38:05,848 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'} +2025-05-04 12:38:05,848 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT +2025-05-04 12:38:05,849 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150 +2025-05-04 12:38:05,849 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30 +2025-05-04 12:38:05,849 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'} +2025-05-04 12:38:05,850 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True +2025-05-04 12:38:05,850 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False +2025-05-04 12:38:05,850 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False +2025-05-04 12:38:05,851 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0 +2025-05-04 12:38:05,851 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False +2025-05-04 12:38:05,851 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0 +2025-05-04 12:38:05,852 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False +2025-05-04 12:38:05,852 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1 +2025-05-04 12:38:05,852 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4 +2025-05-04 12:38:05,853 - freqtrade.configuration.config_validation - INFO - Validating configuration ... +2025-05-04 12:38:05,857 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'... +2025-05-04 12:38:05,862 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config. +2025-05-04 12:38:05,863 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 +2025-05-04 12:38:05,863 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ... +2025-05-04 12:38:06,006 - freqtrade.optimize.backtesting - INFO - Loading data from 2025-01-06 21:30:00 up to 2025-04-15 00:00:00 (98 days). +2025-05-04 12:38:06,007 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators +2025-05-04 12:38:06,008 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy OKXRegressionStrategy +2025-05-04 12:38:07,597 - matplotlib.font_manager - INFO - generated new fontManager +2025-05-04 12:38:07,798 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'... +2025-05-04 12:38:07,799 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch +2025-05-04 12:38:07,799 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch +2025-05-04 12:38:07,799 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT', 'TON/USDT'] +2025-05-04 12:38:07,800 - freqtrade.strategy.hyper - INFO - No params for buy found, using default values. +2025-05-04 12:38:07,801 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_period = 14 +2025-05-04 12:38:07,801 - freqtrade.strategy.hyper - INFO - No params for sell found, using default values. +2025-05-04 12:38:07,802 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_multiplier = 2.0 +2025-05-04 12:38:07,802 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values. +2025-05-04 12:38:07,808 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges +2025-05-04 12:38:07,809 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains +2025-05-04 12:38:07,810 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at /freqtrade/user_data/models/test175/backtesting_predictions/cb_okb_1743984000_prediction.feather -2025-05-04 11:58:35,224 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 -2025-05-04 11:58:35,224 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 -2025-05-04 11:58:35,416 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 -2025-05-04 11:58:35,417 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 +2025-05-04 12:38:08,058 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 +2025-05-04 12:38:08,059 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 +2025-05-04 12:38:08,253 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250 +2025-05-04 12:38:08,254 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 3m from 2025-01-06 21:30:00 to 2025-04-15 00:00:00 /freqtrade/templates/OKXRegressionStrategy.py:246: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead. dataframe = dataframe.fillna(method="ffill").fillna(0) /freqtrade/templates/OKXRegressionStrategy.py:246: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead. dataframe = dataframe.fillna(method="ffill").fillna(0) -2025-05-04 11:58:41,469 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000 -2025-05-04 11:58:41,470 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT -------------------- -2025-05-04 11:58:41,593 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200. -2025-05-04 11:58:41,594 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- -2025-05-04 11:58:41,650 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] -2025-05-04 11:58:41,702 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features -2025-05-04 11:58:41,702 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points +2025-05-04 12:38:14,204 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000 +2025-05-04 12:38:14,205 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT -------------------- +2025-05-04 12:38:14,334 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200. +2025-05-04 12:38:14,334 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- +2025-05-04 12:38:14,391 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] +2025-05-04 12:38:14,444 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features +2025-05-04 12:38:14,444 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points [99] validation_0-rmse:0.09103 validation_1-rmse:0.09003 -2025-05-04 11:59:48,077 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (66.61 secs) -------------------- -2025-05-04 11:59:48,295 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000--s_close.html -2025-05-04 11:59:48,295 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. -2025-05-04 11:59:48,357 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None -2025-05-04 11:59:48,442 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges -2025-05-04 11:59:48,443 - freqtrade.freqai.freqai_interface - INFO - Training TON/USDT, 2/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains -2025-05-04 11:59:48,444 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at +2025-05-04 12:41:04,061 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (169.86 secs) -------------------- +2025-05-04 12:41:04,283 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743984000/cb_okb_1743984000--s_close.html +2025-05-04 12:41:04,283 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. +2025-05-04 12:41:04,345 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None +2025-05-04 12:41:04,441 - freqtrade.freqai.freqai_interface - INFO - Training 1 timeranges +2025-05-04 12:41:04,442 - freqtrade.freqai.freqai_interface - INFO - Training TON/USDT, 2/2 pairs from 2025-01-07 00:00:00 to 2025-04-07 00:00:00, 1/1 trains +2025-05-04 12:41:04,443 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at /freqtrade/user_data/models/test175/backtesting_predictions/cb_ton_1743984000_prediction.feather /freqtrade/templates/OKXRegressionStrategy.py:246: FutureWarning: @@ -115,20 +115,20 @@ DataFrame.fillna with 'method' is deprecated and will raise in a future version. DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead. -2025-05-04 11:59:54,567 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000 -2025-05-04 11:59:54,568 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training TON/USDT -------------------- -2025-05-04 11:59:54,684 - freqtrade.freqai.data_kitchen - INFO - TON/USDT: dropped 0 training points due to NaNs in populated dataset 43200. -2025-05-04 11:59:54,685 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- -2025-05-04 11:59:54,741 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] -2025-05-04 11:59:54,791 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features -2025-05-04 11:59:54,791 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points +2025-05-04 12:41:10,679 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000 +2025-05-04 12:41:10,680 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training TON/USDT -------------------- +2025-05-04 12:41:10,811 - freqtrade.freqai.data_kitchen - INFO - TON/USDT: dropped 0 training points due to NaNs in populated dataset 43200. +2025-05-04 12:41:10,812 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-07 to 2025-04-06 -------------------- +2025-05-04 12:41:10,870 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day'] +2025-05-04 12:41:10,921 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 181 features +2025-05-04 12:41:10,922 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points [99] validation_0-rmse:0.12193 validation_1-rmse:0.12248 -2025-05-04 12:01:00,801 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training TON/USDT (66.23 secs) -------------------- -2025-05-04 12:01:00,836 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000--s_close.html -2025-05-04 12:01:00,836 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. -2025-05-04 12:01:00,894 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None -2025-05-04 12:01:00,976 - freqtrade.optimize.backtesting - INFO - Backtesting with data from 2025-04-07 00:00:00 up to 2025-04-15 00:00:00 (8 days). -2025-05-04 12:01:01,168 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-04_12-01-01.meta.json" +2025-05-04 12:44:08,729 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training TON/USDT (178.05 secs) -------------------- +2025-05-04 12:44:08,769 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-TON_1743984000/cb_ton_1743984000--s_close.html +2025-05-04 12:44:08,769 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk. +2025-05-04 12:44:08,831 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None +2025-05-04 12:44:08,923 - freqtrade.optimize.backtesting - INFO - Backtesting with data from 2025-04-07 00:00:00 up to 2025-04-15 00:00:00 (8 days). +2025-05-04 12:44:09,123 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-04_12-44-09.meta.json" Result for strategy OKXRegressionStrategy BACKTESTING REPORT ┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓