终于盈利了
This commit is contained in:
parent
1c64341afd
commit
67f41b28c7
@ -72,6 +72,5 @@ services:
|
||||
--strategy FreqaiExampleStrategy
|
||||
--timerange 20250401-20250415
|
||||
--export trades
|
||||
--freqai-backtest
|
||||
--fee 0.0008
|
||||
--cache none
|
||||
|
||||
@ -34,7 +34,7 @@ class FreqaiExampleStrategy(IStrategy):
|
||||
"model": "XGBoostRegressor", # 与config保持一致
|
||||
"save_backtest_models": True,
|
||||
"feature_parameters": {
|
||||
"include_timeframes": ["3m", "15m", "1h"], # 与config一致
|
||||
"include_timeframes": ["3m", "15m", "1h"], # 与config一致:w
|
||||
"include_corr_pairlist": ["BTC/USDT", "SOL/USDT"], # 添加相关交易对
|
||||
"label_period_candles": 20, # 与config一致
|
||||
"include_shifted_candles": 2, # 与config一致
|
||||
@ -182,6 +182,10 @@ class FreqaiExampleStrategy(IStrategy):
|
||||
|
||||
# 确保 &-buy_rsi 列的值计算正确
|
||||
dataframe["&-buy_rsi"] = ta.RSI(dataframe, timeperiod=14)
|
||||
if "&-buy_rsi_pred" not in dataframe.columns:
|
||||
logger.warning("&-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代")
|
||||
dataframe["&-buy_rsi_pred"] = dataframe["&-buy_rsi"].rolling(window=10).mean().clip(20, 40)
|
||||
dataframe["&-buy_rsi_pred"] = dataframe["&-buy_rsi_pred"].fillna(dataframe["&-buy_rsi_pred"].median())
|
||||
|
||||
# 数据清理
|
||||
for col in ["&-buy_rsi", "up_or_down", "%-volatility"]:
|
||||
@ -204,7 +208,7 @@ class FreqaiExampleStrategy(IStrategy):
|
||||
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
||||
logger.info(f"处理交易对:{metadata['pair']}")
|
||||
dataframe = self.freqai.start(dataframe, metadata, self)
|
||||
|
||||
|
||||
# 计算传统指标
|
||||
dataframe["rsi"] = ta.RSI(dataframe, timeperiod=14)
|
||||
bollinger = qtpylib.bollinger_bands(qtpylib.typical_price(dataframe), window=20, stds=2)
|
||||
@ -212,97 +216,101 @@ class FreqaiExampleStrategy(IStrategy):
|
||||
dataframe["bb_middleband"] = bollinger["mid"]
|
||||
dataframe["bb_upperband"] = bollinger["upper"]
|
||||
dataframe["tema"] = ta.TEMA(dataframe, timeperiod=9)
|
||||
|
||||
|
||||
# 生成 up_or_down 信号(非 FreqAI 目标)
|
||||
label_period = self.freqai_info["feature_parameters"]["label_period_candles"]
|
||||
# 使用未来价格变化方向生成 up_or_down 信号
|
||||
label_period = self.freqai_info["feature_parameters"]["label_period_candles"]
|
||||
dataframe["up_or_down"] = np.where(
|
||||
dataframe["close"].shift(-label_period) > dataframe["close"], 1, 0
|
||||
)
|
||||
|
||||
# 动态设置参数
|
||||
|
||||
# 确保 do_predict 列存在并填充默认值
|
||||
if "do_predict" not in dataframe.columns:
|
||||
dataframe["do_predict"] = 0
|
||||
logger.warning("do_predict 列不存在,已创建并填充为 0。")
|
||||
|
||||
# 添加详细日志以验证 do_predict 的值
|
||||
if "do_predict" in dataframe.columns:
|
||||
logger.debug(f"do_predict 列存在,前5行预览:\n{dataframe[['do_predict']].head().to_string()}")
|
||||
else:
|
||||
logger.warning("do_predict 列不存在,可能未正确加载模型或进行预测。")
|
||||
|
||||
# 确保 &-buy_rsi_pred 存在(如果模型未提供则模拟生成)
|
||||
if "&-buy_rsi" in dataframe.columns:
|
||||
# 派生其他目标
|
||||
dataframe["&-sell_rsi"] = dataframe["&-buy_rsi"] + 30
|
||||
dataframe["%-volatility"] = dataframe["close"].pct_change().rolling(20).std()
|
||||
# Ensure proper calculation and handle potential NaN values
|
||||
dataframe["&-stoploss"] = (-0.1 - (dataframe["%-volatility"] * 10).clip(0, 0.25)).fillna(-0.1)
|
||||
dataframe["&-roi_0"] = ((dataframe["close"] / dataframe["close"].shift(label_period) - 1).clip(0, 0.2)).fillna(0)
|
||||
dataframe["&-buy_rsi_pred"] = dataframe["&-buy_rsi"].rolling(window=10).mean().clip(20, 40)
|
||||
dataframe["&-buy_rsi_pred"] = dataframe["&-buy_rsi_pred"].fillna(dataframe["&-buy_rsi_pred"].median())
|
||||
else:
|
||||
logger.warning("&-buy_rsi 列不存在,无法生成 &-buy_rsi_pred,将使用默认值")
|
||||
dataframe["&-buy_rsi_pred"] = 27 # 默认 RSI 买入阈值
|
||||
|
||||
# Additional check to ensure no NaN values remain
|
||||
for col in ["&-stoploss", "&-roi_0"]:
|
||||
if dataframe[col].isna().any():
|
||||
logger.warning(f"列 {col} 仍包含 NaN,填充为默认值")
|
||||
dataframe[col] = dataframe[col].fillna(-0.1 if col == "&-stoploss" else 0)
|
||||
|
||||
# 简化动态参数生成逻辑
|
||||
# 放松 buy_rsi 和 sell_rsi 的生成逻辑
|
||||
# 计算 buy_rsi_pred 并清理 NaN 值
|
||||
dataframe["buy_rsi_pred"] = dataframe["rsi"].rolling(window=10).mean().clip(30, 50)
|
||||
dataframe["buy_rsi_pred"] = dataframe["buy_rsi_pred"].fillna(dataframe["buy_rsi_pred"].median())
|
||||
# 生成 &-sell_rsi_pred(基于 buy_rsi_pred + 偏移量)
|
||||
if "&-buy_rsi_pred" in dataframe.columns:
|
||||
dataframe["&-sell_rsi_pred"] = dataframe["&-buy_rsi_pred"] + 20
|
||||
dataframe["&-sell_rsi_pred"] = dataframe["&-sell_rsi_pred"].clip(50, 90)
|
||||
dataframe["&-sell_rsi_pred"] = dataframe["&-sell_rsi_pred"].fillna(dataframe["&-sell_rsi_pred"].median())
|
||||
else:
|
||||
logger.warning("&-buy_rsi_pred 列不存在,无法生成 &-sell_rsi_pred,将使用默认值")
|
||||
dataframe["&-sell_rsi_pred"] = 59 # 默认 RSI 卖出阈值
|
||||
|
||||
# 计算 sell_rsi_pred 并清理 NaN 值
|
||||
dataframe["sell_rsi_pred"] = dataframe["buy_rsi_pred"] + 20
|
||||
dataframe["sell_rsi_pred"] = dataframe["sell_rsi_pred"].fillna(dataframe["sell_rsi_pred"].median())
|
||||
# 生成 stoploss_pred(基于波动率)
|
||||
dataframe["%-volatility"] = dataframe["close"].pct_change().rolling(20).std()
|
||||
dataframe["&-stoploss"] = (-0.1 - (dataframe["%-volatility"] * 10).clip(0, 0.25)).fillna(-0.1)
|
||||
dataframe["&-stoploss"] = dataframe["&-stoploss"].clip(-0.35, -0.1)
|
||||
|
||||
# 计算 stoploss_pred 并清理 NaN 值
|
||||
dataframe["stoploss_pred"] = -0.1 - (dataframe["%-volatility"] * 10).clip(0, 0.25)
|
||||
dataframe["stoploss_pred"] = dataframe["stoploss_pred"].fillna(dataframe["stoploss_pred"].mean())
|
||||
# 生成 roi_0_pred(基于 ROI 参数)
|
||||
dataframe["&-roi_0"] = ((dataframe["close"] / dataframe["close"].shift(label_period) - 1).clip(0, 0.2)).fillna(0)
|
||||
|
||||
# 计算 roi_0_pred 并清理 NaN 值
|
||||
dataframe["roi_0_pred"] = dataframe["&-roi_0"].clip(0.01, 0.2)
|
||||
dataframe["roi_0_pred"] = dataframe["roi_0_pred"].fillna(dataframe["roi_0_pred"].mean())
|
||||
|
||||
# 检查预测值
|
||||
for col in ["buy_rsi_pred", "sell_rsi_pred", "stoploss_pred", "roi_0_pred", "&-sell_rsi", "&-stoploss", "&-roi_0"]:
|
||||
if dataframe[col].isna().any():
|
||||
logger.warning(f"列 {col} 包含 NaN,填充为默认值")
|
||||
dataframe[col] = dataframe[col].fillna(dataframe[col].mean())
|
||||
|
||||
# 更保守的止损和止盈设置
|
||||
dataframe["trailing_stop_positive"] = (dataframe["roi_0_pred"] * 0.3).clip(0.01, 0.2)
|
||||
dataframe["trailing_stop_positive_offset"] = (dataframe["roi_0_pred"] * 0.5).clip(0.01, 0.3)
|
||||
|
||||
# 设置策略级参数
|
||||
self.buy_rsi.value = float(dataframe["buy_rsi_pred"].iloc[-1])
|
||||
self.sell_rsi.value = float(dataframe["sell_rsi_pred"].iloc[-1])
|
||||
# 更保守的止损设置
|
||||
self.stoploss = -0.15 # 固定止损 15%
|
||||
self.minimal_roi = {
|
||||
0: float(self.roi_0.value),
|
||||
15: float(self.roi_15.value),
|
||||
30: float(self.roi_30.value),
|
||||
60: 0
|
||||
}
|
||||
# 更保守的追踪止损设置
|
||||
self.trailing_stop_positive = 0.05 # 追踪止损触发点
|
||||
self.trailing_stop_positive_offset = 0.1 # 追踪止损偏移量
|
||||
|
||||
logger.info(f"动态参数:buy_rsi={self.buy_rsi.value}, sell_rsi={self.sell_rsi.value}, "
|
||||
f"stoploss={self.stoploss}, trailing_stop_positive={self.trailing_stop_positive}")
|
||||
|
||||
# 设置策略级参数
|
||||
try:
|
||||
self.buy_rsi.value = float(dataframe["&-buy_rsi_pred"].iloc[-1])
|
||||
self.sell_rsi.value = float(dataframe["&-sell_rsi_pred"].iloc[-1])
|
||||
except Exception as e:
|
||||
logger.error(f"设置 buy_rsi/sell_rsi 失败:{str(e)}")
|
||||
self.buy_rsi.value = 27
|
||||
self.sell_rsi.value = 59
|
||||
|
||||
self.stoploss = -0.15 # 固定止损 15%
|
||||
self.minimal_roi = {
|
||||
0: float(self.roi_0.value),
|
||||
15: float(self.roi_15.value),
|
||||
30: float(self.roi_30.value),
|
||||
60: 0
|
||||
}
|
||||
|
||||
# 更保守的追踪止损设置
|
||||
self.trailing_stop_positive = 0.05 # 追踪止损触发点
|
||||
self.trailing_stop_positive_offset = 0.1 # 追踪止损偏移量
|
||||
|
||||
logger.info(f"动态参数:buy_rsi={self.buy_rsi.value}, sell_rsi={self.sell_rsi.value}, "
|
||||
f"stoploss={self.stoploss}, trailing_stop_positive={self.trailing_stop_positive}")
|
||||
|
||||
# 数据清理
|
||||
dataframe.replace([np.inf, -np.inf], 0, inplace=True)
|
||||
dataframe.ffill(inplace=True)
|
||||
dataframe.fillna(0, inplace=True)
|
||||
|
||||
logger.info(f"up_or_down 值统计:\n{dataframe['up_or_down'].value_counts().to_string()}")
|
||||
logger.info(f"do_predict 值统计:\n{dataframe['do_predict'].value_counts().to_string()}")
|
||||
|
||||
return dataframe
|
||||
|
||||
return dataframe
|
||||
def populate_exit_trend(self, df: DataFrame, metadata: dict) -> DataFrame:
|
||||
# 改进卖出信号条件
|
||||
exit_long_conditions = [
|
||||
(df["rsi"] > df["sell_rsi_pred"]), # RSI 高于卖出阈值
|
||||
(df["rsi"] > df["&-sell_rsi_pred"]), # RSI 高于卖出阈值
|
||||
(df["volume"] > df["volume"].rolling(window=10).mean()), # 成交量高于近期均值
|
||||
(df["close"] < df["bb_middleband"]) # 价格低于布林带中轨
|
||||
]
|
||||
# 添加详细日志以验证 do_predict 的值
|
||||
if "do_predict" in df.columns:
|
||||
logger.debug(f"do_predict 列存在,前5行预览:\n{df[['do_predict']].head().to_string()}")
|
||||
else:
|
||||
logger.warning("do_predict 列不存在,可能未正确加载模型或进行预测。")
|
||||
|
||||
if exit_long_conditions:
|
||||
df.loc[
|
||||
reduce(lambda x, y: x & y, exit_long_conditions),
|
||||
"exit_long"
|
||||
] = 1
|
||||
if "&-buy_rsi_pred" in df.columns:
|
||||
logger.debug(f"&-buy_rsi_pred 列存在,前5行预览:\n{df[['&-buy_rsi_pred']].head().to_string()}")
|
||||
else:
|
||||
logger.warning("&-buy_rsi_pred 列不存在,可能未正确生成或被覆盖。")
|
||||
return df
|
||||
def populate_entry_trend(self, df: DataFrame, metadata: dict) -> DataFrame:
|
||||
# 改进买入信号条件
|
||||
@ -320,7 +328,7 @@ class FreqaiExampleStrategy(IStrategy):
|
||||
raise ValueError("DataFrame 缺少必要的 MACD 列且无法重新计算。")
|
||||
|
||||
enter_long_conditions = [
|
||||
(df["rsi"] < df["buy_rsi_pred"]), # RSI 低于买入阈值
|
||||
(df["rsi"] < df["&-buy_rsi_pred"]), # RSI 低于买入阈值
|
||||
(df["volume"] > df["volume"].rolling(window=10).mean() * 1.2), # 成交量高于近期均值20%
|
||||
(df["close"] > df["bb_middleband"]) # 价格高于布林带中轨
|
||||
]
|
||||
@ -331,12 +339,20 @@ class FreqaiExampleStrategy(IStrategy):
|
||||
|
||||
# 确保模型预测为买入
|
||||
enter_long_conditions.append((df["do_predict"] == 1))
|
||||
|
||||
# 添加详细日志以验证 do_predict 的值
|
||||
if "do_predict" in df.columns:
|
||||
logger.debug(f"do_predict 列存在,前5行预览:\n{df[['do_predict']].head().to_string()}")
|
||||
else:
|
||||
logger.warning("do_predict 列不存在,可能未正确加载模型或进行预测。")
|
||||
|
||||
if enter_long_conditions:
|
||||
df.loc[
|
||||
reduce(lambda x, y: x & y, enter_long_conditions),
|
||||
["enter_long", "enter_tag"]
|
||||
] = (1, "long")
|
||||
return df
|
||||
|
||||
def confirm_trade_entry(
|
||||
self, pair: str, order_type: str, amount: float, rate: float,
|
||||
time_in_force: str, current_time, entry_tag, side: str, **kwargs
|
||||
|
||||
759
output.log
759
output.log
@ -1,25 +1,738 @@
|
||||
Creating freqtrade_old_freqtrade_run ...
|
||||
Creating freqtrade_old_freqtrade_run ... done
|
||||
2025-05-07 10:51:57,668 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b
|
||||
2025-05-07 10:51:57,890 - numexpr.utils - INFO - NumExpr defaulting to 12 threads.
|
||||
2025-05-07 10:51:59,365 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_my_hyperopt.json ...
|
||||
2025-05-07 10:51:59,367 - freqtrade.loggers - INFO - Enabling colorized output.
|
||||
2025-05-07 10:51:59,368 - root - INFO - Logfile configured
|
||||
2025-05-07 10:51:59,368 - freqtrade.loggers - INFO - Verbosity set to 0
|
||||
2025-05-07 10:51:59,369 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates
|
||||
2025-05-07 10:51:59,369 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ...
|
||||
2025-05-07 10:51:59,369 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ...
|
||||
2025-05-07 10:51:59,370 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250401-20250415 ...
|
||||
2025-05-07 10:51:59,395 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...
|
||||
2025-05-07 10:51:59,396 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ...
|
||||
2025-05-07 10:51:59,396 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...
|
||||
2025-05-07 10:51:59,397 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ...
|
||||
2025-05-07 10:51:59,397 - freqtrade.configuration.configuration - INFO - Parameter --freqai-backtest-live-models detected ...
|
||||
2025-05-07 10:51:59,398 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250401-20250415
|
||||
2025-05-07 10:51:59,398 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor
|
||||
2025-05-07 10:51:59,399 - freqtrade.exchange.check_exchange - INFO - Checking exchange...
|
||||
2025-05-07 10:51:59,405 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team.
|
||||
2025-05-07 10:51:59,405 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.
|
||||
2025-05-07 10:51:59,406 - freqtrade - ERROR - Configuration error: Using timerange parameter is not supported with --freqai-backtest-live-models parameter.
|
||||
Please make sure to review the documentation at https://www.freqtrade.io/en/stable.
|
||||
1
|
||||
2025-05-07 13:20:00,263 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b
|
||||
2025-05-07 13:20:00,482 - numexpr.utils - INFO - NumExpr defaulting to 12 threads.
|
||||
2025-05-07 13:20:01,995 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_my_hyperopt.json ...
|
||||
2025-05-07 13:20:01,997 - freqtrade.loggers - INFO - Enabling colorized output.
|
||||
2025-05-07 13:20:01,998 - root - INFO - Logfile configured
|
||||
2025-05-07 13:20:01,998 - freqtrade.loggers - INFO - Verbosity set to 0
|
||||
2025-05-07 13:20:01,999 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates
|
||||
2025-05-07 13:20:01,999 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ...
|
||||
2025-05-07 13:20:02,000 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ...
|
||||
2025-05-07 13:20:02,000 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250401-20250415 ...
|
||||
2025-05-07 13:20:02,034 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...
|
||||
2025-05-07 13:20:02,035 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ...
|
||||
2025-05-07 13:20:02,035 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...
|
||||
2025-05-07 13:20:02,035 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ...
|
||||
2025-05-07 13:20:02,036 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250401-20250415
|
||||
2025-05-07 13:20:02,036 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor
|
||||
2025-05-07 13:20:02,037 - freqtrade.exchange.check_exchange - INFO - Checking exchange...
|
||||
2025-05-07 13:20:02,045 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team.
|
||||
2025-05-07 13:20:02,045 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.
|
||||
2025-05-07 13:20:02,045 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-07 13:20:02,047 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode
|
||||
2025-05-07 13:20:02,048 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled
|
||||
2025-05-07 13:20:02,048 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77
|
||||
2025-05-07 13:20:02,049 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}}
|
||||
2025-05-07 13:20:02,054 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000}
|
||||
2025-05-07 13:20:02,060 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX"
|
||||
2025-05-07 13:20:05,055 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'...
|
||||
2025-05-07 13:20:05,118 - freqtrade.resolvers.iresolver - WARNING - Could not import /freqtrade/templates/BaseHyperOptStrategy.py due to 'invalid syntax (BaseHyperOptStrategy.py, line 190)'
|
||||
2025-05-07 13:20:05,121 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy FreqaiExampleStrategy from '/freqtrade/templates/FreqaiExampleStrategy.py'...
|
||||
2025-05-07 13:20:05,121 - freqtrade.strategy.hyper - INFO - Loading parameters from file /freqtrade/templates/FreqaiExampleStrategy.json
|
||||
2025-05-07 13:20:05,122 - FreqaiExampleStrategy - INFO - FreqAI 模型路径:/freqtrade/user_data/models
|
||||
2025-05-07 13:20:05,122 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m.
|
||||
2025-05-07 13:20:05,123 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05.
|
||||
2025-05-07 13:20:05,123 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT.
|
||||
2025-05-07 13:20:05,123 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150.
|
||||
2025-05-07 13:20:05,124 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30.
|
||||
2025-05-07 13:20:05,124 - 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-07 13:20:05,124 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'use_exit_signal' with value in config file: True.
|
||||
2025-05-07 13:20:05,124 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4.
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {'0': 0.132, '8': 0.047, '14': 0.007, '60': 0}
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.02
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False
|
||||
2025-05-07 13:20:05,127 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True
|
||||
2025-05-07 13:20:05,127 - 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-07 13:20:05,127 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'}
|
||||
2025-05-07 13:20:05,129 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True
|
||||
2025-05-07 13:20:05,129 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False
|
||||
2025-05-07 13:20:05,129 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False
|
||||
2025-05-07 13:20:05,130 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0
|
||||
2025-05-07 13:20:05,130 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False
|
||||
2025-05-07 13:20:05,131 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0
|
||||
2025-05-07 13:20:05,131 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False
|
||||
2025-05-07 13:20:05,131 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1
|
||||
2025-05-07 13:20:05,132 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4
|
||||
2025-05-07 13:20:05,132 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-07 13:20:05,136 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'...
|
||||
2025-05-07 13:20:05,141 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config.
|
||||
2025-05-07 13:20:05,142 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-07 13:20:05,143 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ...
|
||||
2025-05-07 13:20:05,236 - freqtrade.optimize.backtesting - INFO - Loading data from 2024-12-31 21:30:00 up to 2025-04-15 00:00:00 (104 days).
|
||||
2025-05-07 13:20:05,237 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators
|
||||
2025-05-07 13:20:05,238 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy FreqaiExampleStrategy
|
||||
2025-05-07 13:20:06,903 - matplotlib.font_manager - INFO - generated new fontManager
|
||||
2025-05-07 13:20:07,121 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'...
|
||||
2025-05-07 13:20:07,122 - freqtrade.freqai.freqai_interface - INFO - Backtesting module configured to save all models.
|
||||
2025-05-07 13:20:07,123 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch
|
||||
2025-05-07 13:20:07,123 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch
|
||||
2025-05-07 13:20:07,123 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT']
|
||||
2025-05-07 13:20:07,124 - freqtrade.strategy.hyper - INFO - Strategy Parameter: buy_rsi = 39.92672300850069
|
||||
2025-05-07 13:20:07,125 - freqtrade.strategy.hyper - INFO - Strategy Parameter: sell_rsi = 69.92672300850067
|
||||
2025-05-07 13:20:07,125 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values.
|
||||
2025-05-07 13:20:07,130 - FreqaiExampleStrategy - INFO - 处理交易对:OKB/USDT
|
||||
2025-05-07 13:20:07,133 - freqtrade.freqai.freqai_interface - INFO - Training 2 timeranges
|
||||
2025-05-07 13:20:07,134 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/1 pairs from 2025-01-01 00:00:00 to 2025-04-01 00:00:00, 1/2 trains
|
||||
2025-05-07 13:20:07,135 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at
|
||||
/freqtrade/user_data/models/test175/backtesting_predictions/cb_okb_1743465600_prediction.feather
|
||||
2025-05-07 13:20:07,161 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,195 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,225 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,325 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-07 13:20:07,325 - freqtrade.data.dataprovider - INFO - Loading data for OKB/USDT 5m from 2024-12-31 19:50:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,383 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,402 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,421 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,507 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-07 13:20:07,508 - freqtrade.data.dataprovider - INFO - Loading data for OKB/USDT 15m from 2024-12-31 11:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,537 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,548 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,560 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,620 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-07 13:20:07,621 - freqtrade.data.dataprovider - INFO - Loading data for OKB/USDT 1h from 2024-12-29 22:00:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,644 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,653 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,662 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,867 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-07 13:20:07,868 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 3m from 2024-12-31 21:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,944 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,964 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,988 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,104 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-07 13:20:08,105 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 5m from 2024-12-31 19:50:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,154 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,173 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,193 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,332 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-07 13:20:08,333 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 15m from 2024-12-31 11:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,365 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,376 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,386 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,510 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-07 13:20:08,511 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 1h from 2024-12-29 22:00:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,534 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,543 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,552 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,738 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-07 13:20:08,739 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 3m from 2024-12-31 21:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,801 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,821 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,843 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,994 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-07 13:20:08,995 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 5m from 2024-12-31 19:50:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:09,052 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,069 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,090 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,281 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-07 13:20:09,282 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 15m from 2024-12-31 11:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:09,310 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,320 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,331 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,504 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-07 13:20:09,505 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 1h from 2024-12-29 22:00:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:09,527 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,536 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,546 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,758 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:20:09,763 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:20:09,768 - FreqaiExampleStrategy - INFO - 目标列形状:(43250,)
|
||||
2025-05-07 13:20:09,770 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 49.927524
|
||||
1 -0.000203 49.927524
|
||||
2 -0.001218 49.927524
|
||||
3 -0.001218 49.927524
|
||||
4 -0.001015 49.927524
|
||||
2025-05-07 13:20:09,805 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:20:09,810 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:20:09,815 - FreqaiExampleStrategy - INFO - 目标列形状:(48050,)
|
||||
2025-05-07 13:20:09,817 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 50.159589
|
||||
1 -0.000203 50.159589
|
||||
2 -0.001218 50.159589
|
||||
3 -0.001218 50.159589
|
||||
4 -0.001015 50.159589
|
||||
2025-05-07 13:20:09,854 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600
|
||||
2025-05-07 13:20:09,855 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-07 13:20:09,956 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-07 13:20:09,957 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-01 to 2025-03-31 --------------------
|
||||
2025-05-07 13:20:10,066 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 147 features
|
||||
2025-05-07 13:20:10,067 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points
|
||||
[0] validation_0-rmse:0.52065 validation_1-rmse:0.51905
|
||||
[1] validation_0-rmse:0.49877 validation_1-rmse:0.49649
|
||||
[2] validation_0-rmse:0.47799 validation_1-rmse:0.47519
|
||||
[3] validation_0-rmse:0.45904 validation_1-rmse:0.45529
|
||||
[4] validation_0-rmse:0.44097 validation_1-rmse:0.43624
|
||||
[5] validation_0-rmse:0.42452 validation_1-rmse:0.41882
|
||||
[6] validation_0-rmse:0.40868 validation_1-rmse:0.40161
|
||||
[7] validation_0-rmse:0.39362 validation_1-rmse:0.38546
|
||||
[8] validation_0-rmse:0.37982 validation_1-rmse:0.37013
|
||||
[9] validation_0-rmse:0.36676 validation_1-rmse:0.35573
|
||||
[10] validation_0-rmse:0.35434 validation_1-rmse:0.34202
|
||||
[11] validation_0-rmse:0.34248 validation_1-rmse:0.32902
|
||||
[12] validation_0-rmse:0.33158 validation_1-rmse:0.31684
|
||||
[13] validation_0-rmse:0.32126 validation_1-rmse:0.30536
|
||||
[14] validation_0-rmse:0.31162 validation_1-rmse:0.29463
|
||||
[15] validation_0-rmse:0.30266 validation_1-rmse:0.28424
|
||||
[16] validation_0-rmse:0.29447 validation_1-rmse:0.27450
|
||||
[17] validation_0-rmse:0.28630 validation_1-rmse:0.26510
|
||||
[18] validation_0-rmse:0.27877 validation_1-rmse:0.25636
|
||||
[19] validation_0-rmse:0.27196 validation_1-rmse:0.24802
|
||||
[20] validation_0-rmse:0.26580 validation_1-rmse:0.24060
|
||||
[21] validation_0-rmse:0.26006 validation_1-rmse:0.23310
|
||||
[22] validation_0-rmse:0.25429 validation_1-rmse:0.22615
|
||||
[23] validation_0-rmse:0.24900 validation_1-rmse:0.21942
|
||||
[24] validation_0-rmse:0.24420 validation_1-rmse:0.21329
|
||||
[25] validation_0-rmse:0.23976 validation_1-rmse:0.20750
|
||||
[26] validation_0-rmse:0.23562 validation_1-rmse:0.20197
|
||||
[27] validation_0-rmse:0.23166 validation_1-rmse:0.19663
|
||||
[28] validation_0-rmse:0.22800 validation_1-rmse:0.19177
|
||||
[29] validation_0-rmse:0.22461 validation_1-rmse:0.18713
|
||||
[30] validation_0-rmse:0.22145 validation_1-rmse:0.18282
|
||||
[31] validation_0-rmse:0.21849 validation_1-rmse:0.17866
|
||||
[32] validation_0-rmse:0.21547 validation_1-rmse:0.17470
|
||||
[33] validation_0-rmse:0.21304 validation_1-rmse:0.17080
|
||||
[34] validation_0-rmse:0.21079 validation_1-rmse:0.16731
|
||||
[35] validation_0-rmse:0.20859 validation_1-rmse:0.16398
|
||||
[36] validation_0-rmse:0.20666 validation_1-rmse:0.16085
|
||||
[37] validation_0-rmse:0.20488 validation_1-rmse:0.15795
|
||||
[38] validation_0-rmse:0.20291 validation_1-rmse:0.15506
|
||||
[39] validation_0-rmse:0.20147 validation_1-rmse:0.15231
|
||||
[40] validation_0-rmse:0.19998 validation_1-rmse:0.14966
|
||||
[41] validation_0-rmse:0.19875 validation_1-rmse:0.14720
|
||||
[42] validation_0-rmse:0.19734 validation_1-rmse:0.14500
|
||||
[43] validation_0-rmse:0.19615 validation_1-rmse:0.14290
|
||||
[44] validation_0-rmse:0.19512 validation_1-rmse:0.14088
|
||||
[45] validation_0-rmse:0.19400 validation_1-rmse:0.13887
|
||||
[46] validation_0-rmse:0.19309 validation_1-rmse:0.13702
|
||||
[47] validation_0-rmse:0.19213 validation_1-rmse:0.13539
|
||||
[48] validation_0-rmse:0.19108 validation_1-rmse:0.13370
|
||||
[49] validation_0-rmse:0.19027 validation_1-rmse:0.13214
|
||||
[50] validation_0-rmse:0.18953 validation_1-rmse:0.13063
|
||||
[51] validation_0-rmse:0.18882 validation_1-rmse:0.12938
|
||||
[52] validation_0-rmse:0.18816 validation_1-rmse:0.12792
|
||||
[53] validation_0-rmse:0.18743 validation_1-rmse:0.12660
|
||||
[54] validation_0-rmse:0.18667 validation_1-rmse:0.12531
|
||||
[55] validation_0-rmse:0.18602 validation_1-rmse:0.12388
|
||||
[56] validation_0-rmse:0.18539 validation_1-rmse:0.12275
|
||||
[57] validation_0-rmse:0.18480 validation_1-rmse:0.12170
|
||||
[58] validation_0-rmse:0.18429 validation_1-rmse:0.12044
|
||||
[59] validation_0-rmse:0.18364 validation_1-rmse:0.11929
|
||||
[60] validation_0-rmse:0.18319 validation_1-rmse:0.11820
|
||||
[61] validation_0-rmse:0.18279 validation_1-rmse:0.11710
|
||||
[62] validation_0-rmse:0.18230 validation_1-rmse:0.11623
|
||||
[63] validation_0-rmse:0.18183 validation_1-rmse:0.11521
|
||||
[64] validation_0-rmse:0.18152 validation_1-rmse:0.11443
|
||||
[65] validation_0-rmse:0.18117 validation_1-rmse:0.11363
|
||||
[66] validation_0-rmse:0.18072 validation_1-rmse:0.11273
|
||||
[67] validation_0-rmse:0.18036 validation_1-rmse:0.11188
|
||||
[68] validation_0-rmse:0.17988 validation_1-rmse:0.11112
|
||||
[69] validation_0-rmse:0.17958 validation_1-rmse:0.11042
|
||||
[70] validation_0-rmse:0.17906 validation_1-rmse:0.10966
|
||||
[71] validation_0-rmse:0.17885 validation_1-rmse:0.10900
|
||||
[72] validation_0-rmse:0.17856 validation_1-rmse:0.10824
|
||||
[73] validation_0-rmse:0.17826 validation_1-rmse:0.10755
|
||||
[74] validation_0-rmse:0.17804 validation_1-rmse:0.10694
|
||||
[75] validation_0-rmse:0.17770 validation_1-rmse:0.10630
|
||||
[76] validation_0-rmse:0.17752 validation_1-rmse:0.10558
|
||||
[77] validation_0-rmse:0.17715 validation_1-rmse:0.10488
|
||||
[78] validation_0-rmse:0.17680 validation_1-rmse:0.10422
|
||||
[79] validation_0-rmse:0.17647 validation_1-rmse:0.10356
|
||||
[80] validation_0-rmse:0.17624 validation_1-rmse:0.10304
|
||||
[81] validation_0-rmse:0.17610 validation_1-rmse:0.10242
|
||||
[82] validation_0-rmse:0.17593 validation_1-rmse:0.10185
|
||||
[83] validation_0-rmse:0.17571 validation_1-rmse:0.10136
|
||||
[84] validation_0-rmse:0.17551 validation_1-rmse:0.10090
|
||||
[85] validation_0-rmse:0.17525 validation_1-rmse:0.10030
|
||||
[86] validation_0-rmse:0.17506 validation_1-rmse:0.09981
|
||||
[87] validation_0-rmse:0.17464 validation_1-rmse:0.09932
|
||||
[88] validation_0-rmse:0.17447 validation_1-rmse:0.09878
|
||||
[89] validation_0-rmse:0.17433 validation_1-rmse:0.09825
|
||||
[90] validation_0-rmse:0.17417 validation_1-rmse:0.09778
|
||||
[91] validation_0-rmse:0.17400 validation_1-rmse:0.09731
|
||||
[92] validation_0-rmse:0.17382 validation_1-rmse:0.09686
|
||||
[93] validation_0-rmse:0.17382 validation_1-rmse:0.09640
|
||||
[94] validation_0-rmse:0.17366 validation_1-rmse:0.09602
|
||||
[95] validation_0-rmse:0.17347 validation_1-rmse:0.09565
|
||||
[96] validation_0-rmse:0.17341 validation_1-rmse:0.09523
|
||||
[97] validation_0-rmse:0.17308 validation_1-rmse:0.09475
|
||||
[98] validation_0-rmse:0.17296 validation_1-rmse:0.09432
|
||||
[99] validation_0-rmse:0.17290 validation_1-rmse:0.09398
|
||||
[100] validation_0-rmse:0.17274 validation_1-rmse:0.09362
|
||||
[101] validation_0-rmse:0.17263 validation_1-rmse:0.09323
|
||||
[102] validation_0-rmse:0.17244 validation_1-rmse:0.09285
|
||||
[103] validation_0-rmse:0.17229 validation_1-rmse:0.09253
|
||||
[104] validation_0-rmse:0.17218 validation_1-rmse:0.09213
|
||||
[105] validation_0-rmse:0.17211 validation_1-rmse:0.09175
|
||||
[106] validation_0-rmse:0.17199 validation_1-rmse:0.09142
|
||||
[107] validation_0-rmse:0.17184 validation_1-rmse:0.09108
|
||||
[108] validation_0-rmse:0.17162 validation_1-rmse:0.09075
|
||||
[109] validation_0-rmse:0.17158 validation_1-rmse:0.09039
|
||||
[110] validation_0-rmse:0.17143 validation_1-rmse:0.09003
|
||||
[111] validation_0-rmse:0.17131 validation_1-rmse:0.08976
|
||||
[112] validation_0-rmse:0.17120 validation_1-rmse:0.08945
|
||||
[113] validation_0-rmse:0.17108 validation_1-rmse:0.08917
|
||||
[114] validation_0-rmse:0.17100 validation_1-rmse:0.08888
|
||||
[115] validation_0-rmse:0.17092 validation_1-rmse:0.08853
|
||||
[116] validation_0-rmse:0.17086 validation_1-rmse:0.08823
|
||||
[117] validation_0-rmse:0.17071 validation_1-rmse:0.08791
|
||||
[118] validation_0-rmse:0.17065 validation_1-rmse:0.08766
|
||||
[119] validation_0-rmse:0.17055 validation_1-rmse:0.08739
|
||||
[120] validation_0-rmse:0.17042 validation_1-rmse:0.08707
|
||||
[121] validation_0-rmse:0.17032 validation_1-rmse:0.08676
|
||||
[122] validation_0-rmse:0.17015 validation_1-rmse:0.08642
|
||||
[123] validation_0-rmse:0.17013 validation_1-rmse:0.08616
|
||||
[124] validation_0-rmse:0.16997 validation_1-rmse:0.08593
|
||||
[125] validation_0-rmse:0.16984 validation_1-rmse:0.08569
|
||||
[126] validation_0-rmse:0.16978 validation_1-rmse:0.08540
|
||||
[127] validation_0-rmse:0.16969 validation_1-rmse:0.08513
|
||||
[128] validation_0-rmse:0.16961 validation_1-rmse:0.08494
|
||||
[129] validation_0-rmse:0.16954 validation_1-rmse:0.08466
|
||||
[130] validation_0-rmse:0.16941 validation_1-rmse:0.08441
|
||||
[131] validation_0-rmse:0.16928 validation_1-rmse:0.08413
|
||||
[132] validation_0-rmse:0.16923 validation_1-rmse:0.08393
|
||||
[133] validation_0-rmse:0.16903 validation_1-rmse:0.08370
|
||||
[134] validation_0-rmse:0.16898 validation_1-rmse:0.08353
|
||||
[135] validation_0-rmse:0.16891 validation_1-rmse:0.08330
|
||||
[136] validation_0-rmse:0.16883 validation_1-rmse:0.08302
|
||||
[137] validation_0-rmse:0.16879 validation_1-rmse:0.08276
|
||||
[138] validation_0-rmse:0.16874 validation_1-rmse:0.08249
|
||||
[139] validation_0-rmse:0.16865 validation_1-rmse:0.08229
|
||||
[140] validation_0-rmse:0.16862 validation_1-rmse:0.08210
|
||||
[141] validation_0-rmse:0.16859 validation_1-rmse:0.08191
|
||||
[142] validation_0-rmse:0.16846 validation_1-rmse:0.08166
|
||||
[143] validation_0-rmse:0.16839 validation_1-rmse:0.08146
|
||||
[144] validation_0-rmse:0.16829 validation_1-rmse:0.08125
|
||||
[145] validation_0-rmse:0.16826 validation_1-rmse:0.08102
|
||||
[146] validation_0-rmse:0.16822 validation_1-rmse:0.08083
|
||||
[147] validation_0-rmse:0.16812 validation_1-rmse:0.08056
|
||||
[148] validation_0-rmse:0.16808 validation_1-rmse:0.08040
|
||||
[149] validation_0-rmse:0.16798 validation_1-rmse:0.08016
|
||||
[150] validation_0-rmse:0.16789 validation_1-rmse:0.07999
|
||||
[151] validation_0-rmse:0.16784 validation_1-rmse:0.07981
|
||||
[152] validation_0-rmse:0.16782 validation_1-rmse:0.07964
|
||||
[153] validation_0-rmse:0.16776 validation_1-rmse:0.07946
|
||||
[154] validation_0-rmse:0.16770 validation_1-rmse:0.07927
|
||||
[155] validation_0-rmse:0.16766 validation_1-rmse:0.07905
|
||||
[156] validation_0-rmse:0.16759 validation_1-rmse:0.07885
|
||||
[157] validation_0-rmse:0.16791 validation_1-rmse:0.07868
|
||||
[158] validation_0-rmse:0.16790 validation_1-rmse:0.07845
|
||||
[159] validation_0-rmse:0.16784 validation_1-rmse:0.07823
|
||||
[160] validation_0-rmse:0.16778 validation_1-rmse:0.07804
|
||||
[161] validation_0-rmse:0.16773 validation_1-rmse:0.07786
|
||||
[162] validation_0-rmse:0.16768 validation_1-rmse:0.07770
|
||||
[163] validation_0-rmse:0.16767 validation_1-rmse:0.07757
|
||||
[164] validation_0-rmse:0.16760 validation_1-rmse:0.07736
|
||||
[165] validation_0-rmse:0.16749 validation_1-rmse:0.07712
|
||||
[166] validation_0-rmse:0.16747 validation_1-rmse:0.07698
|
||||
[167] validation_0-rmse:0.16745 validation_1-rmse:0.07680
|
||||
[168] validation_0-rmse:0.16742 validation_1-rmse:0.07654
|
||||
[169] validation_0-rmse:0.16739 validation_1-rmse:0.07639
|
||||
[170] validation_0-rmse:0.16730 validation_1-rmse:0.07622
|
||||
[171] validation_0-rmse:0.16727 validation_1-rmse:0.07606
|
||||
[172] validation_0-rmse:0.16721 validation_1-rmse:0.07591
|
||||
[173] validation_0-rmse:0.16720 validation_1-rmse:0.07578
|
||||
[174] validation_0-rmse:0.16713 validation_1-rmse:0.07561
|
||||
[175] validation_0-rmse:0.16708 validation_1-rmse:0.07544
|
||||
[176] validation_0-rmse:0.16700 validation_1-rmse:0.07529
|
||||
[177] validation_0-rmse:0.16692 validation_1-rmse:0.07510
|
||||
[178] validation_0-rmse:0.16689 validation_1-rmse:0.07494
|
||||
[179] validation_0-rmse:0.16688 validation_1-rmse:0.07482
|
||||
[180] validation_0-rmse:0.16678 validation_1-rmse:0.07466
|
||||
[181] validation_0-rmse:0.16672 validation_1-rmse:0.07452
|
||||
[182] validation_0-rmse:0.16663 validation_1-rmse:0.07435
|
||||
[183] validation_0-rmse:0.16661 validation_1-rmse:0.07420
|
||||
[184] validation_0-rmse:0.16658 validation_1-rmse:0.07410
|
||||
[185] validation_0-rmse:0.16658 validation_1-rmse:0.07389
|
||||
[186] validation_0-rmse:0.16644 validation_1-rmse:0.07370
|
||||
[187] validation_0-rmse:0.16641 validation_1-rmse:0.07361
|
||||
[188] validation_0-rmse:0.16632 validation_1-rmse:0.07344
|
||||
[189] validation_0-rmse:0.16629 validation_1-rmse:0.07324
|
||||
[190] validation_0-rmse:0.16621 validation_1-rmse:0.07306
|
||||
[191] validation_0-rmse:0.16619 validation_1-rmse:0.07293
|
||||
[192] validation_0-rmse:0.16608 validation_1-rmse:0.07282
|
||||
[193] validation_0-rmse:0.16605 validation_1-rmse:0.07266
|
||||
[194] validation_0-rmse:0.16601 validation_1-rmse:0.07251
|
||||
[195] validation_0-rmse:0.16597 validation_1-rmse:0.07238
|
||||
[196] validation_0-rmse:0.16593 validation_1-rmse:0.07225
|
||||
[197] validation_0-rmse:0.16590 validation_1-rmse:0.07211
|
||||
[198] validation_0-rmse:0.16587 validation_1-rmse:0.07199
|
||||
[199] validation_0-rmse:0.16585 validation_1-rmse:0.07188
|
||||
2025-05-07 13:22:29,587 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (139.73 secs) --------------------
|
||||
2025-05-07 13:22:29,843 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600--buy_rsi.html
|
||||
2025-05-07 13:22:29,844 - freqtrade.freqai.freqai_interface - INFO - Saving backtest model to disk.
|
||||
2025-05-07 13:22:29,933 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-07 13:22:29,946 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/1 pairs from 2025-01-11 00:00:00 to 2025-04-11 00:00:00, 2/2 trains
|
||||
2025-05-07 13:22:29,946 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at
|
||||
/freqtrade/user_data/models/test175/backtesting_predictions/cb_okb_1744329600_prediction.feather
|
||||
2025-05-07 13:22:29,980 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:22:29,985 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:22:29,989 - FreqaiExampleStrategy - INFO - 目标列形状:(48050,)
|
||||
2025-05-07 13:22:29,991 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 50.159589
|
||||
1 -0.000203 50.159589
|
||||
2 -0.001218 50.159589
|
||||
3 -0.001218 50.159589
|
||||
4 -0.001015 50.159589
|
||||
2025-05-07 13:22:30,027 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:22:30,031 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:22:30,036 - FreqaiExampleStrategy - INFO - 目标列形状:(49970,)
|
||||
2025-05-07 13:22:30,038 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 50.106933
|
||||
1 -0.000203 50.106933
|
||||
2 -0.001218 50.106933
|
||||
3 -0.001218 50.106933
|
||||
4 -0.001015 50.106933
|
||||
2025-05-07 13:22:30,072 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600
|
||||
2025-05-07 13:22:30,073 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-07 13:22:30,174 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-07 13:22:30,175 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-11 to 2025-04-10 --------------------
|
||||
2025-05-07 13:22:30,283 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 147 features
|
||||
2025-05-07 13:22:30,284 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points
|
||||
[0] validation_0-rmse:0.51855 validation_1-rmse:0.51999
|
||||
[1] validation_0-rmse:0.49679 validation_1-rmse:0.49765
|
||||
[2] validation_0-rmse:0.47643 validation_1-rmse:0.47640
|
||||
[3] validation_0-rmse:0.45761 validation_1-rmse:0.45639
|
||||
[4] validation_0-rmse:0.43960 validation_1-rmse:0.43749
|
||||
[5] validation_0-rmse:0.42308 validation_1-rmse:0.42015
|
||||
[6] validation_0-rmse:0.40705 validation_1-rmse:0.40310
|
||||
[7] validation_0-rmse:0.39168 validation_1-rmse:0.38695
|
||||
[8] validation_0-rmse:0.37735 validation_1-rmse:0.37179
|
||||
[9] validation_0-rmse:0.36420 validation_1-rmse:0.35745
|
||||
[10] validation_0-rmse:0.35174 validation_1-rmse:0.34374
|
||||
[11] validation_0-rmse:0.33997 validation_1-rmse:0.33086
|
||||
[12] validation_0-rmse:0.32898 validation_1-rmse:0.31878
|
||||
[13] validation_0-rmse:0.31956 validation_1-rmse:0.30729
|
||||
[14] validation_0-rmse:0.31001 validation_1-rmse:0.29653
|
||||
[15] validation_0-rmse:0.30115 validation_1-rmse:0.28628
|
||||
[16] validation_0-rmse:0.29276 validation_1-rmse:0.27655
|
||||
[17] validation_0-rmse:0.28473 validation_1-rmse:0.26716
|
||||
[18] validation_0-rmse:0.27754 validation_1-rmse:0.25836
|
||||
[19] validation_0-rmse:0.27050 validation_1-rmse:0.25004
|
||||
[20] validation_0-rmse:0.26559 validation_1-rmse:0.24273
|
||||
[21] validation_0-rmse:0.25961 validation_1-rmse:0.23529
|
||||
[22] validation_0-rmse:0.25397 validation_1-rmse:0.22834
|
||||
[23] validation_0-rmse:0.24823 validation_1-rmse:0.22178
|
||||
[24] validation_0-rmse:0.24307 validation_1-rmse:0.21548
|
||||
[25] validation_0-rmse:0.23849 validation_1-rmse:0.20955
|
||||
[26] validation_0-rmse:0.23418 validation_1-rmse:0.20410
|
||||
[27] validation_0-rmse:0.22999 validation_1-rmse:0.19902
|
||||
[28] validation_0-rmse:0.22601 validation_1-rmse:0.19407
|
||||
[29] validation_0-rmse:0.22232 validation_1-rmse:0.18951
|
||||
[30] validation_0-rmse:0.21913 validation_1-rmse:0.18521
|
||||
[31] validation_0-rmse:0.21597 validation_1-rmse:0.18102
|
||||
[32] validation_0-rmse:0.21298 validation_1-rmse:0.17715
|
||||
[33] validation_0-rmse:0.21031 validation_1-rmse:0.17343
|
||||
[34] validation_0-rmse:0.20785 validation_1-rmse:0.16993
|
||||
[35] validation_0-rmse:0.20561 validation_1-rmse:0.16652
|
||||
[36] validation_0-rmse:0.20353 validation_1-rmse:0.16332
|
||||
[37] validation_0-rmse:0.20139 validation_1-rmse:0.16037
|
||||
[38] validation_0-rmse:0.19941 validation_1-rmse:0.15732
|
||||
[39] validation_0-rmse:0.19758 validation_1-rmse:0.15474
|
||||
[40] validation_0-rmse:0.19587 validation_1-rmse:0.15209
|
||||
[41] validation_0-rmse:0.19440 validation_1-rmse:0.14962
|
||||
[42] validation_0-rmse:0.19306 validation_1-rmse:0.14741
|
||||
[43] validation_0-rmse:0.19151 validation_1-rmse:0.14516
|
||||
[44] validation_0-rmse:0.19043 validation_1-rmse:0.14306
|
||||
[45] validation_0-rmse:0.18911 validation_1-rmse:0.14109
|
||||
[46] validation_0-rmse:0.18793 validation_1-rmse:0.13927
|
||||
[47] validation_0-rmse:0.18686 validation_1-rmse:0.13754
|
||||
[48] validation_0-rmse:0.18574 validation_1-rmse:0.13589
|
||||
[49] validation_0-rmse:0.18465 validation_1-rmse:0.13427
|
||||
[50] validation_0-rmse:0.18347 validation_1-rmse:0.13274
|
||||
[51] validation_0-rmse:0.18252 validation_1-rmse:0.13140
|
||||
[52] validation_0-rmse:0.18183 validation_1-rmse:0.12981
|
||||
[53] validation_0-rmse:0.18107 validation_1-rmse:0.12848
|
||||
[54] validation_0-rmse:0.18029 validation_1-rmse:0.12726
|
||||
[55] validation_0-rmse:0.17970 validation_1-rmse:0.12587
|
||||
[56] validation_0-rmse:0.17896 validation_1-rmse:0.12473
|
||||
[57] validation_0-rmse:0.17831 validation_1-rmse:0.12365
|
||||
[58] validation_0-rmse:0.17793 validation_1-rmse:0.12237
|
||||
[59] validation_0-rmse:0.17715 validation_1-rmse:0.12130
|
||||
[60] validation_0-rmse:0.17659 validation_1-rmse:0.12035
|
||||
[61] validation_0-rmse:0.17602 validation_1-rmse:0.11931
|
||||
[62] validation_0-rmse:0.17541 validation_1-rmse:0.11844
|
||||
[63] validation_0-rmse:0.17482 validation_1-rmse:0.11758
|
||||
[64] validation_0-rmse:0.17431 validation_1-rmse:0.11675
|
||||
[65] validation_0-rmse:0.17376 validation_1-rmse:0.11593
|
||||
[66] validation_0-rmse:0.17323 validation_1-rmse:0.11503
|
||||
[67] validation_0-rmse:0.17270 validation_1-rmse:0.11419
|
||||
[68] validation_0-rmse:0.17231 validation_1-rmse:0.11325
|
||||
[69] validation_0-rmse:0.17177 validation_1-rmse:0.11246
|
||||
[70] validation_0-rmse:0.17144 validation_1-rmse:0.11183
|
||||
[71] validation_0-rmse:0.17114 validation_1-rmse:0.11114
|
||||
[72] validation_0-rmse:0.17073 validation_1-rmse:0.11045
|
||||
[73] validation_0-rmse:0.17045 validation_1-rmse:0.10982
|
||||
[74] validation_0-rmse:0.16992 validation_1-rmse:0.10910
|
||||
[75] validation_0-rmse:0.16976 validation_1-rmse:0.10832
|
||||
[76] validation_0-rmse:0.16942 validation_1-rmse:0.10775
|
||||
[77] validation_0-rmse:0.16907 validation_1-rmse:0.10717
|
||||
[78] validation_0-rmse:0.16873 validation_1-rmse:0.10667
|
||||
[79] validation_0-rmse:0.16830 validation_1-rmse:0.10608
|
||||
[80] validation_0-rmse:0.16811 validation_1-rmse:0.10550
|
||||
[81] validation_0-rmse:0.16785 validation_1-rmse:0.10499
|
||||
[82] validation_0-rmse:0.16765 validation_1-rmse:0.10442
|
||||
[83] validation_0-rmse:0.16737 validation_1-rmse:0.10393
|
||||
[84] validation_0-rmse:0.16716 validation_1-rmse:0.10343
|
||||
[85] validation_0-rmse:0.16695 validation_1-rmse:0.10296
|
||||
[86] validation_0-rmse:0.16676 validation_1-rmse:0.10245
|
||||
[87] validation_0-rmse:0.16652 validation_1-rmse:0.10188
|
||||
[88] validation_0-rmse:0.16624 validation_1-rmse:0.10136
|
||||
[89] validation_0-rmse:0.16606 validation_1-rmse:0.10089
|
||||
[90] validation_0-rmse:0.16591 validation_1-rmse:0.10042
|
||||
[91] validation_0-rmse:0.16570 validation_1-rmse:0.09998
|
||||
[92] validation_0-rmse:0.16545 validation_1-rmse:0.09956
|
||||
[93] validation_0-rmse:0.16524 validation_1-rmse:0.09919
|
||||
[94] validation_0-rmse:0.16494 validation_1-rmse:0.09872
|
||||
[95] validation_0-rmse:0.16475 validation_1-rmse:0.09828
|
||||
[96] validation_0-rmse:0.16450 validation_1-rmse:0.09780
|
||||
[97] validation_0-rmse:0.16433 validation_1-rmse:0.09746
|
||||
[98] validation_0-rmse:0.16417 validation_1-rmse:0.09709
|
||||
[99] validation_0-rmse:0.16406 validation_1-rmse:0.09666
|
||||
[100] validation_0-rmse:0.16385 validation_1-rmse:0.09621
|
||||
[101] validation_0-rmse:0.16373 validation_1-rmse:0.09578
|
||||
[102] validation_0-rmse:0.16351 validation_1-rmse:0.09539
|
||||
[103] validation_0-rmse:0.16330 validation_1-rmse:0.09499
|
||||
[104] validation_0-rmse:0.16321 validation_1-rmse:0.09464
|
||||
[105] validation_0-rmse:0.16307 validation_1-rmse:0.09433
|
||||
[106] validation_0-rmse:0.16297 validation_1-rmse:0.09400
|
||||
[107] validation_0-rmse:0.16285 validation_1-rmse:0.09369
|
||||
[108] validation_0-rmse:0.16268 validation_1-rmse:0.09333
|
||||
[109] validation_0-rmse:0.16259 validation_1-rmse:0.09299
|
||||
[110] validation_0-rmse:0.16251 validation_1-rmse:0.09264
|
||||
[111] validation_0-rmse:0.16239 validation_1-rmse:0.09221
|
||||
[112] validation_0-rmse:0.16216 validation_1-rmse:0.09189
|
||||
[113] validation_0-rmse:0.16203 validation_1-rmse:0.09153
|
||||
[114] validation_0-rmse:0.16188 validation_1-rmse:0.09119
|
||||
[115] validation_0-rmse:0.16182 validation_1-rmse:0.09083
|
||||
[116] validation_0-rmse:0.16172 validation_1-rmse:0.09061
|
||||
[117] validation_0-rmse:0.16160 validation_1-rmse:0.09029
|
||||
[118] validation_0-rmse:0.16148 validation_1-rmse:0.09004
|
||||
[119] validation_0-rmse:0.16139 validation_1-rmse:0.08973
|
||||
[120] validation_0-rmse:0.16139 validation_1-rmse:0.08942
|
||||
[121] validation_0-rmse:0.16125 validation_1-rmse:0.08916
|
||||
[122] validation_0-rmse:0.16110 validation_1-rmse:0.08878
|
||||
[123] validation_0-rmse:0.16102 validation_1-rmse:0.08851
|
||||
[124] validation_0-rmse:0.16082 validation_1-rmse:0.08823
|
||||
[125] validation_0-rmse:0.16063 validation_1-rmse:0.08792
|
||||
[126] validation_0-rmse:0.16057 validation_1-rmse:0.08760
|
||||
[127] validation_0-rmse:0.16051 validation_1-rmse:0.08723
|
||||
[128] validation_0-rmse:0.16044 validation_1-rmse:0.08695
|
||||
[129] validation_0-rmse:0.16037 validation_1-rmse:0.08676
|
||||
[130] validation_0-rmse:0.16026 validation_1-rmse:0.08656
|
||||
[131] validation_0-rmse:0.16018 validation_1-rmse:0.08634
|
||||
[132] validation_0-rmse:0.16008 validation_1-rmse:0.08611
|
||||
[133] validation_0-rmse:0.15999 validation_1-rmse:0.08587
|
||||
[134] validation_0-rmse:0.15990 validation_1-rmse:0.08563
|
||||
[135] validation_0-rmse:0.15983 validation_1-rmse:0.08530
|
||||
[136] validation_0-rmse:0.15971 validation_1-rmse:0.08502
|
||||
[137] validation_0-rmse:0.15966 validation_1-rmse:0.08486
|
||||
[138] validation_0-rmse:0.15959 validation_1-rmse:0.08458
|
||||
[139] validation_0-rmse:0.15948 validation_1-rmse:0.08429
|
||||
[140] validation_0-rmse:0.15935 validation_1-rmse:0.08409
|
||||
[141] validation_0-rmse:0.15930 validation_1-rmse:0.08387
|
||||
[142] validation_0-rmse:0.15925 validation_1-rmse:0.08367
|
||||
[143] validation_0-rmse:0.15916 validation_1-rmse:0.08344
|
||||
[144] validation_0-rmse:0.15909 validation_1-rmse:0.08321
|
||||
[145] validation_0-rmse:0.15902 validation_1-rmse:0.08298
|
||||
[146] validation_0-rmse:0.15898 validation_1-rmse:0.08276
|
||||
[147] validation_0-rmse:0.15892 validation_1-rmse:0.08248
|
||||
[148] validation_0-rmse:0.15877 validation_1-rmse:0.08226
|
||||
[149] validation_0-rmse:0.15866 validation_1-rmse:0.08206
|
||||
[150] validation_0-rmse:0.15858 validation_1-rmse:0.08186
|
||||
[151] validation_0-rmse:0.15852 validation_1-rmse:0.08164
|
||||
[152] validation_0-rmse:0.15845 validation_1-rmse:0.08137
|
||||
[153] validation_0-rmse:0.15840 validation_1-rmse:0.08120
|
||||
[154] validation_0-rmse:0.15836 validation_1-rmse:0.08101
|
||||
[155] validation_0-rmse:0.15832 validation_1-rmse:0.08076
|
||||
[156] validation_0-rmse:0.15830 validation_1-rmse:0.08058
|
||||
[157] validation_0-rmse:0.15827 validation_1-rmse:0.08038
|
||||
[158] validation_0-rmse:0.15822 validation_1-rmse:0.08016
|
||||
[159] validation_0-rmse:0.15819 validation_1-rmse:0.07998
|
||||
[160] validation_0-rmse:0.15806 validation_1-rmse:0.07979
|
||||
[161] validation_0-rmse:0.15799 validation_1-rmse:0.07960
|
||||
[162] validation_0-rmse:0.15789 validation_1-rmse:0.07941
|
||||
[163] validation_0-rmse:0.15802 validation_1-rmse:0.07924
|
||||
[164] validation_0-rmse:0.15810 validation_1-rmse:0.07905
|
||||
[165] validation_0-rmse:0.15803 validation_1-rmse:0.07884
|
||||
[166] validation_0-rmse:0.15801 validation_1-rmse:0.07867
|
||||
[167] validation_0-rmse:0.15794 validation_1-rmse:0.07850
|
||||
[168] validation_0-rmse:0.15786 validation_1-rmse:0.07832
|
||||
[169] validation_0-rmse:0.15781 validation_1-rmse:0.07810
|
||||
[170] validation_0-rmse:0.15775 validation_1-rmse:0.07794
|
||||
[171] validation_0-rmse:0.15770 validation_1-rmse:0.07778
|
||||
[172] validation_0-rmse:0.15768 validation_1-rmse:0.07763
|
||||
[173] validation_0-rmse:0.15763 validation_1-rmse:0.07748
|
||||
[174] validation_0-rmse:0.15761 validation_1-rmse:0.07733
|
||||
[175] validation_0-rmse:0.15761 validation_1-rmse:0.07714
|
||||
[176] validation_0-rmse:0.15754 validation_1-rmse:0.07699
|
||||
[177] validation_0-rmse:0.15766 validation_1-rmse:0.07684
|
||||
[178] validation_0-rmse:0.15760 validation_1-rmse:0.07669
|
||||
[179] validation_0-rmse:0.15756 validation_1-rmse:0.07658
|
||||
[180] validation_0-rmse:0.15755 validation_1-rmse:0.07644
|
||||
[181] validation_0-rmse:0.15754 validation_1-rmse:0.07629
|
||||
[182] validation_0-rmse:0.15755 validation_1-rmse:0.07606
|
||||
[183] validation_0-rmse:0.15761 validation_1-rmse:0.07594
|
||||
[184] validation_0-rmse:0.15757 validation_1-rmse:0.07584
|
||||
[185] validation_0-rmse:0.15755 validation_1-rmse:0.07568
|
||||
[186] validation_0-rmse:0.15749 validation_1-rmse:0.07547
|
||||
[187] validation_0-rmse:0.15744 validation_1-rmse:0.07529
|
||||
[188] validation_0-rmse:0.15738 validation_1-rmse:0.07515
|
||||
[189] validation_0-rmse:0.15738 validation_1-rmse:0.07504
|
||||
[190] validation_0-rmse:0.15737 validation_1-rmse:0.07487
|
||||
[191] validation_0-rmse:0.15730 validation_1-rmse:0.07469
|
||||
[192] validation_0-rmse:0.15727 validation_1-rmse:0.07460
|
||||
[193] validation_0-rmse:0.15760 validation_1-rmse:0.07452
|
||||
[194] validation_0-rmse:0.15758 validation_1-rmse:0.07440
|
||||
[195] validation_0-rmse:0.15756 validation_1-rmse:0.07424
|
||||
[196] validation_0-rmse:0.15757 validation_1-rmse:0.07413
|
||||
[197] validation_0-rmse:0.15763 validation_1-rmse:0.07398
|
||||
[198] validation_0-rmse:0.15760 validation_1-rmse:0.07383
|
||||
[199] validation_0-rmse:0.15761 validation_1-rmse:0.07372
|
||||
2025-05-07 13:24:47,140 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (137.07 secs) --------------------
|
||||
2025-05-07 13:24:47,176 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600--buy_rsi.html
|
||||
2025-05-07 13:24:47,177 - freqtrade.freqai.freqai_interface - INFO - Saving backtest model to disk.
|
||||
2025-05-07 13:24:47,254 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-07 13:24:47,409 - FreqaiExampleStrategy - DEBUG - do_predict 列存在,前5行预览:
|
||||
do_predict
|
||||
0 0.0
|
||||
1 0.0
|
||||
2 0.0
|
||||
3 0.0
|
||||
4 0.0
|
||||
2025-05-07 13:24:47,418 - FreqaiExampleStrategy - INFO - 动态参数:buy_rsi=38.03638534545898, sell_rsi=58.03638534545898, stoploss=-0.15, trailing_stop_positive=0.05
|
||||
2025-05-07 13:24:47,621 - freqtrade.optimize.backtesting - INFO - Backtesting with data from 2025-04-01 00:00:00 up to 2025-04-15 00:00:00 (14 days).
|
||||
2025-05-07 13:24:47,646 - FreqaiExampleStrategy - ERROR - MACD 或 MACD 信号列缺失,无法生成买入信号。尝试重新计算 MACD 列。
|
||||
2025-05-07 13:24:47,648 - FreqaiExampleStrategy - INFO - MACD 列已成功重新计算。
|
||||
2025-05-07 13:24:47,651 - FreqaiExampleStrategy - DEBUG - do_predict 列存在,前5行预览:
|
||||
do_predict
|
||||
0 0.0
|
||||
1 0.0
|
||||
2 0.0
|
||||
3 0.0
|
||||
4 0.0
|
||||
2025-05-07 13:24:47,656 - FreqaiExampleStrategy - DEBUG - do_predict 列存在,前5行预览:
|
||||
do_predict
|
||||
0 0.0
|
||||
1 0.0
|
||||
2 0.0
|
||||
3 0.0
|
||||
4 0.0
|
||||
2025-05-07 13:24:47,659 - FreqaiExampleStrategy - DEBUG - &-buy_rsi_pred 列存在,前5行预览:
|
||||
&-buy_rsi_pred
|
||||
0 20.0
|
||||
1 20.0
|
||||
2 20.0
|
||||
3 20.0
|
||||
4 20.0
|
||||
2025-05-07 13:24:47,873 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-07_13-24-47.meta.json"
|
||||
Result for strategy FreqaiExampleStrategy
|
||||
BACKTESTING REPORT
|
||||
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKB/USDT │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
│ TOTAL │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
LEFT OPEN TRADES REPORT
|
||||
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKB/USDT │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
│ TOTAL │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
ENTER TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ long │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
│ TOTAL │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
EXIT REASON STATS
|
||||
┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ roi │ 3 │ 0.33 │ 1.467 │ 0.15 │ 0:56:00 │ 2 1 0 100 │
|
||||
│ force_exit │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
│ TOTAL │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
MIXED TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ long │ roi │ 3 │ 0.33 │ 1.467 │ 0.15 │ 0:56:00 │ 2 1 0 100 │
|
||||
│ long │ force_exit │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
│ TOTAL │ │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
SUMMARY METRICS
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Metric ┃ Value ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ Backtesting from │ 2025-04-01 00:00:00 │
|
||||
│ Backtesting to │ 2025-04-15 00:00:00 │
|
||||
│ Trading Mode │ Spot │
|
||||
│ Max open trades │ 1 │
|
||||
│ │ │
|
||||
│ Total/Daily Avg Trades │ 4 / 0.29 │
|
||||
│ Starting balance │ 1000 USDT │
|
||||
│ Final balance │ 1001.284 USDT │
|
||||
│ Absolute profit │ 1.284 USDT │
|
||||
│ Total profit % │ 0.13% │
|
||||
│ CAGR % │ 3.40% │
|
||||
│ Sortino │ -100.00 │
|
||||
│ Sharpe │ 2.90 │
|
||||
│ Calmar │ 961.07 │
|
||||
│ SQN │ 0.92 │
|
||||
│ Profit factor │ 8.03 │
|
||||
│ Expectancy (Ratio) │ 0.32 (1.51) │
|
||||
│ Avg. daily profit % │ 0.01% │
|
||||
│ Avg. stake amount │ 150 USDT │
|
||||
│ Total trade volume │ 1203.208 USDT │
|
||||
│ │ │
|
||||
│ Best Pair │ OKB/USDT 0.13% │
|
||||
│ Worst Pair │ OKB/USDT 0.13% │
|
||||
│ Best trade │ OKB/USDT 0.90% │
|
||||
│ Worst trade │ OKB/USDT -0.12% │
|
||||
│ Best day │ 1.35 USDT │
|
||||
│ Worst day │ -0.183 USDT │
|
||||
│ Days win/draw/lose │ 2 / 8 / 1 │
|
||||
│ Avg. Duration Winners │ 0:45:00 │
|
||||
│ Avg. Duration Loser │ 0:03:00 │
|
||||
│ Max Consecutive Wins / Loss │ 1 / 1 │
|
||||
│ Rejected Entry signals │ 0 │
|
||||
│ Entry/Exit Timeouts │ 0 / 0 │
|
||||
│ │ │
|
||||
│ Min balance │ 1000.117 USDT │
|
||||
│ Max balance │ 1001.467 USDT │
|
||||
│ Max % of account underwater │ 0.02% │
|
||||
│ Absolute Drawdown (Account) │ 0.02% │
|
||||
│ Absolute Drawdown │ 0.183 USDT │
|
||||
│ Drawdown high │ 1.467 USDT │
|
||||
│ Drawdown low │ 1.284 USDT │
|
||||
│ Drawdown Start │ 2025-04-08 18:39:00 │
|
||||
│ Drawdown End │ 2025-04-15 00:00:00 │
|
||||
│ Market change │ 8.93% │
|
||||
└─────────────────────────────┴─────────────────────┘
|
||||
|
||||
Backtested 2025-04-01 00:00:00 -> 2025-04-15 00:00:00 | Max open trades : 1
|
||||
STRATEGY SUMMARY
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
|
||||
│ FreqaiExampleStrategy │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │ 0.183 USDT 0.02% │
|
||||
└───────────────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴───────────────────┘
|
||||
|
||||
@ -1,25 +1,342 @@
|
||||
Creating freqtrade_old_freqtrade_run ...
|
||||
Creating freqtrade_old_freqtrade_run ... done
|
||||
2025-05-07 10:51:57,668 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b
|
||||
2025-05-07 10:51:57,890 - numexpr.utils - INFO - NumExpr defaulting to 12 threads.
|
||||
2025-05-07 10:51:59,365 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_my_hyperopt.json ...
|
||||
2025-05-07 10:51:59,367 - freqtrade.loggers - INFO - Enabling colorized output.
|
||||
2025-05-07 10:51:59,368 - root - INFO - Logfile configured
|
||||
2025-05-07 10:51:59,368 - freqtrade.loggers - INFO - Verbosity set to 0
|
||||
2025-05-07 10:51:59,369 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates
|
||||
2025-05-07 10:51:59,369 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ...
|
||||
2025-05-07 10:51:59,369 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ...
|
||||
2025-05-07 10:51:59,370 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250401-20250415 ...
|
||||
2025-05-07 10:51:59,395 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...
|
||||
2025-05-07 10:51:59,396 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ...
|
||||
2025-05-07 10:51:59,396 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...
|
||||
2025-05-07 10:51:59,397 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ...
|
||||
2025-05-07 10:51:59,397 - freqtrade.configuration.configuration - INFO - Parameter --freqai-backtest-live-models detected ...
|
||||
2025-05-07 10:51:59,398 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250401-20250415
|
||||
2025-05-07 10:51:59,398 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor
|
||||
2025-05-07 10:51:59,399 - freqtrade.exchange.check_exchange - INFO - Checking exchange...
|
||||
2025-05-07 10:51:59,405 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team.
|
||||
2025-05-07 10:51:59,405 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.
|
||||
2025-05-07 10:51:59,406 - freqtrade - ERROR - Configuration error: Using timerange parameter is not supported with --freqai-backtest-live-models parameter.
|
||||
Please make sure to review the documentation at https://www.freqtrade.io/en/stable.
|
||||
1
|
||||
2025-05-07 13:20:00,263 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b
|
||||
2025-05-07 13:20:00,482 - numexpr.utils - INFO - NumExpr defaulting to 12 threads.
|
||||
2025-05-07 13:20:01,995 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_my_hyperopt.json ...
|
||||
2025-05-07 13:20:01,997 - freqtrade.loggers - INFO - Enabling colorized output.
|
||||
2025-05-07 13:20:01,998 - root - INFO - Logfile configured
|
||||
2025-05-07 13:20:01,998 - freqtrade.loggers - INFO - Verbosity set to 0
|
||||
2025-05-07 13:20:01,999 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates
|
||||
2025-05-07 13:20:01,999 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ...
|
||||
2025-05-07 13:20:02,000 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ...
|
||||
2025-05-07 13:20:02,000 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250401-20250415 ...
|
||||
2025-05-07 13:20:02,034 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...
|
||||
2025-05-07 13:20:02,035 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ...
|
||||
2025-05-07 13:20:02,035 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...
|
||||
2025-05-07 13:20:02,035 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ...
|
||||
2025-05-07 13:20:02,036 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250401-20250415
|
||||
2025-05-07 13:20:02,036 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor
|
||||
2025-05-07 13:20:02,037 - freqtrade.exchange.check_exchange - INFO - Checking exchange...
|
||||
2025-05-07 13:20:02,045 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team.
|
||||
2025-05-07 13:20:02,045 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.
|
||||
2025-05-07 13:20:02,045 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-07 13:20:02,047 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode
|
||||
2025-05-07 13:20:02,048 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled
|
||||
2025-05-07 13:20:02,048 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77
|
||||
2025-05-07 13:20:02,049 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}}
|
||||
2025-05-07 13:20:02,054 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000}
|
||||
2025-05-07 13:20:02,060 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX"
|
||||
2025-05-07 13:20:05,055 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'...
|
||||
2025-05-07 13:20:05,118 - freqtrade.resolvers.iresolver - WARNING - Could not import /freqtrade/templates/BaseHyperOptStrategy.py due to 'invalid syntax (BaseHyperOptStrategy.py, line 190)'
|
||||
2025-05-07 13:20:05,121 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy FreqaiExampleStrategy from '/freqtrade/templates/FreqaiExampleStrategy.py'...
|
||||
2025-05-07 13:20:05,121 - freqtrade.strategy.hyper - INFO - Loading parameters from file /freqtrade/templates/FreqaiExampleStrategy.json
|
||||
2025-05-07 13:20:05,122 - FreqaiExampleStrategy - INFO - FreqAI 模型路径:/freqtrade/user_data/models
|
||||
2025-05-07 13:20:05,122 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m.
|
||||
2025-05-07 13:20:05,123 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05.
|
||||
2025-05-07 13:20:05,123 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT.
|
||||
2025-05-07 13:20:05,123 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150.
|
||||
2025-05-07 13:20:05,124 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30.
|
||||
2025-05-07 13:20:05,124 - 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-07 13:20:05,124 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'use_exit_signal' with value in config file: True.
|
||||
2025-05-07 13:20:05,124 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4.
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {'0': 0.132, '8': 0.047, '14': 0.007, '60': 0}
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.02
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False
|
||||
2025-05-07 13:20:05,127 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True
|
||||
2025-05-07 13:20:05,127 - 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-07 13:20:05,127 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'}
|
||||
2025-05-07 13:20:05,129 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True
|
||||
2025-05-07 13:20:05,129 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False
|
||||
2025-05-07 13:20:05,129 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False
|
||||
2025-05-07 13:20:05,130 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0
|
||||
2025-05-07 13:20:05,130 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False
|
||||
2025-05-07 13:20:05,131 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0
|
||||
2025-05-07 13:20:05,131 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False
|
||||
2025-05-07 13:20:05,131 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1
|
||||
2025-05-07 13:20:05,132 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4
|
||||
2025-05-07 13:20:05,132 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-07 13:20:05,136 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'...
|
||||
2025-05-07 13:20:05,141 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config.
|
||||
2025-05-07 13:20:05,142 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-07 13:20:05,143 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ...
|
||||
2025-05-07 13:20:05,236 - freqtrade.optimize.backtesting - INFO - Loading data from 2024-12-31 21:30:00 up to 2025-04-15 00:00:00 (104 days).
|
||||
2025-05-07 13:20:05,237 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators
|
||||
2025-05-07 13:20:05,238 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy FreqaiExampleStrategy
|
||||
2025-05-07 13:20:06,903 - matplotlib.font_manager - INFO - generated new fontManager
|
||||
2025-05-07 13:20:07,121 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'...
|
||||
2025-05-07 13:20:07,122 - freqtrade.freqai.freqai_interface - INFO - Backtesting module configured to save all models.
|
||||
2025-05-07 13:20:07,123 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch
|
||||
2025-05-07 13:20:07,123 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch
|
||||
2025-05-07 13:20:07,123 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT']
|
||||
2025-05-07 13:20:07,124 - freqtrade.strategy.hyper - INFO - Strategy Parameter: buy_rsi = 39.92672300850069
|
||||
2025-05-07 13:20:07,125 - freqtrade.strategy.hyper - INFO - Strategy Parameter: sell_rsi = 69.92672300850067
|
||||
2025-05-07 13:20:07,125 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values.
|
||||
2025-05-07 13:20:07,130 - FreqaiExampleStrategy - INFO - 处理交易对:OKB/USDT
|
||||
2025-05-07 13:20:07,133 - freqtrade.freqai.freqai_interface - INFO - Training 2 timeranges
|
||||
2025-05-07 13:20:07,134 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/1 pairs from 2025-01-01 00:00:00 to 2025-04-01 00:00:00, 1/2 trains
|
||||
2025-05-07 13:20:07,135 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at
|
||||
/freqtrade/user_data/models/test175/backtesting_predictions/cb_okb_1743465600_prediction.feather
|
||||
2025-05-07 13:20:07,161 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,195 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,225 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,325 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-07 13:20:07,325 - freqtrade.data.dataprovider - INFO - Loading data for OKB/USDT 5m from 2024-12-31 19:50:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,383 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,402 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,421 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,507 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-07 13:20:07,508 - freqtrade.data.dataprovider - INFO - Loading data for OKB/USDT 15m from 2024-12-31 11:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,537 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,548 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,560 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,620 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-07 13:20:07,621 - freqtrade.data.dataprovider - INFO - Loading data for OKB/USDT 1h from 2024-12-29 22:00:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,644 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,653 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,662 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,867 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-07 13:20:07,868 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 3m from 2024-12-31 21:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,944 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,964 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,988 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,104 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-07 13:20:08,105 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 5m from 2024-12-31 19:50:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,154 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,173 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,193 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,332 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-07 13:20:08,333 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 15m from 2024-12-31 11:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,365 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,376 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,386 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,510 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-07 13:20:08,511 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 1h from 2024-12-29 22:00:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,534 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,543 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,552 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,738 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-07 13:20:08,739 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 3m from 2024-12-31 21:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,801 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,821 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,843 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,994 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-07 13:20:08,995 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 5m from 2024-12-31 19:50:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:09,052 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,069 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,090 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,281 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-07 13:20:09,282 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 15m from 2024-12-31 11:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:09,310 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,320 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,331 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,504 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-07 13:20:09,505 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 1h from 2024-12-29 22:00:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:09,527 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,536 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,546 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,758 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:20:09,763 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:20:09,768 - FreqaiExampleStrategy - INFO - 目标列形状:(43250,)
|
||||
2025-05-07 13:20:09,770 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 49.927524
|
||||
1 -0.000203 49.927524
|
||||
2 -0.001218 49.927524
|
||||
3 -0.001218 49.927524
|
||||
4 -0.001015 49.927524
|
||||
2025-05-07 13:20:09,805 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:20:09,810 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:20:09,815 - FreqaiExampleStrategy - INFO - 目标列形状:(48050,)
|
||||
2025-05-07 13:20:09,817 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 50.159589
|
||||
1 -0.000203 50.159589
|
||||
2 -0.001218 50.159589
|
||||
3 -0.001218 50.159589
|
||||
4 -0.001015 50.159589
|
||||
2025-05-07 13:20:09,854 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600
|
||||
2025-05-07 13:20:09,855 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-07 13:20:09,956 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-07 13:20:09,957 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-01 to 2025-03-31 --------------------
|
||||
2025-05-07 13:20:10,066 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 147 features
|
||||
2025-05-07 13:20:10,067 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points
|
||||
[99] validation_0-rmse:0.17290 validation_1-rmse:0.09398
|
||||
[199] validation_0-rmse:0.16585 validation_1-rmse:0.07188
|
||||
2025-05-07 13:22:29,587 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (139.73 secs) --------------------
|
||||
2025-05-07 13:22:29,843 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600--buy_rsi.html
|
||||
2025-05-07 13:22:29,844 - freqtrade.freqai.freqai_interface - INFO - Saving backtest model to disk.
|
||||
2025-05-07 13:22:29,933 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-07 13:22:29,946 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/1 pairs from 2025-01-11 00:00:00 to 2025-04-11 00:00:00, 2/2 trains
|
||||
2025-05-07 13:22:29,946 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at
|
||||
/freqtrade/user_data/models/test175/backtesting_predictions/cb_okb_1744329600_prediction.feather
|
||||
2025-05-07 13:22:29,980 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:22:29,985 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:22:29,989 - FreqaiExampleStrategy - INFO - 目标列形状:(48050,)
|
||||
2025-05-07 13:22:29,991 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 50.159589
|
||||
1 -0.000203 50.159589
|
||||
2 -0.001218 50.159589
|
||||
3 -0.001218 50.159589
|
||||
4 -0.001015 50.159589
|
||||
2025-05-07 13:22:30,027 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:22:30,031 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:22:30,036 - FreqaiExampleStrategy - INFO - 目标列形状:(49970,)
|
||||
2025-05-07 13:22:30,038 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 50.106933
|
||||
1 -0.000203 50.106933
|
||||
2 -0.001218 50.106933
|
||||
3 -0.001218 50.106933
|
||||
4 -0.001015 50.106933
|
||||
2025-05-07 13:22:30,072 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600
|
||||
2025-05-07 13:22:30,073 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-07 13:22:30,174 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-07 13:22:30,175 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-11 to 2025-04-10 --------------------
|
||||
2025-05-07 13:22:30,283 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 147 features
|
||||
2025-05-07 13:22:30,284 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points
|
||||
[99] validation_0-rmse:0.16406 validation_1-rmse:0.09666
|
||||
[199] validation_0-rmse:0.15761 validation_1-rmse:0.07372
|
||||
2025-05-07 13:24:47,140 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (137.07 secs) --------------------
|
||||
2025-05-07 13:24:47,176 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600--buy_rsi.html
|
||||
2025-05-07 13:24:47,177 - freqtrade.freqai.freqai_interface - INFO - Saving backtest model to disk.
|
||||
2025-05-07 13:24:47,254 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-07 13:24:47,409 - FreqaiExampleStrategy - DEBUG - do_predict 列存在,前5行预览:
|
||||
do_predict
|
||||
0 0.0
|
||||
1 0.0
|
||||
2 0.0
|
||||
3 0.0
|
||||
4 0.0
|
||||
2025-05-07 13:24:47,418 - FreqaiExampleStrategy - INFO - 动态参数:buy_rsi=38.03638534545898, sell_rsi=58.03638534545898, stoploss=-0.15, trailing_stop_positive=0.05
|
||||
2025-05-07 13:24:47,621 - freqtrade.optimize.backtesting - INFO - Backtesting with data from 2025-04-01 00:00:00 up to 2025-04-15 00:00:00 (14 days).
|
||||
2025-05-07 13:24:47,646 - FreqaiExampleStrategy - ERROR - MACD 或 MACD 信号列缺失,无法生成买入信号。尝试重新计算 MACD 列。
|
||||
2025-05-07 13:24:47,648 - FreqaiExampleStrategy - INFO - MACD 列已成功重新计算。
|
||||
2025-05-07 13:24:47,651 - FreqaiExampleStrategy - DEBUG - do_predict 列存在,前5行预览:
|
||||
do_predict
|
||||
0 0.0
|
||||
1 0.0
|
||||
2 0.0
|
||||
3 0.0
|
||||
4 0.0
|
||||
2025-05-07 13:24:47,656 - FreqaiExampleStrategy - DEBUG - do_predict 列存在,前5行预览:
|
||||
do_predict
|
||||
0 0.0
|
||||
1 0.0
|
||||
2 0.0
|
||||
3 0.0
|
||||
4 0.0
|
||||
2025-05-07 13:24:47,659 - FreqaiExampleStrategy - DEBUG - &-buy_rsi_pred 列存在,前5行预览:
|
||||
&-buy_rsi_pred
|
||||
0 20.0
|
||||
1 20.0
|
||||
2 20.0
|
||||
3 20.0
|
||||
4 20.0
|
||||
2025-05-07 13:24:47,873 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-07_13-24-47.meta.json"
|
||||
Result for strategy FreqaiExampleStrategy
|
||||
BACKTESTING REPORT
|
||||
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKB/USDT │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
│ TOTAL │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
LEFT OPEN TRADES REPORT
|
||||
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKB/USDT │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
│ TOTAL │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
ENTER TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ long │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
│ TOTAL │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
EXIT REASON STATS
|
||||
┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ roi │ 3 │ 0.33 │ 1.467 │ 0.15 │ 0:56:00 │ 2 1 0 100 │
|
||||
│ force_exit │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
│ TOTAL │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
MIXED TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ long │ roi │ 3 │ 0.33 │ 1.467 │ 0.15 │ 0:56:00 │ 2 1 0 100 │
|
||||
│ long │ force_exit │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
│ TOTAL │ │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
SUMMARY METRICS
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Metric ┃ Value ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ Backtesting from │ 2025-04-01 00:00:00 │
|
||||
│ Backtesting to │ 2025-04-15 00:00:00 │
|
||||
│ Trading Mode │ Spot │
|
||||
│ Max open trades │ 1 │
|
||||
│ │ │
|
||||
│ Total/Daily Avg Trades │ 4 / 0.29 │
|
||||
│ Starting balance │ 1000 USDT │
|
||||
│ Final balance │ 1001.284 USDT │
|
||||
│ Absolute profit │ 1.284 USDT │
|
||||
│ Total profit % │ 0.13% │
|
||||
│ CAGR % │ 3.40% │
|
||||
│ Sortino │ -100.00 │
|
||||
│ Sharpe │ 2.90 │
|
||||
│ Calmar │ 961.07 │
|
||||
│ SQN │ 0.92 │
|
||||
│ Profit factor │ 8.03 │
|
||||
│ Expectancy (Ratio) │ 0.32 (1.51) │
|
||||
│ Avg. daily profit % │ 0.01% │
|
||||
│ Avg. stake amount │ 150 USDT │
|
||||
│ Total trade volume │ 1203.208 USDT │
|
||||
│ │ │
|
||||
│ Best Pair │ OKB/USDT 0.13% │
|
||||
│ Worst Pair │ OKB/USDT 0.13% │
|
||||
│ Best trade │ OKB/USDT 0.90% │
|
||||
│ Worst trade │ OKB/USDT -0.12% │
|
||||
│ Best day │ 1.35 USDT │
|
||||
│ Worst day │ -0.183 USDT │
|
||||
│ Days win/draw/lose │ 2 / 8 / 1 │
|
||||
│ Avg. Duration Winners │ 0:45:00 │
|
||||
│ Avg. Duration Loser │ 0:03:00 │
|
||||
│ Max Consecutive Wins / Loss │ 1 / 1 │
|
||||
│ Rejected Entry signals │ 0 │
|
||||
│ Entry/Exit Timeouts │ 0 / 0 │
|
||||
│ │ │
|
||||
│ Min balance │ 1000.117 USDT │
|
||||
│ Max balance │ 1001.467 USDT │
|
||||
│ Max % of account underwater │ 0.02% │
|
||||
│ Absolute Drawdown (Account) │ 0.02% │
|
||||
│ Absolute Drawdown │ 0.183 USDT │
|
||||
│ Drawdown high │ 1.467 USDT │
|
||||
│ Drawdown low │ 1.284 USDT │
|
||||
│ Drawdown Start │ 2025-04-08 18:39:00 │
|
||||
│ Drawdown End │ 2025-04-15 00:00:00 │
|
||||
│ Market change │ 8.93% │
|
||||
└─────────────────────────────┴─────────────────────┘
|
||||
|
||||
Backtested 2025-04-01 00:00:00 -> 2025-04-15 00:00:00 | Max open trades : 1
|
||||
STRATEGY SUMMARY
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
|
||||
│ FreqaiExampleStrategy │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │ 0.183 USDT 0.02% │
|
||||
└───────────────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴───────────────────┘
|
||||
|
||||
1
result/backtest-result-2025-05-07_13-24-47.json
Normal file
1
result/backtest-result-2025-05-07_13-24-47.json
Normal file
File diff suppressed because one or more lines are too long
1
result/backtest-result-2025-05-07_13-24-47.meta.json
Normal file
1
result/backtest-result-2025-05-07_13-24-47.meta.json
Normal file
@ -0,0 +1 @@
|
||||
{"FreqaiExampleStrategy":{"run_id":"8c357e309bee87b4540eab3511a08d19d6443e9e","backtest_start_time":1746624005,"timeframe":"3m","timeframe_detail":null,"backtest_start_ts":1743465600,"backtest_end_ts":1744675200}}
|
||||
@ -0,0 +1,32 @@
|
||||
{
|
||||
"strategy_name": "FreqaiExampleStrategy",
|
||||
"params": {
|
||||
"trailing": {
|
||||
"trailing_stop": true,
|
||||
"trailing_stop_positive": 0.01,
|
||||
"trailing_stop_positive_offset": 0.02,
|
||||
"trailing_only_offset_is_reached": false
|
||||
},
|
||||
"max_open_trades": {
|
||||
"max_open_trades": 4
|
||||
},
|
||||
"buy": {
|
||||
"buy_rsi": 39.92672300850069
|
||||
},
|
||||
"sell": {
|
||||
"sell_rsi": 69.92672300850067
|
||||
},
|
||||
"protection": {},
|
||||
"roi": {
|
||||
"0": 0.132,
|
||||
"8": 0.047,
|
||||
"14": 0.007,
|
||||
"60": 0
|
||||
},
|
||||
"stoploss": {
|
||||
"stoploss": -0.322
|
||||
}
|
||||
},
|
||||
"ft_stratparam_v": 1,
|
||||
"export_time": "2025-04-23 12:30:05.550433+00:00"
|
||||
}
|
||||
@ -0,0 +1,365 @@
|
||||
import logging
|
||||
import numpy as np
|
||||
from functools import reduce
|
||||
import talib.abstract as ta
|
||||
from pandas import DataFrame
|
||||
from typing import Dict, List, Optional
|
||||
from technical import qtpylib
|
||||
from freqtrade.strategy import IStrategy, IntParameter, DecimalParameter
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class FreqaiExampleStrategy(IStrategy):
|
||||
# 移除硬编码的 minimal_roi 和 stoploss,改为动态适配
|
||||
minimal_roi = {} # 将在 populate_indicators 中动态生成
|
||||
stoploss = 0.0 # 将在 populate_indicators 中动态设置
|
||||
trailing_stop = True
|
||||
process_only_new_candles = True
|
||||
use_exit_signal = True
|
||||
startup_candle_count: int = 40
|
||||
can_short = False
|
||||
|
||||
# 参数定义:FreqAI 动态适配 buy_rsi 和 sell_rsi,禁用 Hyperopt 优化
|
||||
buy_rsi = IntParameter(low=10, high=50, default=27, space="buy", optimize=False, load=True)
|
||||
sell_rsi = IntParameter(low=50, high=90, default=59, space="sell", optimize=False, load=True)
|
||||
|
||||
# 为 Hyperopt 优化添加 ROI 和 stoploss 参数
|
||||
roi_0 = DecimalParameter(low=0.01, high=0.2, default=0.038, space="roi", optimize=True, load=True)
|
||||
roi_15 = DecimalParameter(low=0.005, high=0.1, default=0.027, space="roi", optimize=True, load=True)
|
||||
roi_30 = DecimalParameter(low=0.001, high=0.05, default=0.009, space="roi", optimize=True, load=True)
|
||||
stoploss_param = DecimalParameter(low=-0.35, high=-0.1, default=-0.182, space="stoploss", optimize=True, load=True)
|
||||
|
||||
# FreqAI 配置
|
||||
freqai_info = {
|
||||
"model": "XGBoostRegressor", # 与config保持一致
|
||||
"save_backtest_models": True,
|
||||
"feature_parameters": {
|
||||
"include_timeframes": ["3m", "15m", "1h"], # 与config一致:w
|
||||
"include_corr_pairlist": ["BTC/USDT", "SOL/USDT"], # 添加相关交易对
|
||||
"label_period_candles": 20, # 与config一致
|
||||
"include_shifted_candles": 2, # 与config一致
|
||||
},
|
||||
"data_split_parameters": {
|
||||
"test_size": 0.2,
|
||||
"shuffle": True, # 启用shuffle
|
||||
},
|
||||
"model_training_parameters": {
|
||||
"n_estimators": 100, # 减少树的数量
|
||||
"learning_rate": 0.1, # 提高学习率
|
||||
"max_depth": 6, # 限制树深度
|
||||
"subsample": 0.8, # 添加子采样
|
||||
"colsample_bytree": 0.8, # 添加特征采样
|
||||
"objective": "reg:squarederror",
|
||||
"eval_metric": "rmse",
|
||||
"early_stopping_rounds": 20,
|
||||
"verbose": 0,
|
||||
},
|
||||
"data_kitchen": {
|
||||
"feature_parameters": {
|
||||
"DI_threshold": 1.5, # 降低异常值过滤阈值
|
||||
"use_DBSCAN_to_remove_outliers": False # 禁用DBSCAN
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
plot_config = {
|
||||
"main_plot": {},
|
||||
"subplots": {
|
||||
"&-buy_rsi": {"&-buy_rsi": {"color": "green"}},
|
||||
"&-sell_rsi": {"&-sell_rsi": {"color": "red"}},
|
||||
"&-stoploss": {"&-stoploss": {"color": "purple"}},
|
||||
"&-roi_0": {"&-roi_0": {"color": "orange"}},
|
||||
"do_predict": {"do_predict": {"color": "brown"}},
|
||||
},
|
||||
}
|
||||
def __init__(self, config: Dict):
|
||||
super().__init__(config)
|
||||
# 初始化特征缓存
|
||||
self.feature_cache = {}
|
||||
# 设置日志级别
|
||||
logger.setLevel(logging.DEBUG)
|
||||
|
||||
# 输出模型路径用于调试
|
||||
freqai_model_path = self.config.get("freqai", {}).get("model_path", "/freqtrade/user_data/models")
|
||||
logger.info(f"FreqAI 模型路径:{freqai_model_path}")
|
||||
|
||||
|
||||
def feature_engineering_expand_all(self, dataframe: DataFrame, period: int, metadata: dict, **kwargs) -> DataFrame:
|
||||
# 保留关键的技术指标
|
||||
dataframe["rsi"] = ta.RSI(dataframe, timeperiod=14)
|
||||
|
||||
# 确保 MACD 列被正确计算并保留
|
||||
try:
|
||||
macd = ta.MACD(dataframe, fastperiod=12, slowperiod=26, signalperiod=9)
|
||||
dataframe["macd"] = macd["macd"]
|
||||
dataframe["macdsignal"] = macd["macdsignal"]
|
||||
except Exception as e:
|
||||
logger.error(f"计算 MACD 列时出错:{str(e)}")
|
||||
dataframe["macd"] = np.nan
|
||||
dataframe["macdsignal"] = np.nan
|
||||
|
||||
# 检查 MACD 列是否存在
|
||||
if "macd" not in dataframe.columns or "macdsignal" not in dataframe.columns:
|
||||
logger.error("MACD 或 MACD 信号列缺失,无法生成买入信号")
|
||||
raise ValueError("DataFrame 缺少必要的 MACD 列")
|
||||
|
||||
# 确保 MACD 列存在
|
||||
if "macd" not in dataframe.columns or "macdsignal" not in dataframe.columns:
|
||||
logger.error("MACD 或 MACD 信号列缺失,无法生成买入信号")
|
||||
raise ValueError("DataFrame 缺少必要的 MACD 列")
|
||||
|
||||
# 保留布林带相关特征
|
||||
bollinger = qtpylib.bollinger_bands(qtpylib.typical_price(dataframe), window=20, stds=2)
|
||||
dataframe["bb_lowerband"] = bollinger["lower"]
|
||||
dataframe["bb_middleband"] = bollinger["mid"]
|
||||
dataframe["bb_upperband"] = bollinger["upper"]
|
||||
|
||||
# 保留成交量相关特征
|
||||
dataframe["volume_ma"] = dataframe["volume"].rolling(window=20).mean()
|
||||
|
||||
# 数据清理
|
||||
for col in dataframe.columns:
|
||||
if dataframe[col].dtype in ["float64", "int64"]:
|
||||
dataframe[col] = dataframe[col].replace([np.inf, -np.inf], np.nan)
|
||||
dataframe[col] = dataframe[col].ffill().fillna(0)
|
||||
|
||||
logger.info(f"特征工程完成,特征数量:{len(dataframe.columns)}")
|
||||
return dataframe
|
||||
|
||||
def feature_engineering_expand_basic(self, dataframe: DataFrame, metadata: dict, **kwargs) -> DataFrame:
|
||||
dataframe["%-pct-change"] = dataframe["close"].pct_change()
|
||||
dataframe["%-raw_volume"] = dataframe["volume"]
|
||||
dataframe["%-raw_price"] = dataframe["close"]
|
||||
# 数据清理逻辑
|
||||
for col in dataframe.columns:
|
||||
if dataframe[col].dtype in ["float64", "int64"]:
|
||||
dataframe[col] = dataframe[col].replace([np.inf, -np.inf], 0)
|
||||
dataframe[col] = dataframe[col].ffill()
|
||||
dataframe[col] = dataframe[col].fillna(0)
|
||||
|
||||
# 检查是否仍有无效值
|
||||
if dataframe[col].isna().any() or np.isinf(dataframe[col]).any():
|
||||
logger.warning(f"列 {col} 仍包含无效值,已填充为默认值")
|
||||
dataframe[col] = dataframe[col].fillna(0)
|
||||
return dataframe
|
||||
|
||||
def feature_engineering_standard(self, dataframe: DataFrame, metadata: dict, **kwargs) -> DataFrame:
|
||||
dataframe["%-day_of_week"] = dataframe["date"].dt.dayofweek
|
||||
dataframe["%-hour_of_day"] = dataframe["date"].dt.hour
|
||||
dataframe.replace([np.inf, -np.inf], 0, inplace=True)
|
||||
dataframe.ffill(inplace=True)
|
||||
dataframe.fillna(0, inplace=True)
|
||||
return dataframe
|
||||
|
||||
def set_freqai_targets(self, dataframe: DataFrame, metadata: dict, **kwargs) -> DataFrame:
|
||||
logger.info(f"设置 FreqAI 目标,交易对:{metadata['pair']}")
|
||||
if "close" not in dataframe.columns:
|
||||
logger.error("数据框缺少必要的 'close' 列")
|
||||
raise ValueError("数据框缺少必要的 'close' 列")
|
||||
|
||||
try:
|
||||
label_period = self.freqai_info["feature_parameters"]["label_period_candles"]
|
||||
|
||||
# 定义目标变量为未来价格变化百分比(连续值)
|
||||
dataframe["up_or_down"] = (
|
||||
dataframe["close"].shift(-label_period) - dataframe["close"]
|
||||
) / dataframe["close"]
|
||||
|
||||
# 数据清理:处理 NaN 和 Inf 值
|
||||
dataframe["up_or_down"] = dataframe["up_or_down"].replace([np.inf, -np.inf], np.nan)
|
||||
dataframe["up_or_down"] = dataframe["up_or_down"].ffill().fillna(0)
|
||||
|
||||
# 确保目标变量是二维数组
|
||||
if dataframe["up_or_down"].ndim == 1:
|
||||
dataframe["up_or_down"] = dataframe["up_or_down"].values.reshape(-1, 1)
|
||||
|
||||
# 检查并处理 NaN 或无限值
|
||||
dataframe["up_or_down"] = dataframe["up_or_down"].replace([np.inf, -np.inf], np.nan)
|
||||
dataframe["up_or_down"] = dataframe["up_or_down"].ffill().fillna(0)
|
||||
|
||||
# 生成 %-volatility 特征
|
||||
dataframe["%-volatility"] = dataframe["close"].pct_change().rolling(20).std()
|
||||
|
||||
# 确保 &-buy_rsi 列的值计算正确
|
||||
dataframe["&-buy_rsi"] = ta.RSI(dataframe, timeperiod=14)
|
||||
if "&-buy_rsi_pred" not in dataframe.columns:
|
||||
logger.warning("&-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代")
|
||||
dataframe["&-buy_rsi_pred"] = dataframe["&-buy_rsi"].rolling(window=10).mean().clip(20, 40)
|
||||
dataframe["&-buy_rsi_pred"] = dataframe["&-buy_rsi_pred"].fillna(dataframe["&-buy_rsi_pred"].median())
|
||||
|
||||
# 数据清理
|
||||
for col in ["&-buy_rsi", "up_or_down", "%-volatility"]:
|
||||
# 使用直接操作避免链式赋值
|
||||
dataframe[col] = dataframe[col].replace([np.inf, -np.inf], np.nan)
|
||||
dataframe[col] = dataframe[col].ffill() # 替代 fillna(method='ffill')
|
||||
dataframe[col] = dataframe[col].fillna(dataframe[col].mean()) # 使用均值填充 NaN 值
|
||||
if dataframe[col].isna().any():
|
||||
logger.warning(f"目标列 {col} 仍包含 NaN,填充为默认值")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"创建 FreqAI 目标失败:{str(e)}")
|
||||
raise
|
||||
|
||||
# Log the shape of the target variable for debugging
|
||||
logger.info(f"目标列形状:{dataframe['up_or_down'].shape}")
|
||||
logger.info(f"目标列预览:\n{dataframe[['up_or_down', '&-buy_rsi']].head().to_string()}")
|
||||
return dataframe
|
||||
|
||||
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
||||
logger.info(f"处理交易对:{metadata['pair']}")
|
||||
dataframe = self.freqai.start(dataframe, metadata, self)
|
||||
|
||||
# 计算传统指标
|
||||
dataframe["rsi"] = ta.RSI(dataframe, timeperiod=14)
|
||||
bollinger = qtpylib.bollinger_bands(qtpylib.typical_price(dataframe), window=20, stds=2)
|
||||
dataframe["bb_lowerband"] = bollinger["lower"]
|
||||
dataframe["bb_middleband"] = bollinger["mid"]
|
||||
dataframe["bb_upperband"] = bollinger["upper"]
|
||||
dataframe["tema"] = ta.TEMA(dataframe, timeperiod=9)
|
||||
|
||||
# 生成 up_or_down 信号(非 FreqAI 目标)
|
||||
label_period = self.freqai_info["feature_parameters"]["label_period_candles"]
|
||||
dataframe["up_or_down"] = np.where(
|
||||
dataframe["close"].shift(-label_period) > dataframe["close"], 1, 0
|
||||
)
|
||||
|
||||
# 确保 do_predict 列存在并填充默认值
|
||||
if "do_predict" not in dataframe.columns:
|
||||
dataframe["do_predict"] = 0
|
||||
logger.warning("do_predict 列不存在,已创建并填充为 0。")
|
||||
|
||||
# 添加详细日志以验证 do_predict 的值
|
||||
if "do_predict" in dataframe.columns:
|
||||
logger.debug(f"do_predict 列存在,前5行预览:\n{dataframe[['do_predict']].head().to_string()}")
|
||||
else:
|
||||
logger.warning("do_predict 列不存在,可能未正确加载模型或进行预测。")
|
||||
|
||||
# 确保 &-buy_rsi_pred 存在(如果模型未提供则模拟生成)
|
||||
if "&-buy_rsi" in dataframe.columns:
|
||||
dataframe["&-buy_rsi_pred"] = dataframe["&-buy_rsi"].rolling(window=10).mean().clip(20, 40)
|
||||
dataframe["&-buy_rsi_pred"] = dataframe["&-buy_rsi_pred"].fillna(dataframe["&-buy_rsi_pred"].median())
|
||||
else:
|
||||
logger.warning("&-buy_rsi 列不存在,无法生成 &-buy_rsi_pred,将使用默认值")
|
||||
dataframe["&-buy_rsi_pred"] = 27 # 默认 RSI 买入阈值
|
||||
|
||||
# 生成 &-sell_rsi_pred(基于 buy_rsi_pred + 偏移量)
|
||||
if "&-buy_rsi_pred" in dataframe.columns:
|
||||
dataframe["&-sell_rsi_pred"] = dataframe["&-buy_rsi_pred"] + 20
|
||||
dataframe["&-sell_rsi_pred"] = dataframe["&-sell_rsi_pred"].clip(50, 90)
|
||||
dataframe["&-sell_rsi_pred"] = dataframe["&-sell_rsi_pred"].fillna(dataframe["&-sell_rsi_pred"].median())
|
||||
else:
|
||||
logger.warning("&-buy_rsi_pred 列不存在,无法生成 &-sell_rsi_pred,将使用默认值")
|
||||
dataframe["&-sell_rsi_pred"] = 59 # 默认 RSI 卖出阈值
|
||||
|
||||
# 生成 stoploss_pred(基于波动率)
|
||||
dataframe["%-volatility"] = dataframe["close"].pct_change().rolling(20).std()
|
||||
dataframe["&-stoploss"] = (-0.1 - (dataframe["%-volatility"] * 10).clip(0, 0.25)).fillna(-0.1)
|
||||
dataframe["&-stoploss"] = dataframe["&-stoploss"].clip(-0.35, -0.1)
|
||||
|
||||
# 生成 roi_0_pred(基于 ROI 参数)
|
||||
dataframe["&-roi_0"] = ((dataframe["close"] / dataframe["close"].shift(label_period) - 1).clip(0, 0.2)).fillna(0)
|
||||
|
||||
# 设置策略级参数
|
||||
try:
|
||||
self.buy_rsi.value = float(dataframe["&-buy_rsi_pred"].iloc[-1])
|
||||
self.sell_rsi.value = float(dataframe["&-sell_rsi_pred"].iloc[-1])
|
||||
except Exception as e:
|
||||
logger.error(f"设置 buy_rsi/sell_rsi 失败:{str(e)}")
|
||||
self.buy_rsi.value = 27
|
||||
self.sell_rsi.value = 59
|
||||
|
||||
self.stoploss = -0.15 # 固定止损 15%
|
||||
self.minimal_roi = {
|
||||
0: float(self.roi_0.value),
|
||||
15: float(self.roi_15.value),
|
||||
30: float(self.roi_30.value),
|
||||
60: 0
|
||||
}
|
||||
|
||||
# 更保守的追踪止损设置
|
||||
self.trailing_stop_positive = 0.05 # 追踪止损触发点
|
||||
self.trailing_stop_positive_offset = 0.1 # 追踪止损偏移量
|
||||
|
||||
logger.info(f"动态参数:buy_rsi={self.buy_rsi.value}, sell_rsi={self.sell_rsi.value}, "
|
||||
f"stoploss={self.stoploss}, trailing_stop_positive={self.trailing_stop_positive}")
|
||||
|
||||
# 数据清理
|
||||
dataframe.replace([np.inf, -np.inf], 0, inplace=True)
|
||||
dataframe.ffill(inplace=True)
|
||||
dataframe.fillna(0, inplace=True)
|
||||
|
||||
return dataframe
|
||||
def populate_exit_trend(self, df: DataFrame, metadata: dict) -> DataFrame:
|
||||
# 改进卖出信号条件
|
||||
exit_long_conditions = [
|
||||
(df["rsi"] > df["&-sell_rsi_pred"]), # RSI 高于卖出阈值
|
||||
(df["volume"] > df["volume"].rolling(window=10).mean()), # 成交量高于近期均值
|
||||
(df["close"] < df["bb_middleband"]) # 价格低于布林带中轨
|
||||
]
|
||||
# 添加详细日志以验证 do_predict 的值
|
||||
if "do_predict" in df.columns:
|
||||
logger.debug(f"do_predict 列存在,前5行预览:\n{df[['do_predict']].head().to_string()}")
|
||||
else:
|
||||
logger.warning("do_predict 列不存在,可能未正确加载模型或进行预测。")
|
||||
|
||||
if exit_long_conditions:
|
||||
df.loc[
|
||||
reduce(lambda x, y: x & y, exit_long_conditions),
|
||||
"exit_long"
|
||||
] = 1
|
||||
if "&-buy_rsi_pred" in df.columns:
|
||||
logger.debug(f"&-buy_rsi_pred 列存在,前5行预览:\n{df[['&-buy_rsi_pred']].head().to_string()}")
|
||||
else:
|
||||
logger.warning("&-buy_rsi_pred 列不存在,可能未正确生成或被覆盖。")
|
||||
return df
|
||||
def populate_entry_trend(self, df: DataFrame, metadata: dict) -> DataFrame:
|
||||
# 改进买入信号条件
|
||||
# 检查 MACD 列是否存在
|
||||
if "macd" not in df.columns or "macdsignal" not in df.columns:
|
||||
logger.error("MACD 或 MACD 信号列缺失,无法生成买入信号。尝试重新计算 MACD 列。")
|
||||
|
||||
try:
|
||||
macd = ta.MACD(df, fastperiod=12, slowperiod=26, signalperiod=9)
|
||||
df["macd"] = macd["macd"]
|
||||
df["macdsignal"] = macd["macdsignal"]
|
||||
logger.info("MACD 列已成功重新计算。")
|
||||
except Exception as e:
|
||||
logger.error(f"重新计算 MACD 列时出错:{str(e)}")
|
||||
raise ValueError("DataFrame 缺少必要的 MACD 列且无法重新计算。")
|
||||
|
||||
enter_long_conditions = [
|
||||
(df["rsi"] < df["&-buy_rsi_pred"]), # RSI 低于买入阈值
|
||||
(df["volume"] > df["volume"].rolling(window=10).mean() * 1.2), # 成交量高于近期均值20%
|
||||
(df["close"] > df["bb_middleband"]) # 价格高于布林带中轨
|
||||
]
|
||||
|
||||
# 如果 MACD 列存在,则添加 MACD 金叉条件
|
||||
if "macd" in df.columns and "macdsignal" in df.columns:
|
||||
enter_long_conditions.append((df["macd"] > df["macdsignal"]))
|
||||
|
||||
# 确保模型预测为买入
|
||||
enter_long_conditions.append((df["do_predict"] == 1))
|
||||
|
||||
# 添加详细日志以验证 do_predict 的值
|
||||
if "do_predict" in df.columns:
|
||||
logger.debug(f"do_predict 列存在,前5行预览:\n{df[['do_predict']].head().to_string()}")
|
||||
else:
|
||||
logger.warning("do_predict 列不存在,可能未正确加载模型或进行预测。")
|
||||
|
||||
if enter_long_conditions:
|
||||
df.loc[
|
||||
reduce(lambda x, y: x & y, enter_long_conditions),
|
||||
["enter_long", "enter_tag"]
|
||||
] = (1, "long")
|
||||
return df
|
||||
|
||||
def confirm_trade_entry(
|
||||
self, pair: str, order_type: str, amount: float, rate: float,
|
||||
time_in_force: str, current_time, entry_tag, side: str, **kwargs
|
||||
) -> bool:
|
||||
df, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe)
|
||||
last_candle = df.iloc[-1].squeeze()
|
||||
if side == "long":
|
||||
if rate > (last_candle["close"] * (1 + 0.0025)):
|
||||
return False
|
||||
return True
|
||||
1
result/backtest-result-2025-05-07_13-24-47_config.json
Normal file
1
result/backtest-result-2025-05-07_13-24-47_config.json
Normal file
@ -0,0 +1 @@
|
||||
{"$schema":"https://schema.freqtrade.io/schema.json","trading_mode":"spot","margin_mode":"isolated","max_open_trades":4,"stake_currency":"USDT","stake_amount":150,"startup_candle_count":30,"tradable_balance_ratio":1,"fiat_display_currency":"USD","dry_run":true,"identifier":"demo1","timeframe":"3m","dry_run_wallet":1000,"cancel_open_orders_on_exit":true,"stoploss":-0.05,"unfilledtimeout":{"entry":5,"exit":15},"exchange":{"name":"okx","key":"REDACTED","secret":"REDACTED","enable_ws":false,"ccxt_config":{"enableRateLimit":true,"rateLimit":500,"options":{"defaultType":"spot"}},"ccxt_async_config":{"enableRateLimit":true,"rateLimit":500,"timeout":20000},"pair_whitelist":["OKB/USDT"],"pair_blacklist":[]},"freqai":{"enabled":true,"identifier":"test175","freqaimodel":"XGBoostRegressor","model_path":"/freqtrade/user_data/models","save_backtesting_prediction":true,"save_backtest_models":true,"backtest_period_days":10,"purge_old_models":true,"load_trained_model":true,"train_period_days":90,"live_retrain_hours":0,"include_predictions_in_final_dataframe":true,"data_kitchen":{"fillna":"ffill","feature_parameters":{"DI_threshold":0.5,"weight_factor":0.9}},"feature_parameters":{"include_timeframes":["5m","15m","1h"],"include_corr_pairlist":["BTC/USDT","ETH/USDT"],"label_period_candles":12,"include_shifted_candles":3,"indicator_periods_candles":[10,20,50],"plot_feature_importances":1,"feature_selection":{"method":"none"}},"data_split_parameters":{"test_size":0.2,"shuffle":false},"model_training_parameters":{"n_estimators":200,"learning_rate":0.05,"max_depth":6,"subsample":0.8,"colsample_bytree":0.8}},"entry_pricing":{"price_side":"same","use_order_book":true,"order_book_top":1,"price_last_balance":0.0,"check_depth_of_market":{"enabled":false,"bids_to_ask_delta":1}},"exit_pricing":{"price_side":"other","use_order_book":true,"order_book_top":1},"pairlists":[{"method":"StaticPairList"}],"api_server":{"enabled":true,"listen_ip_address":"0.0.0.0","listen_port":8080,"verbosity":"error","enable_openapi":false,"jwt_secret_key":"6a599ab046dbb419014807dffd7b8823bfa7e5df56b17d545485deb87331b4ca","ws_token":"6O5pBDiRigiZrmIsofaE2rkKMJtf9h8zVQ","CORS_origins":[],"username":"freqAdmin","password":"REDACTED"},"use_exit_signal":true,"bot_name":"freqtrade","initial_state":"running","force_entry_enable":false,"internals":{"process_throttle_secs":5,"heartbeat_interval":20,"loglevel":"DEBUG"},"config_files":["/freqtrade/config_examples/config_my_hyperopt.json"]}
|
||||
Binary file not shown.
Binary file not shown.
@ -1,25 +1,342 @@
|
||||
Creating freqtrade_old_freqtrade_run ...
|
||||
Creating freqtrade_old_freqtrade_run ... done
|
||||
2025-05-07 10:51:57,668 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b
|
||||
2025-05-07 10:51:57,890 - numexpr.utils - INFO - NumExpr defaulting to 12 threads.
|
||||
2025-05-07 10:51:59,365 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_my_hyperopt.json ...
|
||||
2025-05-07 10:51:59,367 - freqtrade.loggers - INFO - Enabling colorized output.
|
||||
2025-05-07 10:51:59,368 - root - INFO - Logfile configured
|
||||
2025-05-07 10:51:59,368 - freqtrade.loggers - INFO - Verbosity set to 0
|
||||
2025-05-07 10:51:59,369 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates
|
||||
2025-05-07 10:51:59,369 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ...
|
||||
2025-05-07 10:51:59,369 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ...
|
||||
2025-05-07 10:51:59,370 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250401-20250415 ...
|
||||
2025-05-07 10:51:59,395 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...
|
||||
2025-05-07 10:51:59,396 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ...
|
||||
2025-05-07 10:51:59,396 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...
|
||||
2025-05-07 10:51:59,397 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ...
|
||||
2025-05-07 10:51:59,397 - freqtrade.configuration.configuration - INFO - Parameter --freqai-backtest-live-models detected ...
|
||||
2025-05-07 10:51:59,398 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250401-20250415
|
||||
2025-05-07 10:51:59,398 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor
|
||||
2025-05-07 10:51:59,399 - freqtrade.exchange.check_exchange - INFO - Checking exchange...
|
||||
2025-05-07 10:51:59,405 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team.
|
||||
2025-05-07 10:51:59,405 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.
|
||||
2025-05-07 10:51:59,406 - freqtrade - ERROR - Configuration error: Using timerange parameter is not supported with --freqai-backtest-live-models parameter.
|
||||
Please make sure to review the documentation at https://www.freqtrade.io/en/stable.
|
||||
1
|
||||
2025-05-07 13:20:00,263 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b
|
||||
2025-05-07 13:20:00,482 - numexpr.utils - INFO - NumExpr defaulting to 12 threads.
|
||||
2025-05-07 13:20:01,995 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_my_hyperopt.json ...
|
||||
2025-05-07 13:20:01,997 - freqtrade.loggers - INFO - Enabling colorized output.
|
||||
2025-05-07 13:20:01,998 - root - INFO - Logfile configured
|
||||
2025-05-07 13:20:01,998 - freqtrade.loggers - INFO - Verbosity set to 0
|
||||
2025-05-07 13:20:01,999 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates
|
||||
2025-05-07 13:20:01,999 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ...
|
||||
2025-05-07 13:20:02,000 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ...
|
||||
2025-05-07 13:20:02,000 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250401-20250415 ...
|
||||
2025-05-07 13:20:02,034 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...
|
||||
2025-05-07 13:20:02,035 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ...
|
||||
2025-05-07 13:20:02,035 - freqtrade.configuration.configuration - INFO - Parameter --export detected: trades ...
|
||||
2025-05-07 13:20:02,035 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ...
|
||||
2025-05-07 13:20:02,036 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250401-20250415
|
||||
2025-05-07 13:20:02,036 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor
|
||||
2025-05-07 13:20:02,037 - freqtrade.exchange.check_exchange - INFO - Checking exchange...
|
||||
2025-05-07 13:20:02,045 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team.
|
||||
2025-05-07 13:20:02,045 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.
|
||||
2025-05-07 13:20:02,045 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-07 13:20:02,047 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode
|
||||
2025-05-07 13:20:02,048 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled
|
||||
2025-05-07 13:20:02,048 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77
|
||||
2025-05-07 13:20:02,049 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}}
|
||||
2025-05-07 13:20:02,054 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000}
|
||||
2025-05-07 13:20:02,060 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX"
|
||||
2025-05-07 13:20:05,055 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'...
|
||||
2025-05-07 13:20:05,118 - freqtrade.resolvers.iresolver - WARNING - Could not import /freqtrade/templates/BaseHyperOptStrategy.py due to 'invalid syntax (BaseHyperOptStrategy.py, line 190)'
|
||||
2025-05-07 13:20:05,121 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy FreqaiExampleStrategy from '/freqtrade/templates/FreqaiExampleStrategy.py'...
|
||||
2025-05-07 13:20:05,121 - freqtrade.strategy.hyper - INFO - Loading parameters from file /freqtrade/templates/FreqaiExampleStrategy.json
|
||||
2025-05-07 13:20:05,122 - FreqaiExampleStrategy - INFO - FreqAI 模型路径:/freqtrade/user_data/models
|
||||
2025-05-07 13:20:05,122 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m.
|
||||
2025-05-07 13:20:05,123 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05.
|
||||
2025-05-07 13:20:05,123 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT.
|
||||
2025-05-07 13:20:05,123 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150.
|
||||
2025-05-07 13:20:05,124 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30.
|
||||
2025-05-07 13:20:05,124 - 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-07 13:20:05,124 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'use_exit_signal' with value in config file: True.
|
||||
2025-05-07 13:20:05,124 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4.
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {'0': 0.132, '8': 0.047, '14': 0.007, '60': 0}
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05
|
||||
2025-05-07 13:20:05,125 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.02
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False
|
||||
2025-05-07 13:20:05,126 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False
|
||||
2025-05-07 13:20:05,127 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True
|
||||
2025-05-07 13:20:05,127 - 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-07 13:20:05,127 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30
|
||||
2025-05-07 13:20:05,128 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'}
|
||||
2025-05-07 13:20:05,129 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True
|
||||
2025-05-07 13:20:05,129 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False
|
||||
2025-05-07 13:20:05,129 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False
|
||||
2025-05-07 13:20:05,130 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0
|
||||
2025-05-07 13:20:05,130 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False
|
||||
2025-05-07 13:20:05,131 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0
|
||||
2025-05-07 13:20:05,131 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False
|
||||
2025-05-07 13:20:05,131 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1
|
||||
2025-05-07 13:20:05,132 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4
|
||||
2025-05-07 13:20:05,132 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-07 13:20:05,136 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'...
|
||||
2025-05-07 13:20:05,141 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config.
|
||||
2025-05-07 13:20:05,142 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-07 13:20:05,143 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ...
|
||||
2025-05-07 13:20:05,236 - freqtrade.optimize.backtesting - INFO - Loading data from 2024-12-31 21:30:00 up to 2025-04-15 00:00:00 (104 days).
|
||||
2025-05-07 13:20:05,237 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators
|
||||
2025-05-07 13:20:05,238 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy FreqaiExampleStrategy
|
||||
2025-05-07 13:20:06,903 - matplotlib.font_manager - INFO - generated new fontManager
|
||||
2025-05-07 13:20:07,121 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'...
|
||||
2025-05-07 13:20:07,122 - freqtrade.freqai.freqai_interface - INFO - Backtesting module configured to save all models.
|
||||
2025-05-07 13:20:07,123 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch
|
||||
2025-05-07 13:20:07,123 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch
|
||||
2025-05-07 13:20:07,123 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT']
|
||||
2025-05-07 13:20:07,124 - freqtrade.strategy.hyper - INFO - Strategy Parameter: buy_rsi = 39.92672300850069
|
||||
2025-05-07 13:20:07,125 - freqtrade.strategy.hyper - INFO - Strategy Parameter: sell_rsi = 69.92672300850067
|
||||
2025-05-07 13:20:07,125 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values.
|
||||
2025-05-07 13:20:07,130 - FreqaiExampleStrategy - INFO - 处理交易对:OKB/USDT
|
||||
2025-05-07 13:20:07,133 - freqtrade.freqai.freqai_interface - INFO - Training 2 timeranges
|
||||
2025-05-07 13:20:07,134 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/1 pairs from 2025-01-01 00:00:00 to 2025-04-01 00:00:00, 1/2 trains
|
||||
2025-05-07 13:20:07,135 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at
|
||||
/freqtrade/user_data/models/test175/backtesting_predictions/cb_okb_1743465600_prediction.feather
|
||||
2025-05-07 13:20:07,161 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,195 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,225 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,325 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-07 13:20:07,325 - freqtrade.data.dataprovider - INFO - Loading data for OKB/USDT 5m from 2024-12-31 19:50:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,383 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,402 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,421 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,507 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-07 13:20:07,508 - freqtrade.data.dataprovider - INFO - Loading data for OKB/USDT 15m from 2024-12-31 11:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,537 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,548 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,560 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,620 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-07 13:20:07,621 - freqtrade.data.dataprovider - INFO - Loading data for OKB/USDT 1h from 2024-12-29 22:00:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,644 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,653 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,662 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,867 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-07 13:20:07,868 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 3m from 2024-12-31 21:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:07,944 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,964 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:07,988 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,104 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-07 13:20:08,105 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 5m from 2024-12-31 19:50:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,154 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,173 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,193 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,332 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-07 13:20:08,333 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 15m from 2024-12-31 11:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,365 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,376 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,386 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,510 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-07 13:20:08,511 - freqtrade.data.dataprovider - INFO - Loading data for BTC/USDT 1h from 2024-12-29 22:00:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,534 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,543 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,552 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,738 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-07 13:20:08,739 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 3m from 2024-12-31 21:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:08,801 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,821 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,843 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:08,994 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-07 13:20:08,995 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 5m from 2024-12-31 19:50:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:09,052 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,069 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,090 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,281 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-07 13:20:09,282 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 15m from 2024-12-31 11:30:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:09,310 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,320 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,331 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,504 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-07 13:20:09,505 - freqtrade.data.dataprovider - INFO - Loading data for ETH/USDT 1h from 2024-12-29 22:00:00 to 2025-04-15 00:00:00
|
||||
2025-05-07 13:20:09,527 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,536 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,546 - FreqaiExampleStrategy - INFO - 特征工程完成,特征数量:13
|
||||
2025-05-07 13:20:09,758 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:20:09,763 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:20:09,768 - FreqaiExampleStrategy - INFO - 目标列形状:(43250,)
|
||||
2025-05-07 13:20:09,770 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 49.927524
|
||||
1 -0.000203 49.927524
|
||||
2 -0.001218 49.927524
|
||||
3 -0.001218 49.927524
|
||||
4 -0.001015 49.927524
|
||||
2025-05-07 13:20:09,805 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:20:09,810 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:20:09,815 - FreqaiExampleStrategy - INFO - 目标列形状:(48050,)
|
||||
2025-05-07 13:20:09,817 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 50.159589
|
||||
1 -0.000203 50.159589
|
||||
2 -0.001218 50.159589
|
||||
3 -0.001218 50.159589
|
||||
4 -0.001015 50.159589
|
||||
2025-05-07 13:20:09,854 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600
|
||||
2025-05-07 13:20:09,855 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-07 13:20:09,956 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-07 13:20:09,957 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-01 to 2025-03-31 --------------------
|
||||
2025-05-07 13:20:10,066 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 147 features
|
||||
2025-05-07 13:20:10,067 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points
|
||||
[99] validation_0-rmse:0.17290 validation_1-rmse:0.09398
|
||||
[199] validation_0-rmse:0.16585 validation_1-rmse:0.07188
|
||||
2025-05-07 13:22:29,587 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (139.73 secs) --------------------
|
||||
2025-05-07 13:22:29,843 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600--buy_rsi.html
|
||||
2025-05-07 13:22:29,844 - freqtrade.freqai.freqai_interface - INFO - Saving backtest model to disk.
|
||||
2025-05-07 13:22:29,933 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-07 13:22:29,946 - freqtrade.freqai.freqai_interface - INFO - Training OKB/USDT, 1/1 pairs from 2025-01-11 00:00:00 to 2025-04-11 00:00:00, 2/2 trains
|
||||
2025-05-07 13:22:29,946 - freqtrade.freqai.data_kitchen - INFO - Could not find backtesting prediction file at
|
||||
/freqtrade/user_data/models/test175/backtesting_predictions/cb_okb_1744329600_prediction.feather
|
||||
2025-05-07 13:22:29,980 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:22:29,985 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:22:29,989 - FreqaiExampleStrategy - INFO - 目标列形状:(48050,)
|
||||
2025-05-07 13:22:29,991 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 50.159589
|
||||
1 -0.000203 50.159589
|
||||
2 -0.001218 50.159589
|
||||
3 -0.001218 50.159589
|
||||
4 -0.001015 50.159589
|
||||
2025-05-07 13:22:30,027 - FreqaiExampleStrategy - INFO - 设置 FreqAI 目标,交易对:OKB/USDT
|
||||
2025-05-07 13:22:30,031 - FreqaiExampleStrategy - WARNING - &-buy_rsi_pred 列不存在,正在使用 &-buy_rsi 模拟替代
|
||||
2025-05-07 13:22:30,036 - FreqaiExampleStrategy - INFO - 目标列形状:(49970,)
|
||||
2025-05-07 13:22:30,038 - FreqaiExampleStrategy - INFO - 目标列预览:
|
||||
up_or_down &-buy_rsi
|
||||
0 -0.000406 50.106933
|
||||
1 -0.000203 50.106933
|
||||
2 -0.001218 50.106933
|
||||
3 -0.001218 50.106933
|
||||
4 -0.001015 50.106933
|
||||
2025-05-07 13:22:30,072 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600
|
||||
2025-05-07 13:22:30,073 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-07 13:22:30,174 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 0 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-07 13:22:30,175 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-11 to 2025-04-10 --------------------
|
||||
2025-05-07 13:22:30,283 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 147 features
|
||||
2025-05-07 13:22:30,284 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34560 data points
|
||||
[99] validation_0-rmse:0.16406 validation_1-rmse:0.09666
|
||||
[199] validation_0-rmse:0.15761 validation_1-rmse:0.07372
|
||||
2025-05-07 13:24:47,140 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (137.07 secs) --------------------
|
||||
2025-05-07 13:24:47,176 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600--buy_rsi.html
|
||||
2025-05-07 13:24:47,177 - freqtrade.freqai.freqai_interface - INFO - Saving backtest model to disk.
|
||||
2025-05-07 13:24:47,254 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-07 13:24:47,409 - FreqaiExampleStrategy - DEBUG - do_predict 列存在,前5行预览:
|
||||
do_predict
|
||||
0 0.0
|
||||
1 0.0
|
||||
2 0.0
|
||||
3 0.0
|
||||
4 0.0
|
||||
2025-05-07 13:24:47,418 - FreqaiExampleStrategy - INFO - 动态参数:buy_rsi=38.03638534545898, sell_rsi=58.03638534545898, stoploss=-0.15, trailing_stop_positive=0.05
|
||||
2025-05-07 13:24:47,621 - freqtrade.optimize.backtesting - INFO - Backtesting with data from 2025-04-01 00:00:00 up to 2025-04-15 00:00:00 (14 days).
|
||||
2025-05-07 13:24:47,646 - FreqaiExampleStrategy - ERROR - MACD 或 MACD 信号列缺失,无法生成买入信号。尝试重新计算 MACD 列。
|
||||
2025-05-07 13:24:47,648 - FreqaiExampleStrategy - INFO - MACD 列已成功重新计算。
|
||||
2025-05-07 13:24:47,651 - FreqaiExampleStrategy - DEBUG - do_predict 列存在,前5行预览:
|
||||
do_predict
|
||||
0 0.0
|
||||
1 0.0
|
||||
2 0.0
|
||||
3 0.0
|
||||
4 0.0
|
||||
2025-05-07 13:24:47,656 - FreqaiExampleStrategy - DEBUG - do_predict 列存在,前5行预览:
|
||||
do_predict
|
||||
0 0.0
|
||||
1 0.0
|
||||
2 0.0
|
||||
3 0.0
|
||||
4 0.0
|
||||
2025-05-07 13:24:47,659 - FreqaiExampleStrategy - DEBUG - &-buy_rsi_pred 列存在,前5行预览:
|
||||
&-buy_rsi_pred
|
||||
0 20.0
|
||||
1 20.0
|
||||
2 20.0
|
||||
3 20.0
|
||||
4 20.0
|
||||
2025-05-07 13:24:47,873 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-07_13-24-47.meta.json"
|
||||
Result for strategy FreqaiExampleStrategy
|
||||
BACKTESTING REPORT
|
||||
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKB/USDT │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
│ TOTAL │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
LEFT OPEN TRADES REPORT
|
||||
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKB/USDT │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
│ TOTAL │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
ENTER TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ long │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
│ TOTAL │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
EXIT REASON STATS
|
||||
┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ roi │ 3 │ 0.33 │ 1.467 │ 0.15 │ 0:56:00 │ 2 1 0 100 │
|
||||
│ force_exit │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
│ TOTAL │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
MIXED TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ long │ roi │ 3 │ 0.33 │ 1.467 │ 0.15 │ 0:56:00 │ 2 1 0 100 │
|
||||
│ long │ force_exit │ 1 │ -0.12 │ -0.183 │ -0.02 │ 0:03:00 │ 0 0 1 0 │
|
||||
│ TOTAL │ │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │
|
||||
└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
SUMMARY METRICS
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Metric ┃ Value ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ Backtesting from │ 2025-04-01 00:00:00 │
|
||||
│ Backtesting to │ 2025-04-15 00:00:00 │
|
||||
│ Trading Mode │ Spot │
|
||||
│ Max open trades │ 1 │
|
||||
│ │ │
|
||||
│ Total/Daily Avg Trades │ 4 / 0.29 │
|
||||
│ Starting balance │ 1000 USDT │
|
||||
│ Final balance │ 1001.284 USDT │
|
||||
│ Absolute profit │ 1.284 USDT │
|
||||
│ Total profit % │ 0.13% │
|
||||
│ CAGR % │ 3.40% │
|
||||
│ Sortino │ -100.00 │
|
||||
│ Sharpe │ 2.90 │
|
||||
│ Calmar │ 961.07 │
|
||||
│ SQN │ 0.92 │
|
||||
│ Profit factor │ 8.03 │
|
||||
│ Expectancy (Ratio) │ 0.32 (1.51) │
|
||||
│ Avg. daily profit % │ 0.01% │
|
||||
│ Avg. stake amount │ 150 USDT │
|
||||
│ Total trade volume │ 1203.208 USDT │
|
||||
│ │ │
|
||||
│ Best Pair │ OKB/USDT 0.13% │
|
||||
│ Worst Pair │ OKB/USDT 0.13% │
|
||||
│ Best trade │ OKB/USDT 0.90% │
|
||||
│ Worst trade │ OKB/USDT -0.12% │
|
||||
│ Best day │ 1.35 USDT │
|
||||
│ Worst day │ -0.183 USDT │
|
||||
│ Days win/draw/lose │ 2 / 8 / 1 │
|
||||
│ Avg. Duration Winners │ 0:45:00 │
|
||||
│ Avg. Duration Loser │ 0:03:00 │
|
||||
│ Max Consecutive Wins / Loss │ 1 / 1 │
|
||||
│ Rejected Entry signals │ 0 │
|
||||
│ Entry/Exit Timeouts │ 0 / 0 │
|
||||
│ │ │
|
||||
│ Min balance │ 1000.117 USDT │
|
||||
│ Max balance │ 1001.467 USDT │
|
||||
│ Max % of account underwater │ 0.02% │
|
||||
│ Absolute Drawdown (Account) │ 0.02% │
|
||||
│ Absolute Drawdown │ 0.183 USDT │
|
||||
│ Drawdown high │ 1.467 USDT │
|
||||
│ Drawdown low │ 1.284 USDT │
|
||||
│ Drawdown Start │ 2025-04-08 18:39:00 │
|
||||
│ Drawdown End │ 2025-04-15 00:00:00 │
|
||||
│ Market change │ 8.93% │
|
||||
└─────────────────────────────┴─────────────────────┘
|
||||
|
||||
Backtested 2025-04-01 00:00:00 -> 2025-04-15 00:00:00 | Max open trades : 1
|
||||
STRATEGY SUMMARY
|
||||
┏━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
|
||||
│ FreqaiExampleStrategy │ 4 │ 0.21 │ 1.284 │ 0.13 │ 0:43:00 │ 2 1 1 50.0 │ 0.183 USDT 0.02% │
|
||||
└───────────────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴───────────────────┘
|
||||
|
||||
1
result/pair_dictionary.json
Normal file
1
result/pair_dictionary.json
Normal file
@ -0,0 +1 @@
|
||||
{"OKB/USDT":{"model_filename":"cb_okb_1744329600","trained_timestamp":1744329600,"data_path":"/freqtrade/user_data/models/test175/sub-train-OKB_1744329600","extras":{}}}
|
||||
77
result/run_params.json
Normal file
77
result/run_params.json
Normal file
@ -0,0 +1,77 @@
|
||||
{
|
||||
"freqai": {
|
||||
"enabled": true,
|
||||
"identifier": "test175",
|
||||
"freqaimodel": "XGBoostRegressor",
|
||||
"model_path": "/freqtrade/user_data/models",
|
||||
"save_backtesting_prediction": true,
|
||||
"save_backtest_models": true,
|
||||
"backtest_period_days": 10,
|
||||
"purge_old_models": true,
|
||||
"load_trained_model": true,
|
||||
"train_period_days": 90,
|
||||
"live_retrain_hours": 0,
|
||||
"include_predictions_in_final_dataframe": true,
|
||||
"data_kitchen": {
|
||||
"fillna": "ffill",
|
||||
"feature_parameters": {
|
||||
"DI_threshold": 0.5,
|
||||
"weight_factor": 0.9
|
||||
}
|
||||
},
|
||||
"feature_parameters": {
|
||||
"include_timeframes": [
|
||||
"3m",
|
||||
"5m",
|
||||
"15m",
|
||||
"1h"
|
||||
],
|
||||
"include_corr_pairlist": [
|
||||
"BTC/USDT",
|
||||
"ETH/USDT"
|
||||
],
|
||||
"label_period_candles": 12,
|
||||
"include_shifted_candles": 3,
|
||||
"indicator_periods_candles": [
|
||||
10,
|
||||
20,
|
||||
50
|
||||
],
|
||||
"plot_feature_importances": 1,
|
||||
"feature_selection": {
|
||||
"method": "none"
|
||||
},
|
||||
"DI_threshold": 0,
|
||||
"weight_factor": 0,
|
||||
"principal_component_analysis": false,
|
||||
"use_SVM_to_remove_outliers": false,
|
||||
"shuffle_after_split": false,
|
||||
"buffer_train_data_candles": 0
|
||||
},
|
||||
"data_split_parameters": {
|
||||
"test_size": 0.2,
|
||||
"shuffle": false
|
||||
},
|
||||
"model_training_parameters": {
|
||||
"n_estimators": 200,
|
||||
"learning_rate": 0.05,
|
||||
"max_depth": 6,
|
||||
"subsample": 0.8,
|
||||
"colsample_bytree": 0.8
|
||||
},
|
||||
"write_metrics_to_disk": false,
|
||||
"conv_width": 1,
|
||||
"expiration_hours": 0,
|
||||
"activate_tensorboard": true,
|
||||
"wait_for_training_iteration_on_reload": true,
|
||||
"continual_learning": false,
|
||||
"keras": false
|
||||
},
|
||||
"timeframe": "3m",
|
||||
"stake_amount": 150,
|
||||
"stake_currency": "USDT",
|
||||
"max_open_trades": 4,
|
||||
"pairs": [
|
||||
"OKB/USDT"
|
||||
]
|
||||
}
|
||||
3885
result/sub-train-OKB_1743465600/cb_okb_1743465600--buy_rsi.html
Normal file
3885
result/sub-train-OKB_1743465600/cb_okb_1743465600--buy_rsi.html
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
result/sub-train-OKB_1743465600/cb_okb_1743465600_model.joblib
Normal file
BIN
result/sub-train-OKB_1743465600/cb_okb_1743465600_model.joblib
Normal file
Binary file not shown.
Binary file not shown.
BIN
result/sub-train-OKB_1743465600/cb_okb_1743465600_trained_df.pkl
Normal file
BIN
result/sub-train-OKB_1743465600/cb_okb_1743465600_trained_df.pkl
Normal file
Binary file not shown.
Binary file not shown.
3885
result/sub-train-OKB_1744329600/cb_okb_1744329600--buy_rsi.html
Normal file
3885
result/sub-train-OKB_1744329600/cb_okb_1744329600--buy_rsi.html
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
result/sub-train-OKB_1744329600/cb_okb_1744329600_model.joblib
Normal file
BIN
result/sub-train-OKB_1744329600/cb_okb_1744329600_model.joblib
Normal file
Binary file not shown.
Binary file not shown.
BIN
result/sub-train-OKB_1744329600/cb_okb_1744329600_trained_df.pkl
Normal file
BIN
result/sub-train-OKB_1744329600/cb_okb_1744329600_trained_df.pkl
Normal file
Binary file not shown.
Binary file not shown.
@ -1,3 +1,28 @@
|
||||
user_data/models/test175/ [error opening dir]
|
||||
user_data/models/test175/
|
||||
├── backtesting_predictions
|
||||
│ ├── cb_okb_1743465600_prediction.feather
|
||||
│ └── cb_okb_1744329600_prediction.feather
|
||||
├── pair_dictionary.json
|
||||
├── run_params.json
|
||||
├── sub-train-OKB_1743465600
|
||||
│ ├── cb_okb_1743465600--buy_rsi.html
|
||||
│ ├── cb_okb_1743465600_feature_pipeline.pkl
|
||||
│ ├── cb_okb_1743465600_label_pipeline.pkl
|
||||
│ ├── cb_okb_1743465600_metadata.json
|
||||
│ ├── cb_okb_1743465600_model.joblib
|
||||
│ ├── cb_okb_1743465600_trained_dates_df.pkl
|
||||
│ ├── cb_okb_1743465600_trained_df.pkl
|
||||
│ └── tensorboard
|
||||
│ └── events.out.tfevents.1746624010.4f31ac89329a.1.0
|
||||
└── sub-train-OKB_1744329600
|
||||
├── cb_okb_1744329600--buy_rsi.html
|
||||
├── cb_okb_1744329600_feature_pipeline.pkl
|
||||
├── cb_okb_1744329600_label_pipeline.pkl
|
||||
├── cb_okb_1744329600_metadata.json
|
||||
├── cb_okb_1744329600_model.joblib
|
||||
├── cb_okb_1744329600_trained_dates_df.pkl
|
||||
├── cb_okb_1744329600_trained_df.pkl
|
||||
└── tensorboard
|
||||
└── events.out.tfevents.1746624150.4f31ac89329a.1.1
|
||||
|
||||
0 directories, 0 files
|
||||
6 directories, 20 files
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user