could not found model, 没有pkl文件问题解决
This commit is contained in:
parent
b5d1743843
commit
9de70b4508
10
backtesting.sh
Executable file
10
backtesting.sh
Executable file
@ -0,0 +1,10 @@
|
||||
rm /home/ubuntu/freqtrade_old/user_data/models/test175 -fr | true
|
||||
freqtrade backtesting \
|
||||
--logfile user_data/logs/freqtrade.log \
|
||||
--freqaimodel XGBoostRegressorMultiTarget \
|
||||
--config config_examples/config_freqai.okx.json \
|
||||
--strategy-path freqtrade/templates \
|
||||
--strategy OKXRegressionStrategy \
|
||||
--timerange 20250401-20250415 \
|
||||
--fee 0.0008 \
|
||||
--cache none
|
||||
@ -33,10 +33,6 @@
|
||||
],
|
||||
"pair_blacklist": []
|
||||
},
|
||||
"experimental": {
|
||||
"use_sell_signal": true,
|
||||
"ignore_roi_if_buy_signal": false
|
||||
},
|
||||
"telegram": {
|
||||
"enabled": false,
|
||||
"token": "",
|
||||
|
||||
72
config_examples/config_bianace.json
Normal file
72
config_examples/config_bianace.json
Normal file
@ -0,0 +1,72 @@
|
||||
{
|
||||
"$schema": "https://schema.freqtrade.io/schema.json",
|
||||
"max_open_trades": 3,
|
||||
"stake_currency": "USDT",
|
||||
"stake_amount": 0.05,
|
||||
"tradable_balance_ratio": 0.99,
|
||||
"fiat_display_currency": "USD",
|
||||
"timeframe": "5m",
|
||||
"dry_run": true,
|
||||
"cancel_open_orders_on_exit": false,
|
||||
"unfilledtimeout": {
|
||||
"entry": 10,
|
||||
"exit": 10,
|
||||
"exit_timeout_count": 0,
|
||||
"unit": "minutes"
|
||||
},
|
||||
"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": "same",
|
||||
"use_order_book": true,
|
||||
"order_book_top": 1
|
||||
},
|
||||
"exchange": {
|
||||
"name": "binance",
|
||||
"key": "your_exchange_key",
|
||||
"secret": "your_exchange_secret",
|
||||
"ccxt_config": {},
|
||||
"ccxt_async_config": {
|
||||
},
|
||||
"pair_whitelist": [
|
||||
"ETH/USDT",
|
||||
"XRP/USDT",
|
||||
"BTC/USDT"
|
||||
],
|
||||
"pair_blacklist": [
|
||||
"BNB/.*"
|
||||
]
|
||||
},
|
||||
"pairlists": [
|
||||
{"method": "StaticPairList"}
|
||||
],
|
||||
"telegram": {
|
||||
"enabled": false,
|
||||
"token": "your_telegram_token",
|
||||
"chat_id": "your_telegram_chat_id"
|
||||
},
|
||||
"api_server": {
|
||||
"enabled": false,
|
||||
"listen_ip_address": "127.0.0.1",
|
||||
"listen_port": 8080,
|
||||
"verbosity": "error",
|
||||
"jwt_secret_key": "somethingrandom",
|
||||
"CORS_origins": [],
|
||||
"username": "freqtrader",
|
||||
"password": "SuperSecurePassword"
|
||||
},
|
||||
"bot_name": "freqtrade",
|
||||
"initial_state": "running",
|
||||
"force_entry_enable": false,
|
||||
"internals": {
|
||||
"process_throttle_secs": 5
|
||||
}
|
||||
}
|
||||
@ -13,6 +13,7 @@
|
||||
"dry_run_wallet": 1000,
|
||||
"cancel_open_orders_on_exit": true,
|
||||
"stoploss": -0.05,
|
||||
"use_exit_signal": true,
|
||||
"unfilledtimeout": {
|
||||
"entry": 5,
|
||||
"exit": 15
|
||||
|
||||
128
config_examples/config_my_hyperopt.json
Normal file
128
config_examples/config_my_hyperopt.json
Normal file
@ -0,0 +1,128 @@
|
||||
{
|
||||
"$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": "eca767d4-fda5-4a1b-bb28-49ae18093307",
|
||||
"secret": "8CA3628A556ED137977DB298D37BC7F3",
|
||||
"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": 30,
|
||||
"purge_old_models": true,
|
||||
"load_trained_model": true,
|
||||
"train_period_days": 90,
|
||||
"backtest_period_days": 10,
|
||||
"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": "admin"
|
||||
},
|
||||
"use_exit_signal": true,
|
||||
"bot_name": "freqtrade",
|
||||
"initial_state": "running",
|
||||
"force_entry_enable": false,
|
||||
"internals": {
|
||||
"process_throttle_secs": 5,
|
||||
"heartbeat_interval": 20,
|
||||
"loglevel": "DEBUG"
|
||||
}
|
||||
}
|
||||
@ -67,9 +67,11 @@ services:
|
||||
backtesting
|
||||
--logfile /freqtrade/user_data/logs/freqtrade.log
|
||||
--freqaimodel XGBoostRegressor
|
||||
--config /freqtrade/config_examples/config_base_hyperopt.json
|
||||
--config /freqtrade/config_examples/config_my_hyperopt.json
|
||||
--strategy-path /freqtrade/templates
|
||||
--strategy SharpeHyperOptStrategy
|
||||
--strategy FreqaiExampleStrategy
|
||||
--timerange 20250401-20250415
|
||||
--export trades
|
||||
--freqai-backtest
|
||||
--fee 0.0008
|
||||
--cache none
|
||||
|
||||
@ -3,6 +3,7 @@ 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
|
||||
|
||||
@ -31,6 +32,7 @@ class FreqaiExampleStrategy(IStrategy):
|
||||
# FreqAI 配置
|
||||
freqai_info = {
|
||||
"model": "XGBoostRegressor", # 与config保持一致
|
||||
"save_backtest_models": True,
|
||||
"feature_parameters": {
|
||||
"include_timeframes": ["3m", "15m", "1h"], # 与config一致
|
||||
"include_corr_pairlist": ["BTC/USDT", "SOL/USDT"], # 添加相关交易对
|
||||
@ -70,6 +72,17 @@ class FreqaiExampleStrategy(IStrategy):
|
||||
"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:
|
||||
# 保留关键的技术指标
|
||||
|
||||
64
freqtrade/templates/MyHyperoptStragegy.py
Normal file
64
freqtrade/templates/MyHyperoptStragegy.py
Normal file
@ -0,0 +1,64 @@
|
||||
from freqtrade.strategy import IStrategy, CategoricalParameter, DecimalParameter, IntParameter
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import talib.abstract as ta
|
||||
|
||||
|
||||
class MyHyperoptStrategy(IStrategy):
|
||||
INTERFACE_VERSION = 3
|
||||
|
||||
# Buy hyperspace params:
|
||||
buy_params = {
|
||||
"ema_short_period": 10,
|
||||
"ema_long_period": 50,
|
||||
}
|
||||
|
||||
# Sell hyperspace params:
|
||||
sell_params = {
|
||||
"rsi_high": 70,
|
||||
}
|
||||
|
||||
ema_short_period = IntParameter(5, 20, default=10, space="buy", optimize=True)
|
||||
ema_long_period = IntParameter(40, 100, default=50, space="buy", optimize=True)
|
||||
|
||||
rsi_high = IntParameter(60, 85, default=70, space="sell", optimize=True)
|
||||
|
||||
# Minimal ROI designed for the strategy
|
||||
minimal_roi = {
|
||||
"0": 0.1
|
||||
}
|
||||
|
||||
# Optimal stoploss designed for the strategy
|
||||
stoploss = -0.10
|
||||
|
||||
# Trailing stop
|
||||
trailing_stop = False
|
||||
|
||||
def populate_indicators(self, dataframe: pd.DataFrame, metadata: dict) -> pd.DataFrame:
|
||||
# Ensure only the 'close' column is passed to RSI
|
||||
dataframe['rsi'] = ta.RSI(dataframe['close'], timeperiod=14)
|
||||
|
||||
dataframe['ema_short'] = dataframe['close'].ewm(span=self.ema_short_period.value, adjust=False).mean()
|
||||
dataframe['ema_long'] = dataframe['close'].ewm(span=self.ema_long_period.value, adjust=False).mean()
|
||||
|
||||
return dataframe
|
||||
|
||||
def populate_entry_trend(self, dataframe: pd.DataFrame, metadata: dict) -> pd.DataFrame:
|
||||
dataframe.loc[
|
||||
(
|
||||
(dataframe['ema_short'] > dataframe['ema_long']) &
|
||||
(dataframe['rsi'] < 30)
|
||||
),
|
||||
'enter_long'
|
||||
] = 1
|
||||
return dataframe
|
||||
|
||||
def populate_exit_trend(self, dataframe: pd.DataFrame, metadata: dict) -> pd.DataFrame:
|
||||
dataframe.loc[
|
||||
(
|
||||
(dataframe['ema_short'] < dataframe['ema_long']) &
|
||||
(dataframe['rsi'] > self.rsi_high.value)
|
||||
),
|
||||
'exit_long'
|
||||
] = 1
|
||||
return dataframe
|
||||
759
output.log
759
output.log
@ -1,734 +1,25 @@
|
||||
Creating freqtrade_freqtrade_run ...
|
||||
Creating freqtrade_freqtrade_run ... done
|
||||
2025-05-06 04:23:11,765 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b
|
||||
2025-05-06 04:23:11,971 - numexpr.utils - INFO - NumExpr defaulting to 12 threads.
|
||||
2025-05-06 04:23:13,393 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_freqai.okx.json ...
|
||||
2025-05-06 04:23:13,395 - freqtrade.loggers - INFO - Enabling colorized output.
|
||||
2025-05-06 04:23:13,395 - root - INFO - Logfile configured
|
||||
2025-05-06 04:23:13,396 - freqtrade.loggers - INFO - Verbosity set to 0
|
||||
2025-05-06 04:23:13,396 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates
|
||||
2025-05-06 04:23:13,396 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ...
|
||||
2025-05-06 04:23:13,397 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ...
|
||||
2025-05-06 04:23:13,397 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250401-20250415 ...
|
||||
2025-05-06 04:23:13,431 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...
|
||||
2025-05-06 04:23:13,432 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ...
|
||||
2025-05-06 04:23:13,432 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ...
|
||||
2025-05-06 04:23:13,432 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250401-20250415
|
||||
2025-05-06 04:23:13,433 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor
|
||||
2025-05-06 04:23:13,434 - freqtrade.exchange.check_exchange - INFO - Checking exchange...
|
||||
2025-05-06 04:23:13,441 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team.
|
||||
2025-05-06 04:23:13,441 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.
|
||||
2025-05-06 04:23:13,441 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-06 04:23:13,444 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode
|
||||
2025-05-06 04:23:13,444 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled
|
||||
2025-05-06 04:23:13,445 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77
|
||||
2025-05-06 04:23:13,445 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}}
|
||||
2025-05-06 04:23:13,450 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000}
|
||||
2025-05-06 04:23:13,455 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX"
|
||||
2025-05-06 04:23:16,284 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'...
|
||||
2025-05-06 04:23:16,338 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy OKXRegressionStrategy from '/freqtrade/templates/OKXRegressionStrategy.py'...
|
||||
2025-05-06 04:23:16,338 - freqtrade.strategy.hyper - INFO - Found no parameter file.
|
||||
2025-05-06 04:23:16,339 - OKXRegressionStrategy - INFO - FreqAI 模型路径:/freqtrade/user_data/models
|
||||
2025-05-06 04:23:16,339 - OKXRegressionStrategy - WARNING - ⚠️ 模型文件未找到,请确认是否训练完成
|
||||
2025-05-06 04:23:16,339 - OKXRegressionStrategy - INFO - 🔍 正在尝试从 /freqtrade/user_data/models 加载模型
|
||||
2025-05-06 04:23:16,340 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m.
|
||||
2025-05-06 04:23:16,340 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05.
|
||||
2025-05-06 04:23:16,340 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT.
|
||||
2025-05-06 04:23:16,341 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150.
|
||||
2025-05-06 04:23:16,341 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30.
|
||||
2025-05-06 04:23:16,341 - 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-06 04:23:16,342 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4.
|
||||
2025-05-06 04:23:16,342 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {}
|
||||
2025-05-06 04:23:16,342 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0
|
||||
2025-05-06 04:23:16,344 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False
|
||||
2025-05-06 04:23:16,344 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False
|
||||
2025-05-06 04:23:16,344 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True
|
||||
2025-05-06 04:23:16,344 - 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-06 04:23:16,345 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}
|
||||
2025-05-06 04:23:16,345 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT
|
||||
2025-05-06 04:23:16,345 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'}
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False
|
||||
2025-05-06 04:23:16,347 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False
|
||||
2025-05-06 04:23:16,347 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0
|
||||
2025-05-06 04:23:16,347 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4
|
||||
2025-05-06 04:23:16,349 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-06 04:23:16,352 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'...
|
||||
2025-05-06 04:23:16,357 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config.
|
||||
2025-05-06 04:23:16,358 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-06 04:23:16,358 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ...
|
||||
2025-05-06 04:23:16,442 - 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-06 04:23:16,443 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators
|
||||
2025-05-06 04:23:16,443 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy OKXRegressionStrategy
|
||||
2025-05-06 04:23:18,018 - matplotlib.font_manager - INFO - generated new fontManager
|
||||
2025-05-06 04:23:18,222 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'...
|
||||
2025-05-06 04:23:18,223 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch
|
||||
2025-05-06 04:23:18,223 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch
|
||||
2025-05-06 04:23:18,223 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT']
|
||||
2025-05-06 04:23:18,224 - freqtrade.strategy.hyper - INFO - No params for buy found, using default values.
|
||||
2025-05-06 04:23:18,224 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_period = 14
|
||||
2025-05-06 04:23:18,225 - freqtrade.strategy.hyper - INFO - No params for sell found, using default values.
|
||||
2025-05-06 04:23:18,225 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_multiplier = 2.0
|
||||
2025-05-06 04:23:18,226 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values.
|
||||
2025-05-06 04:23:18,230 - OKXRegressionStrategy - DEBUG - FreqAI 对象:<class 'XGBoostRegressor.XGBoostRegressor'>
|
||||
2025-05-06 04:23:18,232 - freqtrade.freqai.freqai_interface - INFO - Training 2 timeranges
|
||||
2025-05-06 04:23:18,234 - 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-06 04:23:18,234 - 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-06 04:23:18,258 - OKXRegressionStrategy - DEBUG - 周期 10 特征:['%-%-macd-10', '%-%-macdsignal-10', '%-%-bb_width-10', '%-%-volume_ma-10']
|
||||
2025-05-06 04:23:18,280 - OKXRegressionStrategy - DEBUG - 周期 20 特征:['%-%-macd-20', '%-%-macdsignal-20', '%-%-bb_width-20', '%-%-volume_ma-20']
|
||||
2025-05-06 04:23:18,302 - OKXRegressionStrategy - DEBUG - 周期 50 特征:['%-%-macd-50', '%-%-macdsignal-50', '%-%-bb_width-50', '%-%-volume_ma-50']
|
||||
2025-05-06 04:23:18,393 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-06 04:23:18,394 - 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-06 04:23:18,431 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_10
|
||||
2025-05-06 04:23:18,437 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_20
|
||||
2025-05-06 04:23:18,445 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_50
|
||||
2025-05-06 04:23:18,526 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-06 04:23:18,526 - 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-06 04:23:18,547 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_10
|
||||
2025-05-06 04:23:18,552 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_20
|
||||
2025-05-06 04:23:18,557 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_50
|
||||
2025-05-06 04:23:18,628 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-06 04:23:18,628 - 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-06 04:23:18,644 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_10
|
||||
2025-05-06 04:23:18,648 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_20
|
||||
2025-05-06 04:23:18,652 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_50
|
||||
2025-05-06 04:23:19,041 - OKXRegressionStrategy - DEBUG - 全局特征:['%-%-macd-10_10_OKB/USDT_3m', '%-%-macdsignal-10_10_OKB/USDT_3m', '%-%-bb_width-10_10_OKB/USDT_3m',
|
||||
'%-%-volume_ma-10_10_OKB/USDT_3m', '%-%-macd-20_20_OKB/USDT_3m', '%-%-macdsignal-20_20_OKB/USDT_3m', '%-%-bb_width-20_20_OKB/USDT_3m', '%-%-volume_ma-20_20_OKB/USDT_3m', '%-%-macd-50_50_OKB/USDT_3m',
|
||||
'%-%-macdsignal-50_50_OKB/USDT_3m', '%-%-bb_width-50_50_OKB/USDT_3m', '%-%-volume_ma-50_50_OKB/USDT_3m', '%-%-macd-10_10_shift-1_OKB/USDT_3m', '%-%-macdsignal-10_10_shift-1_OKB/USDT_3m',
|
||||
'%-%-bb_width-10_10_shift-1_OKB/USDT_3m', '%-%-volume_ma-10_10_shift-1_OKB/USDT_3m', '%-%-macd-20_20_shift-1_OKB/USDT_3m', '%-%-macdsignal-20_20_shift-1_OKB/USDT_3m',
|
||||
'%-%-bb_width-20_20_shift-1_OKB/USDT_3m', '%-%-volume_ma-20_20_shift-1_OKB/USDT_3m', '%-%-macd-50_50_shift-1_OKB/USDT_3m', '%-%-macdsignal-50_50_shift-1_OKB/USDT_3m',
|
||||
'%-%-bb_width-50_50_shift-1_OKB/USDT_3m', '%-%-volume_ma-50_50_shift-1_OKB/USDT_3m', '%-%-macd-10_10_shift-2_OKB/USDT_3m', '%-%-macdsignal-10_10_shift-2_OKB/USDT_3m',
|
||||
'%-%-bb_width-10_10_shift-2_OKB/USDT_3m', '%-%-volume_ma-10_10_shift-2_OKB/USDT_3m', '%-%-macd-20_20_shift-2_OKB/USDT_3m', '%-%-macdsignal-20_20_shift-2_OKB/USDT_3m',
|
||||
'%-%-bb_width-20_20_shift-2_OKB/USDT_3m', '%-%-volume_ma-20_20_shift-2_OKB/USDT_3m', '%-%-macd-50_50_shift-2_OKB/USDT_3m', '%-%-macdsignal-50_50_shift-2_OKB/USDT_3m',
|
||||
'%-%-bb_width-50_50_shift-2_OKB/USDT_3m', '%-%-volume_ma-50_50_shift-2_OKB/USDT_3m', '%-%-macd-10_10_shift-3_OKB/USDT_3m', '%-%-macdsignal-10_10_shift-3_OKB/USDT_3m',
|
||||
'%-%-bb_width-10_10_shift-3_OKB/USDT_3m', '%-%-volume_ma-10_10_shift-3_OKB/USDT_3m', '%-%-macd-20_20_shift-3_OKB/USDT_3m', '%-%-macdsignal-20_20_shift-3_OKB/USDT_3m',
|
||||
'%-%-bb_width-20_20_shift-3_OKB/USDT_3m', '%-%-volume_ma-20_20_shift-3_OKB/USDT_3m', '%-%-macd-50_50_shift-3_OKB/USDT_3m', '%-%-macdsignal-50_50_shift-3_OKB/USDT_3m',
|
||||
'%-%-bb_width-50_50_shift-3_OKB/USDT_3m', '%-%-volume_ma-50_50_shift-3_OKB/USDT_3m', '%-%-macd-10_10_OKB/USDT_5m', '%-%-macdsignal-10_10_OKB/USDT_5m', '%-%-bb_width-10_10_OKB/USDT_5m',
|
||||
'%-%-volume_ma-10_10_OKB/USDT_5m', '%-%-macd-20_20_OKB/USDT_5m', '%-%-macdsignal-20_20_OKB/USDT_5m', '%-%-bb_width-20_20_OKB/USDT_5m', '%-%-volume_ma-20_20_OKB/USDT_5m', '%-%-macd-50_50_OKB/USDT_5m',
|
||||
'%-%-macdsignal-50_50_OKB/USDT_5m', '%-%-bb_width-50_50_OKB/USDT_5m', '%-%-volume_ma-50_50_OKB/USDT_5m', '%-%-macd-10_10_shift-1_OKB/USDT_5m', '%-%-macdsignal-10_10_shift-1_OKB/USDT_5m',
|
||||
'%-%-bb_width-10_10_shift-1_OKB/USDT_5m', '%-%-volume_ma-10_10_shift-1_OKB/USDT_5m', '%-%-macd-20_20_shift-1_OKB/USDT_5m', '%-%-macdsignal-20_20_shift-1_OKB/USDT_5m',
|
||||
'%-%-bb_width-20_20_shift-1_OKB/USDT_5m', '%-%-volume_ma-20_20_shift-1_OKB/USDT_5m', '%-%-macd-50_50_shift-1_OKB/USDT_5m', '%-%-macdsignal-50_50_shift-1_OKB/USDT_5m',
|
||||
'%-%-bb_width-50_50_shift-1_OKB/USDT_5m', '%-%-volume_ma-50_50_shift-1_OKB/USDT_5m', '%-%-macd-10_10_shift-2_OKB/USDT_5m', '%-%-macdsignal-10_10_shift-2_OKB/USDT_5m',
|
||||
'%-%-bb_width-10_10_shift-2_OKB/USDT_5m', '%-%-volume_ma-10_10_shift-2_OKB/USDT_5m', '%-%-macd-20_20_shift-2_OKB/USDT_5m', '%-%-macdsignal-20_20_shift-2_OKB/USDT_5m',
|
||||
'%-%-bb_width-20_20_shift-2_OKB/USDT_5m', '%-%-volume_ma-20_20_shift-2_OKB/USDT_5m', '%-%-macd-50_50_shift-2_OKB/USDT_5m', '%-%-macdsignal-50_50_shift-2_OKB/USDT_5m',
|
||||
'%-%-bb_width-50_50_shift-2_OKB/USDT_5m', '%-%-volume_ma-50_50_shift-2_OKB/USDT_5m', '%-%-macd-10_10_shift-3_OKB/USDT_5m', '%-%-macdsignal-10_10_shift-3_OKB/USDT_5m',
|
||||
'%-%-bb_width-10_10_shift-3_OKB/USDT_5m', '%-%-volume_ma-10_10_shift-3_OKB/USDT_5m', '%-%-macd-20_20_shift-3_OKB/USDT_5m', '%-%-macdsignal-20_20_shift-3_OKB/USDT_5m',
|
||||
'%-%-bb_width-20_20_shift-3_OKB/USDT_5m', '%-%-volume_ma-20_20_shift-3_OKB/USDT_5m', '%-%-macd-50_50_shift-3_OKB/USDT_5m', '%-%-macdsignal-50_50_shift-3_OKB/USDT_5m',
|
||||
'%-%-bb_width-50_50_shift-3_OKB/USDT_5m', '%-%-volume_ma-50_50_shift-3_OKB/USDT_5m', '%-%-macd-10_10_OKB/USDT_15m', '%-%-macdsignal-10_10_OKB/USDT_15m', '%-%-bb_width-10_10_OKB/USDT_15m',
|
||||
'%-%-volume_ma-10_10_OKB/USDT_15m', '%-%-macd-20_20_OKB/USDT_15m', '%-%-macdsignal-20_20_OKB/USDT_15m', '%-%-bb_width-20_20_OKB/USDT_15m', '%-%-volume_ma-20_20_OKB/USDT_15m',
|
||||
'%-%-macd-50_50_OKB/USDT_15m', '%-%-macdsignal-50_50_OKB/USDT_15m', '%-%-bb_width-50_50_OKB/USDT_15m', '%-%-volume_ma-50_50_OKB/USDT_15m', '%-%-macd-10_10_shift-1_OKB/USDT_15m',
|
||||
'%-%-macdsignal-10_10_shift-1_OKB/USDT_15m', '%-%-bb_width-10_10_shift-1_OKB/USDT_15m', '%-%-volume_ma-10_10_shift-1_OKB/USDT_15m', '%-%-macd-20_20_shift-1_OKB/USDT_15m',
|
||||
'%-%-macdsignal-20_20_shift-1_OKB/USDT_15m', '%-%-bb_width-20_20_shift-1_OKB/USDT_15m', '%-%-volume_ma-20_20_shift-1_OKB/USDT_15m', '%-%-macd-50_50_shift-1_OKB/USDT_15m',
|
||||
'%-%-macdsignal-50_50_shift-1_OKB/USDT_15m', '%-%-bb_width-50_50_shift-1_OKB/USDT_15m', '%-%-volume_ma-50_50_shift-1_OKB/USDT_15m', '%-%-macd-10_10_shift-2_OKB/USDT_15m',
|
||||
'%-%-macdsignal-10_10_shift-2_OKB/USDT_15m', '%-%-bb_width-10_10_shift-2_OKB/USDT_15m', '%-%-volume_ma-10_10_shift-2_OKB/USDT_15m', '%-%-macd-20_20_shift-2_OKB/USDT_15m',
|
||||
'%-%-macdsignal-20_20_shift-2_OKB/USDT_15m', '%-%-bb_width-20_20_shift-2_OKB/USDT_15m', '%-%-volume_ma-20_20_shift-2_OKB/USDT_15m', '%-%-macd-50_50_shift-2_OKB/USDT_15m',
|
||||
'%-%-macdsignal-50_50_shift-2_OKB/USDT_15m', '%-%-bb_width-50_50_shift-2_OKB/USDT_15m', '%-%-volume_ma-50_50_shift-2_OKB/USDT_15m', '%-%-macd-10_10_shift-3_OKB/USDT_15m',
|
||||
'%-%-macdsignal-10_10_shift-3_OKB/USDT_15m', '%-%-bb_width-10_10_shift-3_OKB/USDT_15m', '%-%-volume_ma-10_10_shift-3_OKB/USDT_15m', '%-%-macd-20_20_shift-3_OKB/USDT_15m',
|
||||
'%-%-macdsignal-20_20_shift-3_OKB/USDT_15m', '%-%-bb_width-20_20_shift-3_OKB/USDT_15m', '%-%-volume_ma-20_20_shift-3_OKB/USDT_15m', '%-%-macd-50_50_shift-3_OKB/USDT_15m',
|
||||
'%-%-macdsignal-50_50_shift-3_OKB/USDT_15m', '%-%-bb_width-50_50_shift-3_OKB/USDT_15m', '%-%-volume_ma-50_50_shift-3_OKB/USDT_15m', '%-%-macd-10_10_OKB/USDT_1h', '%-%-macdsignal-10_10_OKB/USDT_1h',
|
||||
'%-%-bb_width-10_10_OKB/USDT_1h', '%-%-volume_ma-10_10_OKB/USDT_1h', '%-%-macd-20_20_OKB/USDT_1h', '%-%-macdsignal-20_20_OKB/USDT_1h', '%-%-bb_width-20_20_OKB/USDT_1h',
|
||||
'%-%-volume_ma-20_20_OKB/USDT_1h', '%-%-macd-50_50_OKB/USDT_1h', '%-%-macdsignal-50_50_OKB/USDT_1h', '%-%-bb_width-50_50_OKB/USDT_1h', '%-%-volume_ma-50_50_OKB/USDT_1h',
|
||||
'%-%-macd-10_10_shift-1_OKB/USDT_1h', '%-%-macdsignal-10_10_shift-1_OKB/USDT_1h', '%-%-bb_width-10_10_shift-1_OKB/USDT_1h', '%-%-volume_ma-10_10_shift-1_OKB/USDT_1h',
|
||||
'%-%-macd-20_20_shift-1_OKB/USDT_1h', '%-%-macdsignal-20_20_shift-1_OKB/USDT_1h', '%-%-bb_width-20_20_shift-1_OKB/USDT_1h', '%-%-volume_ma-20_20_shift-1_OKB/USDT_1h',
|
||||
'%-%-macd-50_50_shift-1_OKB/USDT_1h', '%-%-macdsignal-50_50_shift-1_OKB/USDT_1h', '%-%-bb_width-50_50_shift-1_OKB/USDT_1h', '%-%-volume_ma-50_50_shift-1_OKB/USDT_1h',
|
||||
'%-%-macd-10_10_shift-2_OKB/USDT_1h', '%-%-macdsignal-10_10_shift-2_OKB/USDT_1h', '%-%-bb_width-10_10_shift-2_OKB/USDT_1h', '%-%-volume_ma-10_10_shift-2_OKB/USDT_1h',
|
||||
'%-%-macd-20_20_shift-2_OKB/USDT_1h', '%-%-macdsignal-20_20_shift-2_OKB/USDT_1h', '%-%-bb_width-20_20_shift-2_OKB/USDT_1h', '%-%-volume_ma-20_20_shift-2_OKB/USDT_1h',
|
||||
'%-%-macd-50_50_shift-2_OKB/USDT_1h', '%-%-macdsignal-50_50_shift-2_OKB/USDT_1h', '%-%-bb_width-50_50_shift-2_OKB/USDT_1h', '%-%-volume_ma-50_50_shift-2_OKB/USDT_1h',
|
||||
'%-%-macd-10_10_shift-3_OKB/USDT_1h', '%-%-macdsignal-10_10_shift-3_OKB/USDT_1h', '%-%-bb_width-10_10_shift-3_OKB/USDT_1h', '%-%-volume_ma-10_10_shift-3_OKB/USDT_1h',
|
||||
'%-%-macd-20_20_shift-3_OKB/USDT_1h', '%-%-macdsignal-20_20_shift-3_OKB/USDT_1h', '%-%-bb_width-20_20_shift-3_OKB/USDT_1h', '%-%-volume_ma-20_20_shift-3_OKB/USDT_1h',
|
||||
'%-%-macd-50_50_shift-3_OKB/USDT_1h', '%-%-macdsignal-50_50_shift-3_OKB/USDT_1h', '%-%-bb_width-50_50_shift-3_OKB/USDT_1h', '%-%-volume_ma-50_50_shift-3_OKB/USDT_1h']
|
||||
2025-05-06 04:23:19,092 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-06 04:23:19,093 - 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-06 04:23:19,161 - OKXRegressionStrategy - DEBUG - 周期 10 特征:['%-%-macd-10', '%-%-macdsignal-10', '%-%-bb_width-10', '%-%-volume_ma-10']
|
||||
2025-05-06 04:23:19,177 - OKXRegressionStrategy - DEBUG - 周期 20 特征:['%-%-macd-20', '%-%-macdsignal-20', '%-%-bb_width-20', '%-%-volume_ma-20']
|
||||
2025-05-06 04:23:19,194 - OKXRegressionStrategy - DEBUG - 周期 50 特征:['%-%-macd-50', '%-%-macdsignal-50', '%-%-bb_width-50', '%-%-volume_ma-50']
|
||||
2025-05-06 04:23:19,320 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-06 04:23:19,320 - 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-06 04:23:19,359 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_10
|
||||
2025-05-06 04:23:19,365 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_20
|
||||
2025-05-06 04:23:19,373 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_50
|
||||
2025-05-06 04:23:19,546 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-06 04:23:19,547 - 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-06 04:23:19,568 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_10
|
||||
2025-05-06 04:23:19,572 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_20
|
||||
2025-05-06 04:23:19,577 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_50
|
||||
2025-05-06 04:23:19,734 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-06 04:23:19,735 - 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-06 04:23:19,752 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_10
|
||||
2025-05-06 04:23:19,756 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_20
|
||||
2025-05-06 04:23:19,760 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_50
|
||||
2025-05-06 04:23:20,021 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-06 04:23:20,021 - 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-06 04:23:20,082 - OKXRegressionStrategy - DEBUG - 周期 10 特征:['%-%-macd-10', '%-%-macdsignal-10', '%-%-bb_width-10', '%-%-volume_ma-10']
|
||||
2025-05-06 04:23:20,097 - OKXRegressionStrategy - DEBUG - 周期 20 特征:['%-%-macd-20', '%-%-macdsignal-20', '%-%-bb_width-20', '%-%-volume_ma-20']
|
||||
2025-05-06 04:23:20,115 - OKXRegressionStrategy - DEBUG - 周期 50 特征:['%-%-macd-50', '%-%-macdsignal-50', '%-%-bb_width-50', '%-%-volume_ma-50']
|
||||
2025-05-06 04:23:20,296 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-06 04:23:20,297 - 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-06 04:23:20,333 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_10
|
||||
2025-05-06 04:23:20,339 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_20
|
||||
2025-05-06 04:23:20,345 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_50
|
||||
2025-05-06 04:23:20,583 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-06 04:23:20,584 - 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-06 04:23:20,605 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_10
|
||||
2025-05-06 04:23:20,609 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_20
|
||||
2025-05-06 04:23:20,614 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_50
|
||||
2025-05-06 04:23:20,859 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-06 04:23:20,860 - 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-06 04:23:20,877 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_10
|
||||
2025-05-06 04:23:20,881 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_20
|
||||
2025-05-06 04:23:20,885 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_50
|
||||
2025-05-06 04:23:35,159 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600
|
||||
2025-05-06 04:23:35,160 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-06 04:23:35,505 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 51 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-06 04:23:35,505 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-01 to 2025-03-31 --------------------
|
||||
2025-05-06 04:23:35,677 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day']
|
||||
2025-05-06 04:23:35,817 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 577 features
|
||||
2025-05-06 04:23:35,817 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34519 data points
|
||||
[0] validation_0-rmse:0.60502 validation_1-rmse:0.60246
|
||||
[1] validation_0-rmse:0.58239 validation_1-rmse:0.57853
|
||||
[2] validation_0-rmse:0.56150 validation_1-rmse:0.55600
|
||||
[3] validation_0-rmse:0.54183 validation_1-rmse:0.53486
|
||||
[4] validation_0-rmse:0.52357 validation_1-rmse:0.51489
|
||||
[5] validation_0-rmse:0.50642 validation_1-rmse:0.49598
|
||||
[6] validation_0-rmse:0.49044 validation_1-rmse:0.47832
|
||||
[7] validation_0-rmse:0.47544 validation_1-rmse:0.46174
|
||||
[8] validation_0-rmse:0.46173 validation_1-rmse:0.44610
|
||||
[9] validation_0-rmse:0.44889 validation_1-rmse:0.43147
|
||||
[10] validation_0-rmse:0.43666 validation_1-rmse:0.41779
|
||||
[11] validation_0-rmse:0.42555 validation_1-rmse:0.40494
|
||||
[12] validation_0-rmse:0.41488 validation_1-rmse:0.39269
|
||||
[13] validation_0-rmse:0.40559 validation_1-rmse:0.38140
|
||||
[14] validation_0-rmse:0.39705 validation_1-rmse:0.37079
|
||||
[15] validation_0-rmse:0.38894 validation_1-rmse:0.36094
|
||||
[16] validation_0-rmse:0.38120 validation_1-rmse:0.35168
|
||||
[17] validation_0-rmse:0.37429 validation_1-rmse:0.34283
|
||||
[18] validation_0-rmse:0.36774 validation_1-rmse:0.33441
|
||||
[19] validation_0-rmse:0.36207 validation_1-rmse:0.32679
|
||||
[20] validation_0-rmse:0.35671 validation_1-rmse:0.31954
|
||||
[21] validation_0-rmse:0.35172 validation_1-rmse:0.31301
|
||||
[22] validation_0-rmse:0.34692 validation_1-rmse:0.30662
|
||||
[23] validation_0-rmse:0.34262 validation_1-rmse:0.30074
|
||||
[24] validation_0-rmse:0.33870 validation_1-rmse:0.29535
|
||||
[25] validation_0-rmse:0.33513 validation_1-rmse:0.29026
|
||||
[26] validation_0-rmse:0.33205 validation_1-rmse:0.28544
|
||||
[27] validation_0-rmse:0.32919 validation_1-rmse:0.28084
|
||||
[28] validation_0-rmse:0.32645 validation_1-rmse:0.27689
|
||||
[29] validation_0-rmse:0.32396 validation_1-rmse:0.27293
|
||||
[30] validation_0-rmse:0.32177 validation_1-rmse:0.26930
|
||||
[31] validation_0-rmse:0.31982 validation_1-rmse:0.26553
|
||||
[32] validation_0-rmse:0.31804 validation_1-rmse:0.26227
|
||||
[33] validation_0-rmse:0.31644 validation_1-rmse:0.25917
|
||||
[34] validation_0-rmse:0.31502 validation_1-rmse:0.25626
|
||||
[35] validation_0-rmse:0.31355 validation_1-rmse:0.25340
|
||||
[36] validation_0-rmse:0.31243 validation_1-rmse:0.25060
|
||||
[37] validation_0-rmse:0.31129 validation_1-rmse:0.24836
|
||||
[38] validation_0-rmse:0.31046 validation_1-rmse:0.24605
|
||||
[39] validation_0-rmse:0.30936 validation_1-rmse:0.24380
|
||||
[40] validation_0-rmse:0.30855 validation_1-rmse:0.24174
|
||||
[41] validation_0-rmse:0.30784 validation_1-rmse:0.23973
|
||||
[42] validation_0-rmse:0.30711 validation_1-rmse:0.23770
|
||||
[43] validation_0-rmse:0.30639 validation_1-rmse:0.23586
|
||||
[44] validation_0-rmse:0.30584 validation_1-rmse:0.23432
|
||||
[45] validation_0-rmse:0.30534 validation_1-rmse:0.23277
|
||||
[46] validation_0-rmse:0.30464 validation_1-rmse:0.23120
|
||||
[47] validation_0-rmse:0.30426 validation_1-rmse:0.22968
|
||||
[48] validation_0-rmse:0.30381 validation_1-rmse:0.22810
|
||||
[49] validation_0-rmse:0.30344 validation_1-rmse:0.22672
|
||||
[50] validation_0-rmse:0.30321 validation_1-rmse:0.22529
|
||||
[51] validation_0-rmse:0.30296 validation_1-rmse:0.22408
|
||||
[52] validation_0-rmse:0.30273 validation_1-rmse:0.22289
|
||||
[53] validation_0-rmse:0.30254 validation_1-rmse:0.22185
|
||||
[54] validation_0-rmse:0.30229 validation_1-rmse:0.22096
|
||||
[55] validation_0-rmse:0.30198 validation_1-rmse:0.21986
|
||||
[56] validation_0-rmse:0.30199 validation_1-rmse:0.21878
|
||||
[57] validation_0-rmse:0.30159 validation_1-rmse:0.21784
|
||||
[58] validation_0-rmse:0.30128 validation_1-rmse:0.21672
|
||||
[59] validation_0-rmse:0.30099 validation_1-rmse:0.21586
|
||||
[60] validation_0-rmse:0.30092 validation_1-rmse:0.21505
|
||||
[61] validation_0-rmse:0.30090 validation_1-rmse:0.21440
|
||||
[62] validation_0-rmse:0.30081 validation_1-rmse:0.21340
|
||||
[63] validation_0-rmse:0.30062 validation_1-rmse:0.21249
|
||||
[64] validation_0-rmse:0.30055 validation_1-rmse:0.21159
|
||||
[65] validation_0-rmse:0.30051 validation_1-rmse:0.21079
|
||||
[66] validation_0-rmse:0.30051 validation_1-rmse:0.21004
|
||||
[67] validation_0-rmse:0.30043 validation_1-rmse:0.20917
|
||||
[68] validation_0-rmse:0.30052 validation_1-rmse:0.20848
|
||||
[69] validation_0-rmse:0.30036 validation_1-rmse:0.20766
|
||||
[70] validation_0-rmse:0.30033 validation_1-rmse:0.20669
|
||||
[71] validation_0-rmse:0.30039 validation_1-rmse:0.20609
|
||||
[72] validation_0-rmse:0.30026 validation_1-rmse:0.20547
|
||||
[73] validation_0-rmse:0.30025 validation_1-rmse:0.20486
|
||||
[74] validation_0-rmse:0.30015 validation_1-rmse:0.20425
|
||||
[75] validation_0-rmse:0.30010 validation_1-rmse:0.20353
|
||||
[76] validation_0-rmse:0.30023 validation_1-rmse:0.20262
|
||||
[77] validation_0-rmse:0.30015 validation_1-rmse:0.20194
|
||||
[78] validation_0-rmse:0.30013 validation_1-rmse:0.20138
|
||||
[79] validation_0-rmse:0.30006 validation_1-rmse:0.20076
|
||||
[80] validation_0-rmse:0.30002 validation_1-rmse:0.20001
|
||||
[81] validation_0-rmse:0.30001 validation_1-rmse:0.19937
|
||||
[82] validation_0-rmse:0.29996 validation_1-rmse:0.19888
|
||||
[83] validation_0-rmse:0.29991 validation_1-rmse:0.19817
|
||||
[84] validation_0-rmse:0.29983 validation_1-rmse:0.19749
|
||||
[85] validation_0-rmse:0.29979 validation_1-rmse:0.19685
|
||||
[86] validation_0-rmse:0.29980 validation_1-rmse:0.19612
|
||||
[87] validation_0-rmse:0.29985 validation_1-rmse:0.19562
|
||||
[88] validation_0-rmse:0.29993 validation_1-rmse:0.19485
|
||||
[89] validation_0-rmse:0.29998 validation_1-rmse:0.19424
|
||||
[90] validation_0-rmse:0.29997 validation_1-rmse:0.19374
|
||||
[91] validation_0-rmse:0.29977 validation_1-rmse:0.19298
|
||||
[92] validation_0-rmse:0.29989 validation_1-rmse:0.19240
|
||||
[93] validation_0-rmse:0.29990 validation_1-rmse:0.19180
|
||||
[94] validation_0-rmse:0.29989 validation_1-rmse:0.19107
|
||||
[95] validation_0-rmse:0.29998 validation_1-rmse:0.19031
|
||||
[96] validation_0-rmse:0.29995 validation_1-rmse:0.18978
|
||||
[97] validation_0-rmse:0.29984 validation_1-rmse:0.18929
|
||||
[98] validation_0-rmse:0.29987 validation_1-rmse:0.18874
|
||||
[99] validation_0-rmse:0.29984 validation_1-rmse:0.18813
|
||||
[100] validation_0-rmse:0.29991 validation_1-rmse:0.18752
|
||||
[101] validation_0-rmse:0.30003 validation_1-rmse:0.18683
|
||||
[102] validation_0-rmse:0.30012 validation_1-rmse:0.18609
|
||||
[103] validation_0-rmse:0.30001 validation_1-rmse:0.18556
|
||||
[104] validation_0-rmse:0.30015 validation_1-rmse:0.18482
|
||||
[105] validation_0-rmse:0.30019 validation_1-rmse:0.18399
|
||||
[106] validation_0-rmse:0.30019 validation_1-rmse:0.18324
|
||||
[107] validation_0-rmse:0.30024 validation_1-rmse:0.18277
|
||||
[108] validation_0-rmse:0.30022 validation_1-rmse:0.18211
|
||||
[109] validation_0-rmse:0.30018 validation_1-rmse:0.18177
|
||||
[110] validation_0-rmse:0.30011 validation_1-rmse:0.18115
|
||||
[111] validation_0-rmse:0.30024 validation_1-rmse:0.18062
|
||||
[112] validation_0-rmse:0.30024 validation_1-rmse:0.18016
|
||||
[113] validation_0-rmse:0.30029 validation_1-rmse:0.17966
|
||||
[114] validation_0-rmse:0.30025 validation_1-rmse:0.17926
|
||||
[115] validation_0-rmse:0.30046 validation_1-rmse:0.17866
|
||||
[116] validation_0-rmse:0.30054 validation_1-rmse:0.17797
|
||||
[117] validation_0-rmse:0.30058 validation_1-rmse:0.17726
|
||||
[118] validation_0-rmse:0.30056 validation_1-rmse:0.17664
|
||||
[119] validation_0-rmse:0.30064 validation_1-rmse:0.17618
|
||||
[120] validation_0-rmse:0.30061 validation_1-rmse:0.17575
|
||||
[121] validation_0-rmse:0.30053 validation_1-rmse:0.17521
|
||||
[122] validation_0-rmse:0.30056 validation_1-rmse:0.17463
|
||||
[123] validation_0-rmse:0.30055 validation_1-rmse:0.17436
|
||||
[124] validation_0-rmse:0.30062 validation_1-rmse:0.17371
|
||||
[125] validation_0-rmse:0.30059 validation_1-rmse:0.17323
|
||||
[126] validation_0-rmse:0.30047 validation_1-rmse:0.17279
|
||||
[127] validation_0-rmse:0.30044 validation_1-rmse:0.17239
|
||||
[128] validation_0-rmse:0.30048 validation_1-rmse:0.17173
|
||||
[129] validation_0-rmse:0.30047 validation_1-rmse:0.17118
|
||||
[130] validation_0-rmse:0.30047 validation_1-rmse:0.17057
|
||||
[131] validation_0-rmse:0.30049 validation_1-rmse:0.17024
|
||||
[132] validation_0-rmse:0.30055 validation_1-rmse:0.16960
|
||||
[133] validation_0-rmse:0.30054 validation_1-rmse:0.16926
|
||||
[134] validation_0-rmse:0.30056 validation_1-rmse:0.16871
|
||||
[135] validation_0-rmse:0.30068 validation_1-rmse:0.16810
|
||||
[136] validation_0-rmse:0.30076 validation_1-rmse:0.16755
|
||||
[137] validation_0-rmse:0.30080 validation_1-rmse:0.16717
|
||||
[138] validation_0-rmse:0.30082 validation_1-rmse:0.16668
|
||||
[139] validation_0-rmse:0.30082 validation_1-rmse:0.16634
|
||||
[140] validation_0-rmse:0.30080 validation_1-rmse:0.16603
|
||||
[141] validation_0-rmse:0.30076 validation_1-rmse:0.16560
|
||||
[142] validation_0-rmse:0.30080 validation_1-rmse:0.16524
|
||||
[143] validation_0-rmse:0.30080 validation_1-rmse:0.16466
|
||||
[144] validation_0-rmse:0.30079 validation_1-rmse:0.16414
|
||||
[145] validation_0-rmse:0.30073 validation_1-rmse:0.16359
|
||||
[146] validation_0-rmse:0.30073 validation_1-rmse:0.16302
|
||||
[147] validation_0-rmse:0.30078 validation_1-rmse:0.16250
|
||||
[148] validation_0-rmse:0.30080 validation_1-rmse:0.16206
|
||||
[149] validation_0-rmse:0.30084 validation_1-rmse:0.16151
|
||||
[150] validation_0-rmse:0.30084 validation_1-rmse:0.16111
|
||||
[151] validation_0-rmse:0.30083 validation_1-rmse:0.16062
|
||||
[152] validation_0-rmse:0.30091 validation_1-rmse:0.16025
|
||||
[153] validation_0-rmse:0.30087 validation_1-rmse:0.15992
|
||||
[154] validation_0-rmse:0.30088 validation_1-rmse:0.15955
|
||||
[155] validation_0-rmse:0.30089 validation_1-rmse:0.15928
|
||||
[156] validation_0-rmse:0.30093 validation_1-rmse:0.15884
|
||||
[157] validation_0-rmse:0.30097 validation_1-rmse:0.15836
|
||||
[158] validation_0-rmse:0.30109 validation_1-rmse:0.15789
|
||||
[159] validation_0-rmse:0.30103 validation_1-rmse:0.15763
|
||||
[160] validation_0-rmse:0.30099 validation_1-rmse:0.15731
|
||||
[161] validation_0-rmse:0.30100 validation_1-rmse:0.15694
|
||||
[162] validation_0-rmse:0.30105 validation_1-rmse:0.15647
|
||||
[163] validation_0-rmse:0.30108 validation_1-rmse:0.15600
|
||||
[164] validation_0-rmse:0.30111 validation_1-rmse:0.15558
|
||||
[165] validation_0-rmse:0.30110 validation_1-rmse:0.15529
|
||||
[166] validation_0-rmse:0.30111 validation_1-rmse:0.15486
|
||||
[167] validation_0-rmse:0.30113 validation_1-rmse:0.15449
|
||||
[168] validation_0-rmse:0.30116 validation_1-rmse:0.15413
|
||||
[169] validation_0-rmse:0.30110 validation_1-rmse:0.15385
|
||||
[170] validation_0-rmse:0.30106 validation_1-rmse:0.15331
|
||||
[171] validation_0-rmse:0.30110 validation_1-rmse:0.15298
|
||||
[172] validation_0-rmse:0.30120 validation_1-rmse:0.15253
|
||||
[173] validation_0-rmse:0.30126 validation_1-rmse:0.15212
|
||||
[174] validation_0-rmse:0.30127 validation_1-rmse:0.15180
|
||||
[175] validation_0-rmse:0.30132 validation_1-rmse:0.15153
|
||||
[176] validation_0-rmse:0.30133 validation_1-rmse:0.15122
|
||||
[177] validation_0-rmse:0.30135 validation_1-rmse:0.15082
|
||||
[178] validation_0-rmse:0.30133 validation_1-rmse:0.15050
|
||||
[179] validation_0-rmse:0.30135 validation_1-rmse:0.15021
|
||||
[180] validation_0-rmse:0.30134 validation_1-rmse:0.14986
|
||||
[181] validation_0-rmse:0.30138 validation_1-rmse:0.14955
|
||||
[182] validation_0-rmse:0.30136 validation_1-rmse:0.14933
|
||||
[183] validation_0-rmse:0.30137 validation_1-rmse:0.14903
|
||||
[184] validation_0-rmse:0.30143 validation_1-rmse:0.14858
|
||||
[185] validation_0-rmse:0.30148 validation_1-rmse:0.14817
|
||||
[186] validation_0-rmse:0.30146 validation_1-rmse:0.14778
|
||||
[187] validation_0-rmse:0.30152 validation_1-rmse:0.14754
|
||||
[188] validation_0-rmse:0.30149 validation_1-rmse:0.14722
|
||||
[189] validation_0-rmse:0.30147 validation_1-rmse:0.14697
|
||||
[190] validation_0-rmse:0.30153 validation_1-rmse:0.14672
|
||||
[191] validation_0-rmse:0.30150 validation_1-rmse:0.14643
|
||||
[192] validation_0-rmse:0.30154 validation_1-rmse:0.14610
|
||||
[193] validation_0-rmse:0.30155 validation_1-rmse:0.14576
|
||||
[194] validation_0-rmse:0.30157 validation_1-rmse:0.14545
|
||||
[195] validation_0-rmse:0.30158 validation_1-rmse:0.14510
|
||||
[196] validation_0-rmse:0.30164 validation_1-rmse:0.14472
|
||||
[197] validation_0-rmse:0.30163 validation_1-rmse:0.14436
|
||||
[198] validation_0-rmse:0.30157 validation_1-rmse:0.14409
|
||||
[199] validation_0-rmse:0.30154 validation_1-rmse:0.14371
|
||||
2025-05-06 04:26:29,861 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (174.70 secs) --------------------
|
||||
2025-05-06 04:26:30,080 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600--s_close.html
|
||||
2025-05-06 04:26:30,080 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk.
|
||||
2025-05-06 04:26:30,214 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-06 04:26:30,227 - 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-06 04:26:30,228 - 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-06 04:26:45,365 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600
|
||||
2025-05-06 04:26:45,365 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-06 04:26:45,664 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 12 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-06 04:26:45,665 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-11 to 2025-04-10 --------------------
|
||||
2025-05-06 04:26:45,833 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day']
|
||||
2025-05-06 04:26:45,973 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 577 features
|
||||
2025-05-06 04:26:45,974 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34550 data points
|
||||
[0] validation_0-rmse:0.60465 validation_1-rmse:0.60316
|
||||
[1] validation_0-rmse:0.58269 validation_1-rmse:0.57899
|
||||
[2] validation_0-rmse:0.56203 validation_1-rmse:0.55619
|
||||
[3] validation_0-rmse:0.54249 validation_1-rmse:0.53479
|
||||
[4] validation_0-rmse:0.52416 validation_1-rmse:0.51443
|
||||
[5] validation_0-rmse:0.50757 validation_1-rmse:0.49539
|
||||
[6] validation_0-rmse:0.49180 validation_1-rmse:0.47736
|
||||
[7] validation_0-rmse:0.47728 validation_1-rmse:0.46053
|
||||
[8] validation_0-rmse:0.46376 validation_1-rmse:0.44471
|
||||
[9] validation_0-rmse:0.45106 validation_1-rmse:0.42971
|
||||
[10] validation_0-rmse:0.43910 validation_1-rmse:0.41562
|
||||
[11] validation_0-rmse:0.42818 validation_1-rmse:0.40246
|
||||
[12] validation_0-rmse:0.41784 validation_1-rmse:0.39003
|
||||
[13] validation_0-rmse:0.40838 validation_1-rmse:0.37848
|
||||
[14] validation_0-rmse:0.39980 validation_1-rmse:0.36760
|
||||
[15] validation_0-rmse:0.39182 validation_1-rmse:0.35745
|
||||
[16] validation_0-rmse:0.38460 validation_1-rmse:0.34799
|
||||
[17] validation_0-rmse:0.37762 validation_1-rmse:0.33910
|
||||
[18] validation_0-rmse:0.37155 validation_1-rmse:0.33062
|
||||
[19] validation_0-rmse:0.36592 validation_1-rmse:0.32278
|
||||
[20] validation_0-rmse:0.36081 validation_1-rmse:0.31539
|
||||
[21] validation_0-rmse:0.35594 validation_1-rmse:0.30873
|
||||
[22] validation_0-rmse:0.35183 validation_1-rmse:0.30236
|
||||
[23] validation_0-rmse:0.34758 validation_1-rmse:0.29638
|
||||
[24] validation_0-rmse:0.34376 validation_1-rmse:0.29099
|
||||
[25] validation_0-rmse:0.34028 validation_1-rmse:0.28554
|
||||
[26] validation_0-rmse:0.33701 validation_1-rmse:0.28063
|
||||
[27] validation_0-rmse:0.33401 validation_1-rmse:0.27600
|
||||
[28] validation_0-rmse:0.33171 validation_1-rmse:0.27152
|
||||
[29] validation_0-rmse:0.32912 validation_1-rmse:0.26762
|
||||
[30] validation_0-rmse:0.32699 validation_1-rmse:0.26389
|
||||
[31] validation_0-rmse:0.32488 validation_1-rmse:0.26037
|
||||
[32] validation_0-rmse:0.32312 validation_1-rmse:0.25690
|
||||
[33] validation_0-rmse:0.32166 validation_1-rmse:0.25370
|
||||
[34] validation_0-rmse:0.32004 validation_1-rmse:0.25103
|
||||
[35] validation_0-rmse:0.31858 validation_1-rmse:0.24799
|
||||
[36] validation_0-rmse:0.31737 validation_1-rmse:0.24524
|
||||
[37] validation_0-rmse:0.31629 validation_1-rmse:0.24237
|
||||
[38] validation_0-rmse:0.31527 validation_1-rmse:0.23986
|
||||
[39] validation_0-rmse:0.31436 validation_1-rmse:0.23741
|
||||
[40] validation_0-rmse:0.31349 validation_1-rmse:0.23551
|
||||
[41] validation_0-rmse:0.31271 validation_1-rmse:0.23357
|
||||
[42] validation_0-rmse:0.31211 validation_1-rmse:0.23136
|
||||
[43] validation_0-rmse:0.31125 validation_1-rmse:0.22927
|
||||
[44] validation_0-rmse:0.31077 validation_1-rmse:0.22743
|
||||
[45] validation_0-rmse:0.31016 validation_1-rmse:0.22563
|
||||
[46] validation_0-rmse:0.30968 validation_1-rmse:0.22403
|
||||
[47] validation_0-rmse:0.30933 validation_1-rmse:0.22243
|
||||
[48] validation_0-rmse:0.30908 validation_1-rmse:0.22087
|
||||
[49] validation_0-rmse:0.30864 validation_1-rmse:0.21933
|
||||
[50] validation_0-rmse:0.30828 validation_1-rmse:0.21811
|
||||
[51] validation_0-rmse:0.30815 validation_1-rmse:0.21676
|
||||
[52] validation_0-rmse:0.30790 validation_1-rmse:0.21529
|
||||
[53] validation_0-rmse:0.30744 validation_1-rmse:0.21412
|
||||
[54] validation_0-rmse:0.30730 validation_1-rmse:0.21303
|
||||
[55] validation_0-rmse:0.30701 validation_1-rmse:0.21187
|
||||
[56] validation_0-rmse:0.30667 validation_1-rmse:0.21096
|
||||
[57] validation_0-rmse:0.30639 validation_1-rmse:0.20981
|
||||
[58] validation_0-rmse:0.30629 validation_1-rmse:0.20873
|
||||
[59] validation_0-rmse:0.30583 validation_1-rmse:0.20774
|
||||
[60] validation_0-rmse:0.30563 validation_1-rmse:0.20673
|
||||
[61] validation_0-rmse:0.30556 validation_1-rmse:0.20583
|
||||
[62] validation_0-rmse:0.30535 validation_1-rmse:0.20489
|
||||
[63] validation_0-rmse:0.30507 validation_1-rmse:0.20393
|
||||
[64] validation_0-rmse:0.30501 validation_1-rmse:0.20306
|
||||
[65] validation_0-rmse:0.30480 validation_1-rmse:0.20218
|
||||
[66] validation_0-rmse:0.30457 validation_1-rmse:0.20118
|
||||
[67] validation_0-rmse:0.30460 validation_1-rmse:0.20040
|
||||
[68] validation_0-rmse:0.30449 validation_1-rmse:0.19968
|
||||
[69] validation_0-rmse:0.30455 validation_1-rmse:0.19891
|
||||
[70] validation_0-rmse:0.30454 validation_1-rmse:0.19808
|
||||
[71] validation_0-rmse:0.30438 validation_1-rmse:0.19722
|
||||
[72] validation_0-rmse:0.30428 validation_1-rmse:0.19643
|
||||
[73] validation_0-rmse:0.30425 validation_1-rmse:0.19555
|
||||
[74] validation_0-rmse:0.30421 validation_1-rmse:0.19473
|
||||
[75] validation_0-rmse:0.30403 validation_1-rmse:0.19396
|
||||
[76] validation_0-rmse:0.30405 validation_1-rmse:0.19307
|
||||
[77] validation_0-rmse:0.30415 validation_1-rmse:0.19234
|
||||
[78] validation_0-rmse:0.30421 validation_1-rmse:0.19161
|
||||
[79] validation_0-rmse:0.30418 validation_1-rmse:0.19098
|
||||
[80] validation_0-rmse:0.30412 validation_1-rmse:0.19036
|
||||
[81] validation_0-rmse:0.30416 validation_1-rmse:0.18973
|
||||
[82] validation_0-rmse:0.30414 validation_1-rmse:0.18904
|
||||
[83] validation_0-rmse:0.30416 validation_1-rmse:0.18831
|
||||
[84] validation_0-rmse:0.30425 validation_1-rmse:0.18757
|
||||
[85] validation_0-rmse:0.30426 validation_1-rmse:0.18690
|
||||
[86] validation_0-rmse:0.30431 validation_1-rmse:0.18612
|
||||
[87] validation_0-rmse:0.30435 validation_1-rmse:0.18559
|
||||
[88] validation_0-rmse:0.30432 validation_1-rmse:0.18501
|
||||
[89] validation_0-rmse:0.30422 validation_1-rmse:0.18460
|
||||
[90] validation_0-rmse:0.30420 validation_1-rmse:0.18411
|
||||
[91] validation_0-rmse:0.30425 validation_1-rmse:0.18361
|
||||
[92] validation_0-rmse:0.30425 validation_1-rmse:0.18298
|
||||
[93] validation_0-rmse:0.30445 validation_1-rmse:0.18243
|
||||
[94] validation_0-rmse:0.30441 validation_1-rmse:0.18190
|
||||
[95] validation_0-rmse:0.30455 validation_1-rmse:0.18137
|
||||
[96] validation_0-rmse:0.30453 validation_1-rmse:0.18099
|
||||
[97] validation_0-rmse:0.30450 validation_1-rmse:0.18035
|
||||
[98] validation_0-rmse:0.30454 validation_1-rmse:0.17980
|
||||
[99] validation_0-rmse:0.30462 validation_1-rmse:0.17903
|
||||
[100] validation_0-rmse:0.30460 validation_1-rmse:0.17856
|
||||
[101] validation_0-rmse:0.30456 validation_1-rmse:0.17794
|
||||
[102] validation_0-rmse:0.30448 validation_1-rmse:0.17744
|
||||
[103] validation_0-rmse:0.30450 validation_1-rmse:0.17674
|
||||
[104] validation_0-rmse:0.30463 validation_1-rmse:0.17608
|
||||
[105] validation_0-rmse:0.30462 validation_1-rmse:0.17549
|
||||
[106] validation_0-rmse:0.30473 validation_1-rmse:0.17493
|
||||
[107] validation_0-rmse:0.30482 validation_1-rmse:0.17431
|
||||
[108] validation_0-rmse:0.30487 validation_1-rmse:0.17375
|
||||
[109] validation_0-rmse:0.30492 validation_1-rmse:0.17325
|
||||
[110] validation_0-rmse:0.30497 validation_1-rmse:0.17272
|
||||
[111] validation_0-rmse:0.30501 validation_1-rmse:0.17226
|
||||
[112] validation_0-rmse:0.30490 validation_1-rmse:0.17173
|
||||
[113] validation_0-rmse:0.30499 validation_1-rmse:0.17130
|
||||
[114] validation_0-rmse:0.30502 validation_1-rmse:0.17064
|
||||
[115] validation_0-rmse:0.30514 validation_1-rmse:0.17022
|
||||
[116] validation_0-rmse:0.30513 validation_1-rmse:0.16984
|
||||
[117] validation_0-rmse:0.30510 validation_1-rmse:0.16938
|
||||
[118] validation_0-rmse:0.30504 validation_1-rmse:0.16869
|
||||
[119] validation_0-rmse:0.30506 validation_1-rmse:0.16808
|
||||
[120] validation_0-rmse:0.30503 validation_1-rmse:0.16762
|
||||
[121] validation_0-rmse:0.30519 validation_1-rmse:0.16711
|
||||
[122] validation_0-rmse:0.30521 validation_1-rmse:0.16662
|
||||
[123] validation_0-rmse:0.30529 validation_1-rmse:0.16602
|
||||
[124] validation_0-rmse:0.30535 validation_1-rmse:0.16569
|
||||
[125] validation_0-rmse:0.30539 validation_1-rmse:0.16511
|
||||
[126] validation_0-rmse:0.30549 validation_1-rmse:0.16465
|
||||
[127] validation_0-rmse:0.30558 validation_1-rmse:0.16417
|
||||
[128] validation_0-rmse:0.30564 validation_1-rmse:0.16368
|
||||
[129] validation_0-rmse:0.30565 validation_1-rmse:0.16327
|
||||
[130] validation_0-rmse:0.30571 validation_1-rmse:0.16281
|
||||
[131] validation_0-rmse:0.30570 validation_1-rmse:0.16237
|
||||
[132] validation_0-rmse:0.30577 validation_1-rmse:0.16185
|
||||
[133] validation_0-rmse:0.30579 validation_1-rmse:0.16154
|
||||
[134] validation_0-rmse:0.30577 validation_1-rmse:0.16112
|
||||
[135] validation_0-rmse:0.30581 validation_1-rmse:0.16063
|
||||
[136] validation_0-rmse:0.30594 validation_1-rmse:0.16008
|
||||
[137] validation_0-rmse:0.30596 validation_1-rmse:0.15963
|
||||
[138] validation_0-rmse:0.30606 validation_1-rmse:0.15921
|
||||
[139] validation_0-rmse:0.30607 validation_1-rmse:0.15876
|
||||
[140] validation_0-rmse:0.30612 validation_1-rmse:0.15846
|
||||
[141] validation_0-rmse:0.30608 validation_1-rmse:0.15811
|
||||
[142] validation_0-rmse:0.30613 validation_1-rmse:0.15762
|
||||
[143] validation_0-rmse:0.30618 validation_1-rmse:0.15707
|
||||
[144] validation_0-rmse:0.30617 validation_1-rmse:0.15664
|
||||
[145] validation_0-rmse:0.30630 validation_1-rmse:0.15629
|
||||
[146] validation_0-rmse:0.30636 validation_1-rmse:0.15593
|
||||
[147] validation_0-rmse:0.30630 validation_1-rmse:0.15546
|
||||
[148] validation_0-rmse:0.30633 validation_1-rmse:0.15500
|
||||
[149] validation_0-rmse:0.30630 validation_1-rmse:0.15450
|
||||
[150] validation_0-rmse:0.30633 validation_1-rmse:0.15420
|
||||
[151] validation_0-rmse:0.30633 validation_1-rmse:0.15383
|
||||
[152] validation_0-rmse:0.30645 validation_1-rmse:0.15336
|
||||
[153] validation_0-rmse:0.30648 validation_1-rmse:0.15297
|
||||
[154] validation_0-rmse:0.30652 validation_1-rmse:0.15255
|
||||
[155] validation_0-rmse:0.30657 validation_1-rmse:0.15229
|
||||
[156] validation_0-rmse:0.30654 validation_1-rmse:0.15201
|
||||
[157] validation_0-rmse:0.30662 validation_1-rmse:0.15166
|
||||
[158] validation_0-rmse:0.30664 validation_1-rmse:0.15137
|
||||
[159] validation_0-rmse:0.30665 validation_1-rmse:0.15103
|
||||
[160] validation_0-rmse:0.30672 validation_1-rmse:0.15061
|
||||
[161] validation_0-rmse:0.30677 validation_1-rmse:0.15018
|
||||
[162] validation_0-rmse:0.30685 validation_1-rmse:0.14985
|
||||
[163] validation_0-rmse:0.30675 validation_1-rmse:0.14952
|
||||
[164] validation_0-rmse:0.30679 validation_1-rmse:0.14922
|
||||
[165] validation_0-rmse:0.30677 validation_1-rmse:0.14879
|
||||
[166] validation_0-rmse:0.30678 validation_1-rmse:0.14838
|
||||
[167] validation_0-rmse:0.30680 validation_1-rmse:0.14795
|
||||
[168] validation_0-rmse:0.30684 validation_1-rmse:0.14769
|
||||
[169] validation_0-rmse:0.30685 validation_1-rmse:0.14739
|
||||
[170] validation_0-rmse:0.30685 validation_1-rmse:0.14692
|
||||
[171] validation_0-rmse:0.30684 validation_1-rmse:0.14668
|
||||
[172] validation_0-rmse:0.30684 validation_1-rmse:0.14629
|
||||
[173] validation_0-rmse:0.30684 validation_1-rmse:0.14601
|
||||
[174] validation_0-rmse:0.30682 validation_1-rmse:0.14557
|
||||
[175] validation_0-rmse:0.30677 validation_1-rmse:0.14529
|
||||
[176] validation_0-rmse:0.30679 validation_1-rmse:0.14490
|
||||
[177] validation_0-rmse:0.30680 validation_1-rmse:0.14464
|
||||
[178] validation_0-rmse:0.30682 validation_1-rmse:0.14420
|
||||
[179] validation_0-rmse:0.30681 validation_1-rmse:0.14388
|
||||
[180] validation_0-rmse:0.30680 validation_1-rmse:0.14357
|
||||
[181] validation_0-rmse:0.30679 validation_1-rmse:0.14322
|
||||
[182] validation_0-rmse:0.30689 validation_1-rmse:0.14300
|
||||
[183] validation_0-rmse:0.30686 validation_1-rmse:0.14271
|
||||
[184] validation_0-rmse:0.30688 validation_1-rmse:0.14246
|
||||
[185] validation_0-rmse:0.30687 validation_1-rmse:0.14221
|
||||
[186] validation_0-rmse:0.30686 validation_1-rmse:0.14182
|
||||
[187] validation_0-rmse:0.30687 validation_1-rmse:0.14145
|
||||
[188] validation_0-rmse:0.30692 validation_1-rmse:0.14122
|
||||
[189] validation_0-rmse:0.30696 validation_1-rmse:0.14102
|
||||
[190] validation_0-rmse:0.30695 validation_1-rmse:0.14080
|
||||
[191] validation_0-rmse:0.30696 validation_1-rmse:0.14046
|
||||
[192] validation_0-rmse:0.30694 validation_1-rmse:0.14013
|
||||
[193] validation_0-rmse:0.30697 validation_1-rmse:0.13983
|
||||
[194] validation_0-rmse:0.30694 validation_1-rmse:0.13950
|
||||
[195] validation_0-rmse:0.30693 validation_1-rmse:0.13925
|
||||
[196] validation_0-rmse:0.30697 validation_1-rmse:0.13895
|
||||
[197] validation_0-rmse:0.30693 validation_1-rmse:0.13869
|
||||
[198] validation_0-rmse:0.30701 validation_1-rmse:0.13827
|
||||
[199] validation_0-rmse:0.30706 validation_1-rmse:0.13800
|
||||
2025-05-06 04:29:40,827 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (175.46 secs) --------------------
|
||||
2025-05-06 04:29:40,863 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600--s_close.html
|
||||
2025-05-06 04:29:40,863 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk.
|
||||
2025-05-06 04:29:40,955 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-06 04:29:41,148 - OKXRegressionStrategy - WARNING - ⚠️ 缺失目标列:['&-buy_rsi_pred'],尝试重新生成
|
||||
2025-05-06 04:29:41,149 - OKXRegressionStrategy - WARNING - ⚠️ 缺失预测列:['pred_upper', 'pred_lower'],尝试回退默认值
|
||||
2025-05-06 04:29:41,150 - OKXRegressionStrategy - DEBUG - 预测统计:均值=0.0000, 方差=0.0000
|
||||
2025-05-06 04:29:41,151 - OKXRegressionStrategy - WARNING - ⚠️ pred_upper 列全为 NaN,可能模型未加载成功
|
||||
2025-05-06 04:29:41,151 - OKXRegressionStrategy - DEBUG - 生成的列:['date', 'open', 'high', 'low', 'close', 'volume', 'rsi_10_10_OKB/USDT_3m', 'rsi_20_20_OKB/USDT_3m', 'rsi_50_50_OKB/USDT_3m',
|
||||
'rsi_10_10_OKB/USDT_5m', 'rsi_20_20_OKB/USDT_5m', 'rsi_50_50_OKB/USDT_5m', 'rsi_10_10_OKB/USDT_15m', 'rsi_20_20_OKB/USDT_15m', 'rsi_50_50_OKB/USDT_15m', 'rsi_10_10_OKB/USDT_1h',
|
||||
'rsi_20_20_OKB/USDT_1h', 'rsi_50_50_OKB/USDT_1h', 'rsi_10_10_BTC/USDT_3m', 'rsi_20_20_BTC/USDT_3m', 'rsi_50_50_BTC/USDT_3m', 'rsi_10_10_BTC/USDT_5m', 'rsi_20_20_BTC/USDT_5m', 'rsi_50_50_BTC/USDT_5m',
|
||||
'rsi_10_10_BTC/USDT_15m', 'rsi_20_20_BTC/USDT_15m', 'rsi_50_50_BTC/USDT_15m', 'rsi_10_10_BTC/USDT_1h', 'rsi_20_20_BTC/USDT_1h', 'rsi_50_50_BTC/USDT_1h', 'rsi_10_10_ETH/USDT_3m',
|
||||
'rsi_20_20_ETH/USDT_3m', 'rsi_50_50_ETH/USDT_3m', 'rsi_10_10_ETH/USDT_5m', 'rsi_20_20_ETH/USDT_5m', 'rsi_50_50_ETH/USDT_5m', 'rsi_10_10_ETH/USDT_15m', 'rsi_20_20_ETH/USDT_15m',
|
||||
'rsi_50_50_ETH/USDT_15m', 'rsi_10_10_ETH/USDT_1h', 'rsi_20_20_ETH/USDT_1h', 'rsi_50_50_ETH/USDT_1h', '&-s_close', '&-s_close_mean', '&-s_close_std', '&-roi_0', '&-roi_0_mean', '&-roi_0_std',
|
||||
'&-roi_15', '&-roi_15_mean', '&-roi_15_std', '&-roi_30', '&-roi_30_mean', '&-roi_30_std', '&-roi_0_pred', '&-roi_0_pred_mean', '&-roi_0_pred_std', '&-stoploss_pred', '&-stoploss_pred_mean',
|
||||
'&-stoploss_pred_std', 'do_predict', 'pred_upper', 'pred_lower']
|
||||
2025-05-06 04:29:41,152 - OKXRegressionStrategy - DEBUG - populate_indicators 完成
|
||||
2025-05-06 04:29:41,156 - OKXRegressionStrategy - DEBUG - ✅ 预测列已就绪:
|
||||
2025-05-06 04:29:41,159 - OKXRegressionStrategy - DEBUG - &-s_close pred_upper pred_lower
|
||||
0 0.0 NaN NaN
|
||||
1 0.0 NaN NaN
|
||||
2 0.0 NaN NaN
|
||||
3 0.0 NaN NaN
|
||||
4 0.0 NaN NaN
|
||||
2025-05-06 04:29:41,170 - 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-06 04:29:41,177 - OKXRegressionStrategy - DEBUG - 生成 67.0 个做多信号
|
||||
2025-05-06 04:29:41,370 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-06_04-29-41.meta.json"
|
||||
Result for strategy OKXRegressionStrategy
|
||||
BACKTESTING REPORT
|
||||
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKB/USDT │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
│ TOTAL │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
LEFT OPEN TRADES REPORT
|
||||
┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │
|
||||
└───────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
ENTER TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OTHER │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
│ TOTAL │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
EXIT REASON STATS
|
||||
┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ exit_signal │ 10 │ -0.19 │ -0.390 │ -0.04 │ 0:32:00 │ 6 0 4 60.0 │
|
||||
│ trailing_stop_loss │ 10 │ -0.66 │ -1.318 │ -0.13 │ 0:07:00 │ 2 0 8 20.0 │
|
||||
│ TOTAL │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
└────────────────────┴───────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
MIXED TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ │ exit_signal │ 10 │ -0.19 │ -0.390 │ -0.04 │ 0:32:00 │ 6 0 4 60.0 │
|
||||
│ │ trailing_stop_loss │ 10 │ -0.66 │ -1.318 │ -0.13 │ 0:07:00 │ 2 0 8 20.0 │
|
||||
│ TOTAL │ │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.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 │ 20 / 1.43 │
|
||||
│ Starting balance │ 1000 USDT │
|
||||
│ Final balance │ 998.293 USDT │
|
||||
│ Absolute profit │ -1.707 USDT │
|
||||
│ Total profit % │ -0.17% │
|
||||
│ CAGR % │ -4.36% │
|
||||
│ Sortino │ -25.57 │
|
||||
│ Sharpe │ -13.69 │
|
||||
│ Calmar │ -114.78 │
|
||||
│ SQN │ -2.19 │
|
||||
│ Profit factor │ 0.32 │
|
||||
│ Expectancy (Ratio) │ -0.09 (-0.41) │
|
||||
│ Avg. daily profit % │ -0.01% │
|
||||
│ Avg. stake amount │ 19.976 USDT │
|
||||
│ Total trade volume │ 798.613 USDT │
|
||||
│ │ │
|
||||
│ Best Pair │ OKB/USDT -0.17% │
|
||||
│ Worst Pair │ OKB/USDT -0.17% │
|
||||
│ Best trade │ OKB/USDT 1.00% │
|
||||
│ Worst trade │ OKB/USDT -2.36% │
|
||||
│ Best day │ 0.147 USDT │
|
||||
│ Worst day │ -0.949 USDT │
|
||||
│ Days win/draw/lose │ 3 / 1 / 4 │
|
||||
│ Avg. Duration Winners │ 0:32:00 │
|
||||
│ Avg. Duration Loser │ 0:12:00 │
|
||||
│ Max Consecutive Wins / Loss │ 3 / 6 │
|
||||
│ Rejected Entry signals │ 0 │
|
||||
│ Entry/Exit Timeouts │ 0 / 0 │
|
||||
│ │ │
|
||||
│ Min balance │ 997.97 USDT │
|
||||
│ Max balance │ 999.693 USDT │
|
||||
│ Max % of account underwater │ 0.20% │
|
||||
│ Absolute Drawdown (Account) │ 0.20% │
|
||||
│ Absolute Drawdown │ 2.03 USDT │
|
||||
│ Drawdown high │ -0.307 USDT │
|
||||
│ Drawdown low │ -2.03 USDT │
|
||||
│ Drawdown Start │ 2025-04-06 17:45:00 │
|
||||
│ Drawdown End │ 2025-04-10 15:42: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 ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKXRegressionStrategy │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │ 2.03 USDT 0.20% │
|
||||
└───────────────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴──────────────────┘
|
||||
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
|
||||
|
||||
@ -1,338 +1,25 @@
|
||||
Creating freqtrade_freqtrade_run ...
|
||||
Creating freqtrade_freqtrade_run ... done
|
||||
2025-05-06 04:23:11,765 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b
|
||||
2025-05-06 04:23:11,971 - numexpr.utils - INFO - NumExpr defaulting to 12 threads.
|
||||
2025-05-06 04:23:13,393 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_freqai.okx.json ...
|
||||
2025-05-06 04:23:13,395 - freqtrade.loggers - INFO - Enabling colorized output.
|
||||
2025-05-06 04:23:13,395 - root - INFO - Logfile configured
|
||||
2025-05-06 04:23:13,396 - freqtrade.loggers - INFO - Verbosity set to 0
|
||||
2025-05-06 04:23:13,396 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates
|
||||
2025-05-06 04:23:13,396 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ...
|
||||
2025-05-06 04:23:13,397 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ...
|
||||
2025-05-06 04:23:13,397 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250401-20250415 ...
|
||||
2025-05-06 04:23:13,431 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...
|
||||
2025-05-06 04:23:13,432 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ...
|
||||
2025-05-06 04:23:13,432 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ...
|
||||
2025-05-06 04:23:13,432 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250401-20250415
|
||||
2025-05-06 04:23:13,433 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor
|
||||
2025-05-06 04:23:13,434 - freqtrade.exchange.check_exchange - INFO - Checking exchange...
|
||||
2025-05-06 04:23:13,441 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team.
|
||||
2025-05-06 04:23:13,441 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.
|
||||
2025-05-06 04:23:13,441 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-06 04:23:13,444 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode
|
||||
2025-05-06 04:23:13,444 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled
|
||||
2025-05-06 04:23:13,445 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77
|
||||
2025-05-06 04:23:13,445 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}}
|
||||
2025-05-06 04:23:13,450 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000}
|
||||
2025-05-06 04:23:13,455 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX"
|
||||
2025-05-06 04:23:16,284 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'...
|
||||
2025-05-06 04:23:16,338 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy OKXRegressionStrategy from '/freqtrade/templates/OKXRegressionStrategy.py'...
|
||||
2025-05-06 04:23:16,338 - freqtrade.strategy.hyper - INFO - Found no parameter file.
|
||||
2025-05-06 04:23:16,339 - OKXRegressionStrategy - INFO - FreqAI 模型路径:/freqtrade/user_data/models
|
||||
2025-05-06 04:23:16,339 - OKXRegressionStrategy - WARNING - ⚠️ 模型文件未找到,请确认是否训练完成
|
||||
2025-05-06 04:23:16,339 - OKXRegressionStrategy - INFO - 🔍 正在尝试从 /freqtrade/user_data/models 加载模型
|
||||
2025-05-06 04:23:16,340 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m.
|
||||
2025-05-06 04:23:16,340 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05.
|
||||
2025-05-06 04:23:16,340 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT.
|
||||
2025-05-06 04:23:16,341 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150.
|
||||
2025-05-06 04:23:16,341 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30.
|
||||
2025-05-06 04:23:16,341 - 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-06 04:23:16,342 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4.
|
||||
2025-05-06 04:23:16,342 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {}
|
||||
2025-05-06 04:23:16,342 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0
|
||||
2025-05-06 04:23:16,344 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False
|
||||
2025-05-06 04:23:16,344 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False
|
||||
2025-05-06 04:23:16,344 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True
|
||||
2025-05-06 04:23:16,344 - 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-06 04:23:16,345 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}
|
||||
2025-05-06 04:23:16,345 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT
|
||||
2025-05-06 04:23:16,345 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'}
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False
|
||||
2025-05-06 04:23:16,347 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False
|
||||
2025-05-06 04:23:16,347 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0
|
||||
2025-05-06 04:23:16,347 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4
|
||||
2025-05-06 04:23:16,349 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-06 04:23:16,352 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'...
|
||||
2025-05-06 04:23:16,357 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config.
|
||||
2025-05-06 04:23:16,358 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-06 04:23:16,358 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ...
|
||||
2025-05-06 04:23:16,442 - 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-06 04:23:16,443 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators
|
||||
2025-05-06 04:23:16,443 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy OKXRegressionStrategy
|
||||
2025-05-06 04:23:18,018 - matplotlib.font_manager - INFO - generated new fontManager
|
||||
2025-05-06 04:23:18,222 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'...
|
||||
2025-05-06 04:23:18,223 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch
|
||||
2025-05-06 04:23:18,223 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch
|
||||
2025-05-06 04:23:18,223 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT']
|
||||
2025-05-06 04:23:18,224 - freqtrade.strategy.hyper - INFO - No params for buy found, using default values.
|
||||
2025-05-06 04:23:18,224 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_period = 14
|
||||
2025-05-06 04:23:18,225 - freqtrade.strategy.hyper - INFO - No params for sell found, using default values.
|
||||
2025-05-06 04:23:18,225 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_multiplier = 2.0
|
||||
2025-05-06 04:23:18,226 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values.
|
||||
2025-05-06 04:23:18,230 - OKXRegressionStrategy - DEBUG - FreqAI 对象:<class 'XGBoostRegressor.XGBoostRegressor'>
|
||||
2025-05-06 04:23:18,232 - freqtrade.freqai.freqai_interface - INFO - Training 2 timeranges
|
||||
2025-05-06 04:23:18,234 - 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-06 04:23:18,234 - 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-06 04:23:18,258 - OKXRegressionStrategy - DEBUG - 周期 10 特征:['%-%-macd-10', '%-%-macdsignal-10', '%-%-bb_width-10', '%-%-volume_ma-10']
|
||||
2025-05-06 04:23:18,280 - OKXRegressionStrategy - DEBUG - 周期 20 特征:['%-%-macd-20', '%-%-macdsignal-20', '%-%-bb_width-20', '%-%-volume_ma-20']
|
||||
2025-05-06 04:23:18,302 - OKXRegressionStrategy - DEBUG - 周期 50 特征:['%-%-macd-50', '%-%-macdsignal-50', '%-%-bb_width-50', '%-%-volume_ma-50']
|
||||
2025-05-06 04:23:18,393 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-06 04:23:18,394 - 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-06 04:23:18,431 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_10
|
||||
2025-05-06 04:23:18,437 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_20
|
||||
2025-05-06 04:23:18,445 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_50
|
||||
2025-05-06 04:23:18,526 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-06 04:23:18,526 - 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-06 04:23:18,547 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_10
|
||||
2025-05-06 04:23:18,552 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_20
|
||||
2025-05-06 04:23:18,557 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_50
|
||||
2025-05-06 04:23:18,628 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-06 04:23:18,628 - 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-06 04:23:18,644 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_10
|
||||
2025-05-06 04:23:18,648 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_20
|
||||
2025-05-06 04:23:18,652 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_50
|
||||
2025-05-06 04:23:19,041 - OKXRegressionStrategy - DEBUG - 全局特征:['%-%-macd-10_10_OKB/USDT_3m', '%-%-macdsignal-10_10_OKB/USDT_3m', '%-%-bb_width-10_10_OKB/USDT_3m',
|
||||
'%-%-volume_ma-10_10_OKB/USDT_3m', '%-%-macd-20_20_OKB/USDT_3m', '%-%-macdsignal-20_20_OKB/USDT_3m', '%-%-bb_width-20_20_OKB/USDT_3m', '%-%-volume_ma-20_20_OKB/USDT_3m', '%-%-macd-50_50_OKB/USDT_3m',
|
||||
'%-%-macdsignal-50_50_OKB/USDT_3m', '%-%-bb_width-50_50_OKB/USDT_3m', '%-%-volume_ma-50_50_OKB/USDT_3m', '%-%-macd-10_10_shift-1_OKB/USDT_3m', '%-%-macdsignal-10_10_shift-1_OKB/USDT_3m',
|
||||
'%-%-bb_width-10_10_shift-1_OKB/USDT_3m', '%-%-volume_ma-10_10_shift-1_OKB/USDT_3m', '%-%-macd-20_20_shift-1_OKB/USDT_3m', '%-%-macdsignal-20_20_shift-1_OKB/USDT_3m',
|
||||
'%-%-bb_width-20_20_shift-1_OKB/USDT_3m', '%-%-volume_ma-20_20_shift-1_OKB/USDT_3m', '%-%-macd-50_50_shift-1_OKB/USDT_3m', '%-%-macdsignal-50_50_shift-1_OKB/USDT_3m',
|
||||
'%-%-bb_width-50_50_shift-1_OKB/USDT_3m', '%-%-volume_ma-50_50_shift-1_OKB/USDT_3m', '%-%-macd-10_10_shift-2_OKB/USDT_3m', '%-%-macdsignal-10_10_shift-2_OKB/USDT_3m',
|
||||
'%-%-bb_width-10_10_shift-2_OKB/USDT_3m', '%-%-volume_ma-10_10_shift-2_OKB/USDT_3m', '%-%-macd-20_20_shift-2_OKB/USDT_3m', '%-%-macdsignal-20_20_shift-2_OKB/USDT_3m',
|
||||
'%-%-bb_width-20_20_shift-2_OKB/USDT_3m', '%-%-volume_ma-20_20_shift-2_OKB/USDT_3m', '%-%-macd-50_50_shift-2_OKB/USDT_3m', '%-%-macdsignal-50_50_shift-2_OKB/USDT_3m',
|
||||
'%-%-bb_width-50_50_shift-2_OKB/USDT_3m', '%-%-volume_ma-50_50_shift-2_OKB/USDT_3m', '%-%-macd-10_10_shift-3_OKB/USDT_3m', '%-%-macdsignal-10_10_shift-3_OKB/USDT_3m',
|
||||
'%-%-bb_width-10_10_shift-3_OKB/USDT_3m', '%-%-volume_ma-10_10_shift-3_OKB/USDT_3m', '%-%-macd-20_20_shift-3_OKB/USDT_3m', '%-%-macdsignal-20_20_shift-3_OKB/USDT_3m',
|
||||
'%-%-bb_width-20_20_shift-3_OKB/USDT_3m', '%-%-volume_ma-20_20_shift-3_OKB/USDT_3m', '%-%-macd-50_50_shift-3_OKB/USDT_3m', '%-%-macdsignal-50_50_shift-3_OKB/USDT_3m',
|
||||
'%-%-bb_width-50_50_shift-3_OKB/USDT_3m', '%-%-volume_ma-50_50_shift-3_OKB/USDT_3m', '%-%-macd-10_10_OKB/USDT_5m', '%-%-macdsignal-10_10_OKB/USDT_5m', '%-%-bb_width-10_10_OKB/USDT_5m',
|
||||
'%-%-volume_ma-10_10_OKB/USDT_5m', '%-%-macd-20_20_OKB/USDT_5m', '%-%-macdsignal-20_20_OKB/USDT_5m', '%-%-bb_width-20_20_OKB/USDT_5m', '%-%-volume_ma-20_20_OKB/USDT_5m', '%-%-macd-50_50_OKB/USDT_5m',
|
||||
'%-%-macdsignal-50_50_OKB/USDT_5m', '%-%-bb_width-50_50_OKB/USDT_5m', '%-%-volume_ma-50_50_OKB/USDT_5m', '%-%-macd-10_10_shift-1_OKB/USDT_5m', '%-%-macdsignal-10_10_shift-1_OKB/USDT_5m',
|
||||
'%-%-bb_width-10_10_shift-1_OKB/USDT_5m', '%-%-volume_ma-10_10_shift-1_OKB/USDT_5m', '%-%-macd-20_20_shift-1_OKB/USDT_5m', '%-%-macdsignal-20_20_shift-1_OKB/USDT_5m',
|
||||
'%-%-bb_width-20_20_shift-1_OKB/USDT_5m', '%-%-volume_ma-20_20_shift-1_OKB/USDT_5m', '%-%-macd-50_50_shift-1_OKB/USDT_5m', '%-%-macdsignal-50_50_shift-1_OKB/USDT_5m',
|
||||
'%-%-bb_width-50_50_shift-1_OKB/USDT_5m', '%-%-volume_ma-50_50_shift-1_OKB/USDT_5m', '%-%-macd-10_10_shift-2_OKB/USDT_5m', '%-%-macdsignal-10_10_shift-2_OKB/USDT_5m',
|
||||
'%-%-bb_width-10_10_shift-2_OKB/USDT_5m', '%-%-volume_ma-10_10_shift-2_OKB/USDT_5m', '%-%-macd-20_20_shift-2_OKB/USDT_5m', '%-%-macdsignal-20_20_shift-2_OKB/USDT_5m',
|
||||
'%-%-bb_width-20_20_shift-2_OKB/USDT_5m', '%-%-volume_ma-20_20_shift-2_OKB/USDT_5m', '%-%-macd-50_50_shift-2_OKB/USDT_5m', '%-%-macdsignal-50_50_shift-2_OKB/USDT_5m',
|
||||
'%-%-bb_width-50_50_shift-2_OKB/USDT_5m', '%-%-volume_ma-50_50_shift-2_OKB/USDT_5m', '%-%-macd-10_10_shift-3_OKB/USDT_5m', '%-%-macdsignal-10_10_shift-3_OKB/USDT_5m',
|
||||
'%-%-bb_width-10_10_shift-3_OKB/USDT_5m', '%-%-volume_ma-10_10_shift-3_OKB/USDT_5m', '%-%-macd-20_20_shift-3_OKB/USDT_5m', '%-%-macdsignal-20_20_shift-3_OKB/USDT_5m',
|
||||
'%-%-bb_width-20_20_shift-3_OKB/USDT_5m', '%-%-volume_ma-20_20_shift-3_OKB/USDT_5m', '%-%-macd-50_50_shift-3_OKB/USDT_5m', '%-%-macdsignal-50_50_shift-3_OKB/USDT_5m',
|
||||
'%-%-bb_width-50_50_shift-3_OKB/USDT_5m', '%-%-volume_ma-50_50_shift-3_OKB/USDT_5m', '%-%-macd-10_10_OKB/USDT_15m', '%-%-macdsignal-10_10_OKB/USDT_15m', '%-%-bb_width-10_10_OKB/USDT_15m',
|
||||
'%-%-volume_ma-10_10_OKB/USDT_15m', '%-%-macd-20_20_OKB/USDT_15m', '%-%-macdsignal-20_20_OKB/USDT_15m', '%-%-bb_width-20_20_OKB/USDT_15m', '%-%-volume_ma-20_20_OKB/USDT_15m',
|
||||
'%-%-macd-50_50_OKB/USDT_15m', '%-%-macdsignal-50_50_OKB/USDT_15m', '%-%-bb_width-50_50_OKB/USDT_15m', '%-%-volume_ma-50_50_OKB/USDT_15m', '%-%-macd-10_10_shift-1_OKB/USDT_15m',
|
||||
'%-%-macdsignal-10_10_shift-1_OKB/USDT_15m', '%-%-bb_width-10_10_shift-1_OKB/USDT_15m', '%-%-volume_ma-10_10_shift-1_OKB/USDT_15m', '%-%-macd-20_20_shift-1_OKB/USDT_15m',
|
||||
'%-%-macdsignal-20_20_shift-1_OKB/USDT_15m', '%-%-bb_width-20_20_shift-1_OKB/USDT_15m', '%-%-volume_ma-20_20_shift-1_OKB/USDT_15m', '%-%-macd-50_50_shift-1_OKB/USDT_15m',
|
||||
'%-%-macdsignal-50_50_shift-1_OKB/USDT_15m', '%-%-bb_width-50_50_shift-1_OKB/USDT_15m', '%-%-volume_ma-50_50_shift-1_OKB/USDT_15m', '%-%-macd-10_10_shift-2_OKB/USDT_15m',
|
||||
'%-%-macdsignal-10_10_shift-2_OKB/USDT_15m', '%-%-bb_width-10_10_shift-2_OKB/USDT_15m', '%-%-volume_ma-10_10_shift-2_OKB/USDT_15m', '%-%-macd-20_20_shift-2_OKB/USDT_15m',
|
||||
'%-%-macdsignal-20_20_shift-2_OKB/USDT_15m', '%-%-bb_width-20_20_shift-2_OKB/USDT_15m', '%-%-volume_ma-20_20_shift-2_OKB/USDT_15m', '%-%-macd-50_50_shift-2_OKB/USDT_15m',
|
||||
'%-%-macdsignal-50_50_shift-2_OKB/USDT_15m', '%-%-bb_width-50_50_shift-2_OKB/USDT_15m', '%-%-volume_ma-50_50_shift-2_OKB/USDT_15m', '%-%-macd-10_10_shift-3_OKB/USDT_15m',
|
||||
'%-%-macdsignal-10_10_shift-3_OKB/USDT_15m', '%-%-bb_width-10_10_shift-3_OKB/USDT_15m', '%-%-volume_ma-10_10_shift-3_OKB/USDT_15m', '%-%-macd-20_20_shift-3_OKB/USDT_15m',
|
||||
'%-%-macdsignal-20_20_shift-3_OKB/USDT_15m', '%-%-bb_width-20_20_shift-3_OKB/USDT_15m', '%-%-volume_ma-20_20_shift-3_OKB/USDT_15m', '%-%-macd-50_50_shift-3_OKB/USDT_15m',
|
||||
'%-%-macdsignal-50_50_shift-3_OKB/USDT_15m', '%-%-bb_width-50_50_shift-3_OKB/USDT_15m', '%-%-volume_ma-50_50_shift-3_OKB/USDT_15m', '%-%-macd-10_10_OKB/USDT_1h', '%-%-macdsignal-10_10_OKB/USDT_1h',
|
||||
'%-%-bb_width-10_10_OKB/USDT_1h', '%-%-volume_ma-10_10_OKB/USDT_1h', '%-%-macd-20_20_OKB/USDT_1h', '%-%-macdsignal-20_20_OKB/USDT_1h', '%-%-bb_width-20_20_OKB/USDT_1h',
|
||||
'%-%-volume_ma-20_20_OKB/USDT_1h', '%-%-macd-50_50_OKB/USDT_1h', '%-%-macdsignal-50_50_OKB/USDT_1h', '%-%-bb_width-50_50_OKB/USDT_1h', '%-%-volume_ma-50_50_OKB/USDT_1h',
|
||||
'%-%-macd-10_10_shift-1_OKB/USDT_1h', '%-%-macdsignal-10_10_shift-1_OKB/USDT_1h', '%-%-bb_width-10_10_shift-1_OKB/USDT_1h', '%-%-volume_ma-10_10_shift-1_OKB/USDT_1h',
|
||||
'%-%-macd-20_20_shift-1_OKB/USDT_1h', '%-%-macdsignal-20_20_shift-1_OKB/USDT_1h', '%-%-bb_width-20_20_shift-1_OKB/USDT_1h', '%-%-volume_ma-20_20_shift-1_OKB/USDT_1h',
|
||||
'%-%-macd-50_50_shift-1_OKB/USDT_1h', '%-%-macdsignal-50_50_shift-1_OKB/USDT_1h', '%-%-bb_width-50_50_shift-1_OKB/USDT_1h', '%-%-volume_ma-50_50_shift-1_OKB/USDT_1h',
|
||||
'%-%-macd-10_10_shift-2_OKB/USDT_1h', '%-%-macdsignal-10_10_shift-2_OKB/USDT_1h', '%-%-bb_width-10_10_shift-2_OKB/USDT_1h', '%-%-volume_ma-10_10_shift-2_OKB/USDT_1h',
|
||||
'%-%-macd-20_20_shift-2_OKB/USDT_1h', '%-%-macdsignal-20_20_shift-2_OKB/USDT_1h', '%-%-bb_width-20_20_shift-2_OKB/USDT_1h', '%-%-volume_ma-20_20_shift-2_OKB/USDT_1h',
|
||||
'%-%-macd-50_50_shift-2_OKB/USDT_1h', '%-%-macdsignal-50_50_shift-2_OKB/USDT_1h', '%-%-bb_width-50_50_shift-2_OKB/USDT_1h', '%-%-volume_ma-50_50_shift-2_OKB/USDT_1h',
|
||||
'%-%-macd-10_10_shift-3_OKB/USDT_1h', '%-%-macdsignal-10_10_shift-3_OKB/USDT_1h', '%-%-bb_width-10_10_shift-3_OKB/USDT_1h', '%-%-volume_ma-10_10_shift-3_OKB/USDT_1h',
|
||||
'%-%-macd-20_20_shift-3_OKB/USDT_1h', '%-%-macdsignal-20_20_shift-3_OKB/USDT_1h', '%-%-bb_width-20_20_shift-3_OKB/USDT_1h', '%-%-volume_ma-20_20_shift-3_OKB/USDT_1h',
|
||||
'%-%-macd-50_50_shift-3_OKB/USDT_1h', '%-%-macdsignal-50_50_shift-3_OKB/USDT_1h', '%-%-bb_width-50_50_shift-3_OKB/USDT_1h', '%-%-volume_ma-50_50_shift-3_OKB/USDT_1h']
|
||||
2025-05-06 04:23:19,092 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-06 04:23:19,093 - 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-06 04:23:19,161 - OKXRegressionStrategy - DEBUG - 周期 10 特征:['%-%-macd-10', '%-%-macdsignal-10', '%-%-bb_width-10', '%-%-volume_ma-10']
|
||||
2025-05-06 04:23:19,177 - OKXRegressionStrategy - DEBUG - 周期 20 特征:['%-%-macd-20', '%-%-macdsignal-20', '%-%-bb_width-20', '%-%-volume_ma-20']
|
||||
2025-05-06 04:23:19,194 - OKXRegressionStrategy - DEBUG - 周期 50 特征:['%-%-macd-50', '%-%-macdsignal-50', '%-%-bb_width-50', '%-%-volume_ma-50']
|
||||
2025-05-06 04:23:19,320 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-06 04:23:19,320 - 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-06 04:23:19,359 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_10
|
||||
2025-05-06 04:23:19,365 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_20
|
||||
2025-05-06 04:23:19,373 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_50
|
||||
2025-05-06 04:23:19,546 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-06 04:23:19,547 - 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-06 04:23:19,568 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_10
|
||||
2025-05-06 04:23:19,572 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_20
|
||||
2025-05-06 04:23:19,577 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_50
|
||||
2025-05-06 04:23:19,734 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-06 04:23:19,735 - 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-06 04:23:19,752 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_10
|
||||
2025-05-06 04:23:19,756 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_20
|
||||
2025-05-06 04:23:19,760 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_50
|
||||
2025-05-06 04:23:20,021 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-06 04:23:20,021 - 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-06 04:23:20,082 - OKXRegressionStrategy - DEBUG - 周期 10 特征:['%-%-macd-10', '%-%-macdsignal-10', '%-%-bb_width-10', '%-%-volume_ma-10']
|
||||
2025-05-06 04:23:20,097 - OKXRegressionStrategy - DEBUG - 周期 20 特征:['%-%-macd-20', '%-%-macdsignal-20', '%-%-bb_width-20', '%-%-volume_ma-20']
|
||||
2025-05-06 04:23:20,115 - OKXRegressionStrategy - DEBUG - 周期 50 特征:['%-%-macd-50', '%-%-macdsignal-50', '%-%-bb_width-50', '%-%-volume_ma-50']
|
||||
2025-05-06 04:23:20,296 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-06 04:23:20,297 - 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-06 04:23:20,333 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_10
|
||||
2025-05-06 04:23:20,339 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_20
|
||||
2025-05-06 04:23:20,345 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_50
|
||||
2025-05-06 04:23:20,583 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-06 04:23:20,584 - 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-06 04:23:20,605 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_10
|
||||
2025-05-06 04:23:20,609 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_20
|
||||
2025-05-06 04:23:20,614 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_50
|
||||
2025-05-06 04:23:20,859 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-06 04:23:20,860 - 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-06 04:23:20,877 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_10
|
||||
2025-05-06 04:23:20,881 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_20
|
||||
2025-05-06 04:23:20,885 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_50
|
||||
2025-05-06 04:23:35,159 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600
|
||||
2025-05-06 04:23:35,160 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-06 04:23:35,505 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 51 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-06 04:23:35,505 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-01 to 2025-03-31 --------------------
|
||||
2025-05-06 04:23:35,677 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day']
|
||||
2025-05-06 04:23:35,817 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 577 features
|
||||
2025-05-06 04:23:35,817 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34519 data points
|
||||
[99] validation_0-rmse:0.29984 validation_1-rmse:0.18813
|
||||
[199] validation_0-rmse:0.30154 validation_1-rmse:0.14371
|
||||
2025-05-06 04:26:29,861 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (174.70 secs) --------------------
|
||||
2025-05-06 04:26:30,080 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600--s_close.html
|
||||
2025-05-06 04:26:30,080 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk.
|
||||
2025-05-06 04:26:30,214 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-06 04:26:30,227 - 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-06 04:26:30,228 - 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-06 04:26:45,365 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600
|
||||
2025-05-06 04:26:45,365 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-06 04:26:45,664 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 12 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-06 04:26:45,665 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-11 to 2025-04-10 --------------------
|
||||
2025-05-06 04:26:45,833 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day']
|
||||
2025-05-06 04:26:45,973 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 577 features
|
||||
2025-05-06 04:26:45,974 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34550 data points
|
||||
[99] validation_0-rmse:0.30462 validation_1-rmse:0.17903
|
||||
[199] validation_0-rmse:0.30706 validation_1-rmse:0.13800
|
||||
2025-05-06 04:29:40,827 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (175.46 secs) --------------------
|
||||
2025-05-06 04:29:40,863 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600--s_close.html
|
||||
2025-05-06 04:29:40,863 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk.
|
||||
2025-05-06 04:29:40,955 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-06 04:29:41,148 - OKXRegressionStrategy - WARNING - ⚠️ 缺失目标列:['&-buy_rsi_pred'],尝试重新生成
|
||||
2025-05-06 04:29:41,149 - OKXRegressionStrategy - WARNING - ⚠️ 缺失预测列:['pred_upper', 'pred_lower'],尝试回退默认值
|
||||
2025-05-06 04:29:41,150 - OKXRegressionStrategy - DEBUG - 预测统计:均值=0.0000, 方差=0.0000
|
||||
2025-05-06 04:29:41,151 - OKXRegressionStrategy - WARNING - ⚠️ pred_upper 列全为 NaN,可能模型未加载成功
|
||||
2025-05-06 04:29:41,151 - OKXRegressionStrategy - DEBUG - 生成的列:['date', 'open', 'high', 'low', 'close', 'volume', 'rsi_10_10_OKB/USDT_3m', 'rsi_20_20_OKB/USDT_3m', 'rsi_50_50_OKB/USDT_3m',
|
||||
'rsi_10_10_OKB/USDT_5m', 'rsi_20_20_OKB/USDT_5m', 'rsi_50_50_OKB/USDT_5m', 'rsi_10_10_OKB/USDT_15m', 'rsi_20_20_OKB/USDT_15m', 'rsi_50_50_OKB/USDT_15m', 'rsi_10_10_OKB/USDT_1h',
|
||||
'rsi_20_20_OKB/USDT_1h', 'rsi_50_50_OKB/USDT_1h', 'rsi_10_10_BTC/USDT_3m', 'rsi_20_20_BTC/USDT_3m', 'rsi_50_50_BTC/USDT_3m', 'rsi_10_10_BTC/USDT_5m', 'rsi_20_20_BTC/USDT_5m', 'rsi_50_50_BTC/USDT_5m',
|
||||
'rsi_10_10_BTC/USDT_15m', 'rsi_20_20_BTC/USDT_15m', 'rsi_50_50_BTC/USDT_15m', 'rsi_10_10_BTC/USDT_1h', 'rsi_20_20_BTC/USDT_1h', 'rsi_50_50_BTC/USDT_1h', 'rsi_10_10_ETH/USDT_3m',
|
||||
'rsi_20_20_ETH/USDT_3m', 'rsi_50_50_ETH/USDT_3m', 'rsi_10_10_ETH/USDT_5m', 'rsi_20_20_ETH/USDT_5m', 'rsi_50_50_ETH/USDT_5m', 'rsi_10_10_ETH/USDT_15m', 'rsi_20_20_ETH/USDT_15m',
|
||||
'rsi_50_50_ETH/USDT_15m', 'rsi_10_10_ETH/USDT_1h', 'rsi_20_20_ETH/USDT_1h', 'rsi_50_50_ETH/USDT_1h', '&-s_close', '&-s_close_mean', '&-s_close_std', '&-roi_0', '&-roi_0_mean', '&-roi_0_std',
|
||||
'&-roi_15', '&-roi_15_mean', '&-roi_15_std', '&-roi_30', '&-roi_30_mean', '&-roi_30_std', '&-roi_0_pred', '&-roi_0_pred_mean', '&-roi_0_pred_std', '&-stoploss_pred', '&-stoploss_pred_mean',
|
||||
'&-stoploss_pred_std', 'do_predict', 'pred_upper', 'pred_lower']
|
||||
2025-05-06 04:29:41,152 - OKXRegressionStrategy - DEBUG - populate_indicators 完成
|
||||
2025-05-06 04:29:41,156 - OKXRegressionStrategy - DEBUG - ✅ 预测列已就绪:
|
||||
2025-05-06 04:29:41,159 - OKXRegressionStrategy - DEBUG - &-s_close pred_upper pred_lower
|
||||
0 0.0 NaN NaN
|
||||
1 0.0 NaN NaN
|
||||
2 0.0 NaN NaN
|
||||
3 0.0 NaN NaN
|
||||
4 0.0 NaN NaN
|
||||
2025-05-06 04:29:41,170 - 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-06 04:29:41,177 - OKXRegressionStrategy - DEBUG - 生成 67.0 个做多信号
|
||||
2025-05-06 04:29:41,370 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-06_04-29-41.meta.json"
|
||||
Result for strategy OKXRegressionStrategy
|
||||
BACKTESTING REPORT
|
||||
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKB/USDT │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
│ TOTAL │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
LEFT OPEN TRADES REPORT
|
||||
┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │
|
||||
└───────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
ENTER TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OTHER │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
│ TOTAL │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
EXIT REASON STATS
|
||||
┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ exit_signal │ 10 │ -0.19 │ -0.390 │ -0.04 │ 0:32:00 │ 6 0 4 60.0 │
|
||||
│ trailing_stop_loss │ 10 │ -0.66 │ -1.318 │ -0.13 │ 0:07:00 │ 2 0 8 20.0 │
|
||||
│ TOTAL │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
└────────────────────┴───────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
MIXED TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ │ exit_signal │ 10 │ -0.19 │ -0.390 │ -0.04 │ 0:32:00 │ 6 0 4 60.0 │
|
||||
│ │ trailing_stop_loss │ 10 │ -0.66 │ -1.318 │ -0.13 │ 0:07:00 │ 2 0 8 20.0 │
|
||||
│ TOTAL │ │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.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 │ 20 / 1.43 │
|
||||
│ Starting balance │ 1000 USDT │
|
||||
│ Final balance │ 998.293 USDT │
|
||||
│ Absolute profit │ -1.707 USDT │
|
||||
│ Total profit % │ -0.17% │
|
||||
│ CAGR % │ -4.36% │
|
||||
│ Sortino │ -25.57 │
|
||||
│ Sharpe │ -13.69 │
|
||||
│ Calmar │ -114.78 │
|
||||
│ SQN │ -2.19 │
|
||||
│ Profit factor │ 0.32 │
|
||||
│ Expectancy (Ratio) │ -0.09 (-0.41) │
|
||||
│ Avg. daily profit % │ -0.01% │
|
||||
│ Avg. stake amount │ 19.976 USDT │
|
||||
│ Total trade volume │ 798.613 USDT │
|
||||
│ │ │
|
||||
│ Best Pair │ OKB/USDT -0.17% │
|
||||
│ Worst Pair │ OKB/USDT -0.17% │
|
||||
│ Best trade │ OKB/USDT 1.00% │
|
||||
│ Worst trade │ OKB/USDT -2.36% │
|
||||
│ Best day │ 0.147 USDT │
|
||||
│ Worst day │ -0.949 USDT │
|
||||
│ Days win/draw/lose │ 3 / 1 / 4 │
|
||||
│ Avg. Duration Winners │ 0:32:00 │
|
||||
│ Avg. Duration Loser │ 0:12:00 │
|
||||
│ Max Consecutive Wins / Loss │ 3 / 6 │
|
||||
│ Rejected Entry signals │ 0 │
|
||||
│ Entry/Exit Timeouts │ 0 / 0 │
|
||||
│ │ │
|
||||
│ Min balance │ 997.97 USDT │
|
||||
│ Max balance │ 999.693 USDT │
|
||||
│ Max % of account underwater │ 0.20% │
|
||||
│ Absolute Drawdown (Account) │ 0.20% │
|
||||
│ Absolute Drawdown │ 2.03 USDT │
|
||||
│ Drawdown high │ -0.307 USDT │
|
||||
│ Drawdown low │ -2.03 USDT │
|
||||
│ Drawdown Start │ 2025-04-06 17:45:00 │
|
||||
│ Drawdown End │ 2025-04-10 15:42: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 ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKXRegressionStrategy │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │ 2.03 USDT 0.20% │
|
||||
└───────────────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴──────────────────┘
|
||||
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
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
{"OKXRegressionStrategy":{"run_id":"cf1ed9733307582cc3881ffdddf1e9a8578b7e29","backtest_start_time":1746505396,"timeframe":"3m","timeframe_detail":null,"backtest_start_ts":1743465600,"backtest_end_ts":1744675200}}
|
||||
@ -1,709 +0,0 @@
|
||||
import logging
|
||||
from freqtrade.strategy import IStrategy
|
||||
from pandas import DataFrame
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import talib as ta
|
||||
import datetime
|
||||
from typing import Dict, List, Optional
|
||||
from sklearn.metrics import mean_squared_error
|
||||
from freqtrade.strategy import CategoricalParameter, DecimalParameter
|
||||
from xgboost import XGBRegressor
|
||||
import ccxt
|
||||
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class OKXRegressionStrategy(IStrategy):
|
||||
"""
|
||||
Freqtrade AI 策略,使用回归模型进行 OKX 数据上的仅做多交易。
|
||||
- 数据通过 CCXT 从 OKX 交易所获取。
|
||||
- 使用 XGBoost 回归模型预测价格变化。
|
||||
- 仅生成做多(买入)信号,不做空。
|
||||
- 适配 Freqtrade 2025.3,继承 IStrategy。
|
||||
"""
|
||||
|
||||
# 指标所需的最大启动蜡烛数
|
||||
startup_candle_count: int = 20
|
||||
|
||||
# 策略元数据(建议通过 config.json 配置)
|
||||
trailing_stop = True
|
||||
trailing_stop_positive = 0.01
|
||||
max_open_trades = 3
|
||||
stake_amount = 'dynamic'
|
||||
atr_period = CategoricalParameter([7, 14, 21], default=14, space='buy')
|
||||
atr_multiplier = DecimalParameter(1.0, 3.0, default=2.0, space='sell')
|
||||
|
||||
# FreqAI 配置
|
||||
freqai_config = {
|
||||
"enabled": True,
|
||||
"identifier": "okx_regression_v1",
|
||||
"model_training_parameters": {
|
||||
"n_estimators": 100,
|
||||
"learning_rate": 0.05,
|
||||
"max_depth": 6
|
||||
},
|
||||
"feature_parameters": {
|
||||
"include_timeframes": ["5m", "15m", "1h"],
|
||||
"include_corr_pairlist": ["BTC/USDT", "ETH/USDT"],
|
||||
"label_period_candles": 12,
|
||||
"include_shifted_candles": 2, # 添加历史偏移特征
|
||||
"principal_component_analysis": True # 启用 PCA
|
||||
},
|
||||
"data_split_parameters": {
|
||||
"test_size": 0.2,
|
||||
"random_state": 42,
|
||||
"shuffle": False
|
||||
},
|
||||
"train_period_days": 90,
|
||||
"backtest_period_days": 30,
|
||||
"purge_old_models": True # 清理旧模型
|
||||
}
|
||||
|
||||
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}")
|
||||
|
||||
# 新增模型加载状态日志
|
||||
model_identifier = self.freqai_config.get("identifier", "default")
|
||||
model_file = f"{freqai_model_path}/{model_identifier}/cb_okb_*.pkl"
|
||||
import os
|
||||
if any(os.path.exists(f.replace('*', '1743465600')) for f in [model_file]):
|
||||
logger.info("✅ 模型文件存在,准备加载")
|
||||
else:
|
||||
logger.warning("⚠️ 模型文件未找到,请确认是否训练完成")
|
||||
logger.info(f"🔍 正在尝试从 {freqai_model_path} 加载模型")
|
||||
|
||||
|
||||
def feature_engineering_expand_all(self, dataframe: DataFrame, period: int, metadata: Dict, **kwargs) -> DataFrame:
|
||||
"""
|
||||
为每个时间框架和相关交易对生成特征。
|
||||
"""
|
||||
cache_key = f"{metadata.get('pair', 'unknown')}_{period}"
|
||||
if cache_key in self.feature_cache:
|
||||
logger.debug(f"使用缓存特征:{cache_key}")
|
||||
return self.feature_cache[cache_key].copy()
|
||||
|
||||
# RSI
|
||||
dataframe[f"rsi_{period}"] = ta.RSI(dataframe["close"], timeperiod=period)
|
||||
|
||||
# MACD
|
||||
macd, macdsignal, _ = ta.MACD(dataframe["close"], fastperiod=12, slowperiod=26, signalperiod=9)
|
||||
dataframe[f"%-%-macd-{period}"] = macd
|
||||
dataframe[f"%-%-macdsignal-{period}"] = macdsignal
|
||||
|
||||
# 布林带宽度
|
||||
upper, middle, lower = ta.BBANDS(dataframe["close"], timeperiod=period)
|
||||
dataframe[f"%-%-bb_width-{period}"] = (upper - lower) / middle
|
||||
|
||||
# 成交量均线
|
||||
dataframe[f"%-%-volume_ma-{period}"] = ta.SMA(dataframe["volume"], timeperiod=period)
|
||||
|
||||
# 仅为 BTC/USDT 和 ETH/USDT 生成 order_book_imbalance
|
||||
#
|
||||
pair = metadata.get('pair', 'unknown')
|
||||
# 注释掉订单簿相关代码
|
||||
# if pair in ["BTC/USDT", "ETH/USDT"]:
|
||||
# try:
|
||||
# order_book = self.fetch_okx_order_book(pair)
|
||||
# dataframe[f"%-%-order_book_imbalance"] = (
|
||||
# order_book["bids"] - order_book["asks"]
|
||||
# ) / (order_book["bids"] + order_book["asks"] + 1e-10)
|
||||
# except Exception as e:
|
||||
# logger.warning(f"Failed to fetch order book for {pair}: {str(e)}")
|
||||
# dataframe[f"%-%-order_book_imbalance"] = 0.0
|
||||
|
||||
# 数据清洗
|
||||
dataframe = dataframe.replace([np.inf, -np.inf], np.nan)
|
||||
dataframe = dataframe.ffill().fillna(0)
|
||||
|
||||
# 缓存特征副本,避免引用污染
|
||||
self.feature_cache[cache_key] = dataframe.copy()
|
||||
logger.debug(f"周期 {period} 特征:{list(dataframe.filter(like='%-%-').columns)}")
|
||||
|
||||
return dataframe
|
||||
|
||||
def feature_engineering_standard(self, dataframe: DataFrame, **kwargs) -> DataFrame:
|
||||
"""
|
||||
添加基础时间框架的全局特征。
|
||||
"""
|
||||
# 确保索引是 DatetimeIndex
|
||||
if not isinstance(dataframe.index, pd.DatetimeIndex):
|
||||
dataframe = dataframe.set_index(pd.DatetimeIndex(dataframe.index))
|
||||
|
||||
# 价格变化率
|
||||
dataframe["%-price_change"] = dataframe["close"].pct_change()
|
||||
|
||||
# 时间特征:小时
|
||||
dataframe["%-hour_of_day"] = dataframe.index.hour / 24.0
|
||||
|
||||
# 数据清洗
|
||||
dataframe = dataframe.replace([np.inf, -np.inf], np.nan)
|
||||
dataframe = dataframe.ffill().fillna(0)
|
||||
|
||||
logger.debug(f"全局特征:{list(dataframe.filter(like='%-%-').columns)}")
|
||||
return dataframe
|
||||
|
||||
def set_freqai_targets(self, dataframe: DataFrame, metadata: Dict, **kwargs) -> DataFrame:
|
||||
"""
|
||||
设置回归模型的目标变量,为不同币对设置动态止损和ROI阈值。
|
||||
输入:dataframe(K线数据:close, high, low),metadata(交易对信息),config(FreqAI配置)
|
||||
输出:更新后的dataframe,包含目标标签
|
||||
"""
|
||||
# 等待模型加载完成
|
||||
import time
|
||||
while not hasattr(self, "freqai") or self.freqai is None:
|
||||
time.sleep(1)
|
||||
|
||||
# 获取配置参数
|
||||
label_period = self.freqai_config["feature_parameters"]["label_period_candles"] # 标签预测周期(如5分钟K线的N根)
|
||||
pair = metadata["pair"] # 当前交易对(如DOGE/USDT)
|
||||
|
||||
# 计算未来价格变化率(现有逻辑)
|
||||
dataframe["&-s_close"] = (dataframe["close"].shift(-label_period) - dataframe["close"]) / dataframe["close"]
|
||||
|
||||
# 计算不同时间窗口的ROI(现有逻辑)
|
||||
for minutes in [0, 15, 30]:
|
||||
candles = int(minutes / 5) # 假设5分钟K线
|
||||
if candles > 0:
|
||||
dataframe[f"&-roi_{minutes}"] = (dataframe["close"].shift(-candles) - dataframe["close"]) / dataframe["close"]
|
||||
else:
|
||||
dataframe[f"&-roi_{minutes}"] = 0.0
|
||||
|
||||
# 计算市场状态指标:ADX(14周期,与label_period_candles对齐)
|
||||
dataframe["adx"] = ta.ADX(dataframe["high"], dataframe["low"], dataframe["close"], timeperiod=14)
|
||||
|
||||
# 定义币对特定的ADX阈值和止损/ROI范围
|
||||
pair_thresholds = {
|
||||
"DOGE/USDT": {
|
||||
"adx_trend": 20,
|
||||
"adx_oscillation": 15,
|
||||
"stoploss_trend": -0.08,
|
||||
"stoploss_oscillation": -0.04,
|
||||
"stoploss_mid": -0.06,
|
||||
"roi_trend": 0.06,
|
||||
"roi_oscillation": 0.025,
|
||||
"roi_mid": 0.04
|
||||
},
|
||||
"BTC/USDT": {
|
||||
"adx_trend": 25,
|
||||
"adx_oscillation": 20,
|
||||
"stoploss_trend": -0.03,
|
||||
"stoploss_oscillation": -0.015,
|
||||
"stoploss_mid": -0.02,
|
||||
"roi_trend": 0.03,
|
||||
"roi_oscillation": 0.015,
|
||||
"roi_mid": 0.02
|
||||
},
|
||||
"SOL/USDT": {
|
||||
"adx_trend": 22,
|
||||
"adx_oscillation": 18,
|
||||
"stoploss_trend": -0.06,
|
||||
"stoploss_oscillation": -0.03,
|
||||
"stoploss_mid": -0.045,
|
||||
"roi_trend": 0.045,
|
||||
"roi_oscillation": 0.02,
|
||||
"roi_mid": 0.03
|
||||
},
|
||||
"XRP/USDT": {
|
||||
"adx_trend": 22,
|
||||
"adx_oscillation": 18,
|
||||
"stoploss_trend": -0.06,
|
||||
"stoploss_oscillation": -0.03,
|
||||
"stoploss_mid": -0.045,
|
||||
"roi_trend": 0.045,
|
||||
"roi_oscillation": 0.02,
|
||||
"roi_mid": 0.03
|
||||
},
|
||||
"OKB/USDT": {
|
||||
"adx_trend": 18,
|
||||
"adx_oscillation": 12,
|
||||
"stoploss_trend": -0.10,
|
||||
"stoploss_oscillation": -0.06,
|
||||
"stoploss_mid": -0.08,
|
||||
"roi_trend": 0.07,
|
||||
"roi_oscillation": 0.04,
|
||||
"roi_mid": 0.05
|
||||
}
|
||||
}
|
||||
# 设置回归目标
|
||||
label_period = self.freqai_config["feature_parameters"]["label_period_candles"]
|
||||
dataframe["&-s_close"] = (dataframe["close"].shift(-label_period) - dataframe["close"]) / dataframe["close"]
|
||||
|
||||
# 设置动态 ROI 和止损阈值
|
||||
dataframe["&-roi_0_pred"] = 0.03 # 默认值,防止空值
|
||||
dataframe["&-stoploss_pred"] = -0.05
|
||||
|
||||
for index, row in dataframe.iterrows():
|
||||
thresholds = pair_thresholds.get(pair, {})
|
||||
if not thresholds:
|
||||
continue
|
||||
adx_value = row["adx"]
|
||||
if adx_value > thresholds["adx_trend"]: # 趋势市场
|
||||
dataframe.at[index, "&-stoploss_pred"] = thresholds["stoploss_trend"] # 宽松止损
|
||||
elif adx_value < thresholds["adx_oscillation"]: # 震荡市场
|
||||
dataframe.at[index, "&-stoploss_pred"] = thresholds["stoploss_oscillation"] # 严格止损
|
||||
else:
|
||||
# 中性市场:使用中间值
|
||||
dataframe.at[index, "&-stoploss_pred"] = thresholds["stoploss_mid"]
|
||||
|
||||
for index, row in dataframe.iterrows():
|
||||
thresholds = pair_thresholds.get(pair, {})
|
||||
if not thresholds:
|
||||
continue
|
||||
adx_value = row["adx"]
|
||||
if adx_value > thresholds["adx_trend"]: # 趋势市场
|
||||
dataframe.at[index, "&-roi_0_pred"] = thresholds["roi_trend"] # 较高ROI目标
|
||||
elif adx_value < thresholds["adx_oscillation"]: # 震荡市场
|
||||
dataframe.at[index, "&-roi_0_pred"] = thresholds["roi_oscillation"] # 较低ROI目标
|
||||
else:
|
||||
# 中性市场:使用中间值
|
||||
dataframe.at[index, "&-roi_0_pred"] = thresholds["roi_mid"]
|
||||
|
||||
return dataframe
|
||||
def populate_indicators(self, dataframe: DataFrame, metadata: Dict) -> DataFrame:
|
||||
"""
|
||||
使用 FreqAI 生成指标和预测。
|
||||
"""
|
||||
|
||||
try:
|
||||
logger.debug(f"FreqAI 对象:{type(self.freqai)}")
|
||||
dataframe = self.freqai.start(dataframe, metadata, self)
|
||||
|
||||
# 强制刷新缓存,避免旧数据干扰
|
||||
if hasattr(self, 'feature_cache'):
|
||||
self.feature_cache.clear()
|
||||
|
||||
# 验证数据完整性
|
||||
if dataframe["close"].isna().any() or dataframe["volume"].isna().any():
|
||||
logger.warning("检测到 OKX 数据缺失,使用前向填充")
|
||||
dataframe = dataframe.ffill().fillna(0)
|
||||
|
||||
# 检查所有目标列是否都存在
|
||||
required_targets = ["&-s_close", "&-roi_0", "&-buy_rsi_pred", "&-stoploss_pred", "&-roi_0_pred"]
|
||||
missing_targets = [col for col in required_targets if col not in dataframe.columns]
|
||||
if missing_targets:
|
||||
logger.warning(f"⚠️ 缺失目标列:{missing_targets},尝试重新生成")
|
||||
|
||||
# 检查预测列
|
||||
required_preds = ['pred_upper', 'pred_lower']
|
||||
missing_preds = [col for col in required_preds if col not in dataframe.columns]
|
||||
if missing_preds:
|
||||
logger.warning(f"⚠️ 缺失预测列:{missing_preds},尝试回退默认值")
|
||||
for col in missing_preds:
|
||||
dataframe[col] = np.nan
|
||||
|
||||
# 预测统计
|
||||
if "&-s_close" in dataframe.columns:
|
||||
logger.debug(f"预测统计:均值={dataframe['&-s_close'].mean():.4f}, 方差={dataframe['&-s_close'].var():.4f}")
|
||||
|
||||
if dataframe["pred_upper"].isna().all():
|
||||
logger.warning("⚠️ pred_upper 列全为 NaN,可能模型未加载成功")
|
||||
logger.debug(f"生成的列:{list(dataframe.columns)}")
|
||||
except Exception as e:
|
||||
logger.error(f"FreqAI start 失败:{str(e)}")
|
||||
raise
|
||||
finally:
|
||||
logger.debug("populate_indicators 完成")
|
||||
|
||||
# 确保返回 DataFrame,防止 None
|
||||
if dataframe is None:
|
||||
dataframe = DataFrame()
|
||||
|
||||
# 添加 ATR 指标
|
||||
dataframe['ATR_{}'.format(self.atr_period.value)] = ta.ATR(dataframe['high'], dataframe['low'], dataframe['close'], timeperiod=self.atr_period.value)
|
||||
|
||||
# 添加 RSI 和布林带指标
|
||||
dataframe['rsi'] = ta.RSI(dataframe['close'], timeperiod=14)
|
||||
upper, middle, lower = ta.BBANDS(dataframe['close'], timeperiod=20, nbdevup=2, nbdevdn=2)
|
||||
dataframe['bb_upper'] = upper
|
||||
dataframe['bb_middle'] = middle
|
||||
dataframe['bb_lower'] = lower
|
||||
|
||||
# 添加高时间框架趋势(1小时均线)
|
||||
dataframe_1h = None
|
||||
if self.config['timeframe'] != '1h':
|
||||
dataframe_1h = self.dp.get_analyzed_dataframe(metadata['pair'], '1h')[0]
|
||||
if dataframe_1h is not None and not dataframe_1h.empty and 'close' in dataframe_1h.columns:
|
||||
dataframe['trend_1h'] = dataframe_1h['close'].rolling(window=20).mean()
|
||||
else:
|
||||
dataframe['trend_1h'] = dataframe['close'].rolling(window=20).mean()
|
||||
else:
|
||||
dataframe['trend_1h'] = dataframe['close'].rolling(window=20).mean()
|
||||
|
||||
# 强制检查预测列是否存在,若不存在则填充 NaN 并记录警告
|
||||
required_pred_cols = ['pred_upper', 'pred_lower', '&-s_close', '&-roi_0_pred']
|
||||
missing_pred_cols = [col for col in required_pred_cols if col not in dataframe.columns]
|
||||
|
||||
if missing_pred_cols:
|
||||
logger.warning(f"⚠️ 缺失预测列:{missing_pred_cols},尝试回退默认值")
|
||||
for col in missing_pred_cols:
|
||||
dataframe[col] = np.nan
|
||||
else:
|
||||
logger.debug("✅ 预测列已就绪:")
|
||||
logger.debug(dataframe[['&-s_close', 'pred_upper', 'pred_lower']].head().to_string())
|
||||
|
||||
return dataframe
|
||||
|
||||
|
||||
def populate_entry_trend(self, dataframe: DataFrame, metadata: Dict) -> DataFrame:
|
||||
"""
|
||||
基于模型预测和 RSI 生成做多信号。
|
||||
"""
|
||||
# 确保必要列存在
|
||||
required_cols = ['rsi', 'volume', '&-s_close', '&-roi_0_pred']
|
||||
for col in required_cols:
|
||||
if col not in dataframe.columns:
|
||||
dataframe[col] = np.nan
|
||||
|
||||
# 只在预测值有效时生成信号
|
||||
valid_prediction = (~dataframe['&-s_close'].isna()) & (dataframe['&-s_close'] > 0.005) & (dataframe['&-s_close'].abs() > 0.001)
|
||||
|
||||
# 结合 RSI 和模型预测生成信号
|
||||
dataframe.loc[
|
||||
(dataframe["rsi"] < 30) &
|
||||
(dataframe["volume"] > 0) &
|
||||
valid_prediction,
|
||||
"enter_long"
|
||||
] = 1
|
||||
|
||||
# 设置 entry_price 列,用于止损逻辑
|
||||
dataframe['entry_price'] = dataframe['open'].where(dataframe['enter_long'] == 1).ffill()
|
||||
|
||||
logger.debug(f"生成 {dataframe['enter_long'].sum()} 个做多信号")
|
||||
return dataframe
|
||||
def _dynamic_stop_loss(self, dataframe: DataFrame, metadata: dict, atr_col: str = 'ATR_14', multiplier: float = 2.0) -> DataFrame:
|
||||
"""
|
||||
封装动态止损逻辑,基于入场价和ATR计算止损线
|
||||
:param dataframe: 原始DataFrame
|
||||
:param metadata: 策略元数据
|
||||
:param atr_col: 使用的ATR列名
|
||||
:param multiplier: ATR乘数
|
||||
:return: 更新后的DataFrame
|
||||
"""
|
||||
# 获取交易对信息
|
||||
pair = metadata.get('pair', 'unknown')
|
||||
|
||||
# 设置默认的止损倍数
|
||||
stop_loss_multiplier = 2.0
|
||||
|
||||
# 根据交易对调整止损倍数(示例:BTC/USDT 更稳定,止损倍数较低)
|
||||
if pair == "BTC/USDT":
|
||||
stop_loss_multiplier = 1.5
|
||||
elif pair == "DOGE/USDT":
|
||||
stop_loss_multiplier = 2.5
|
||||
elif pair == "SOL/USDT":
|
||||
stop_loss_multiplier = 2.0
|
||||
elif pair == "XRP/USDT":
|
||||
stop_loss_multiplier = 2.0
|
||||
|
||||
# 计算止损线
|
||||
dataframe['entry_price'] = dataframe['open'].where(dataframe['enter_long'] == 1).ffill()
|
||||
dataframe['stop_loss_line'] = dataframe['entry_price'] - dataframe[atr_col] * stop_loss_multiplier
|
||||
|
||||
# 应用止损逻辑(OKB/USDT 使用更平滑的退出)
|
||||
if metadata.get('pair') == 'OKB/USDT':
|
||||
# 对 OKB 添加缓冲区,避免频繁触发
|
||||
buffer_ratio = 0.005 # 0.5% 缓冲
|
||||
buffered_stop_loss = dataframe['stop_loss_line'] * (1 - buffer_ratio)
|
||||
dataframe.loc[
|
||||
(dataframe['close'] < buffered_stop_loss),
|
||||
'exit_long'
|
||||
] = 1
|
||||
else:
|
||||
dataframe.loc[
|
||||
(dataframe['close'] < dataframe['stop_loss_line']),
|
||||
'exit_long'
|
||||
] = 1
|
||||
|
||||
return dataframe
|
||||
|
||||
def _dynamic_take_profit(self, dataframe: DataFrame, metadata: dict, atr_col: str = 'ATR_14', multiplier: float = 2.0) -> DataFrame:
|
||||
"""
|
||||
封装动态止盈逻辑,基于入场价、ATR 和 ADX 调整止盈线
|
||||
:param dataframe: 原始DataFrame
|
||||
:param metadata: 策略元数据
|
||||
:param atr_col: 使用的ATR列名
|
||||
:param multiplier: ATR乘数(基础值)
|
||||
:return: 更新后的DataFrame
|
||||
"""
|
||||
# 获取交易对信息
|
||||
pair = metadata.get('pair', 'unknown')
|
||||
|
||||
# 设置默认的止盈倍数
|
||||
take_profit_multiplier = 2.0
|
||||
|
||||
# 根据交易对调整止盈倍数(示例:BTC/USDT 更稳定,止盈倍数较高)
|
||||
if pair == "BTC/USDT":
|
||||
take_profit_multiplier = 3.0
|
||||
elif pair == "DOGE/USDT":
|
||||
take_profit_multiplier = 1.5
|
||||
elif pair == "SOL/USDT":
|
||||
take_profit_multiplier = 2.0
|
||||
elif pair == "XRP/USDT":
|
||||
take_profit_multiplier = 2.0
|
||||
|
||||
# 计算当前ATR在历史窗口中的百分位
|
||||
historical_atr = dataframe[atr_col].rolling(window=20).mean().dropna().values
|
||||
if len(historical_atr) < 20:
|
||||
return dataframe
|
||||
|
||||
current_atr = dataframe[atr_col].iloc[-1]
|
||||
percentile = (np.sum(historical_atr < current_atr) / len(historical_atr)) * 100
|
||||
|
||||
# 根据波动率百分位调整止盈倍数
|
||||
if percentile > 80: # 高波动市场,缩短止盈距离
|
||||
volatility_adjustment = 0.8
|
||||
elif percentile < 20: # 低波动市场,拉长止盈距离
|
||||
volatility_adjustment = 1.2
|
||||
else: # 正常波动市场,保持默认
|
||||
volatility_adjustment = 1.0
|
||||
|
||||
# 获取ADX指标判断趋势强度
|
||||
dataframe['adx'] = ta.ADX(dataframe["high"], dataframe["low"], dataframe["close"], timeperiod=14)
|
||||
adx_value = dataframe['adx'].iloc[-1]
|
||||
|
||||
# 根据ADX趋势强度调整止盈倍数
|
||||
if adx_value > 25: # 强趋势,延长止盈距离
|
||||
trend_adjustment = 1.3
|
||||
elif adx_value < 15: # 震荡行情,缩短止盈距离
|
||||
trend_adjustment = 0.7
|
||||
else: # 中性趋势,保持默认
|
||||
trend_adjustment = 1.0
|
||||
|
||||
# 综合调整止盈倍数
|
||||
adjusted_multiplier = take_profit_multiplier * volatility_adjustment * trend_adjustment
|
||||
|
||||
# 计算止盈线
|
||||
dataframe['entry_price'] = dataframe['open'].where(dataframe['enter_long'] == 1).ffill()
|
||||
dataframe['take_profit_line'] = dataframe['entry_price'] + dataframe[atr_col] * adjusted_multiplier
|
||||
|
||||
# 应用止盈逻辑
|
||||
dataframe.loc[
|
||||
(dataframe['close'] > dataframe['take_profit_line']),
|
||||
'exit_long'
|
||||
] = 1
|
||||
|
||||
return dataframe
|
||||
|
||||
def populate_exit_trend(self, dataframe: DataFrame, metadata: Dict) -> DataFrame:
|
||||
# 确保 ATR 列存在
|
||||
if 'ATR_14' not in dataframe.columns:
|
||||
dataframe['ATR_14'] = 0.0
|
||||
|
||||
# 应用动态止损和止盈逻辑
|
||||
dataframe = self._dynamic_stop_loss(dataframe, metadata)
|
||||
dataframe = self._dynamic_take_profit(dataframe, metadata)
|
||||
|
||||
return dataframe
|
||||
|
||||
def custom_stake_amount(self, pair: str, current_time: 'datetime', current_rate: float,
|
||||
proposed_stake: float, min_stake: float, max_stake: float,
|
||||
entry_tag: Optional[str], **kwargs) -> float:
|
||||
"""
|
||||
动态下注:每笔交易占账户余额 2%。
|
||||
"""
|
||||
balance = self.wallets.get_available_stake_amount()
|
||||
stake = balance * 0.02
|
||||
return min(max(stake, min_stake), max_stake)
|
||||
def custom_stoploss(self, pair: str, trade: 'Trade', current_time: datetime,
|
||||
current_rate: float, profit_percent: float,
|
||||
after_fill: bool, **kwargs) -> Optional[float]:
|
||||
"""
|
||||
自适应止损:基于市场波动率百分位动态调整ATR乘数
|
||||
"""
|
||||
if trade.enter_tag == 'long':
|
||||
# 获取多个周期的ATR值
|
||||
dataframe = self.dp.get_pair_dataframe(pair, timeframe=self.timeframe)
|
||||
|
||||
# 计算不同周期的ATR
|
||||
dataframe['ATR_7'] = ta.ATR(dataframe['high'], dataframe['low'], dataframe['close'], timeperiod=7)
|
||||
dataframe['ATR_14'] = ta.ATR(dataframe['high'], dataframe['low'], dataframe['close'], timeperiod=14)
|
||||
dataframe['ATR_21'] = ta.ATR(dataframe['high'], dataframe['low'], dataframe['close'], timeperiod=21)
|
||||
|
||||
# 计算20日平均ATR(用于百分位计算)
|
||||
avg_atr_window = 20
|
||||
dataframe['avg_atr'] = dataframe['ATR_14'].rolling(window=avg_atr_window).mean()
|
||||
|
||||
# 获取最新数据
|
||||
latest_row = dataframe.iloc[-1].copy()
|
||||
|
||||
# 计算当前ATR在历史窗口中的百分位
|
||||
historical_atr = dataframe['avg_atr'].dropna().values
|
||||
if len(historical_atr) < avg_atr_window:
|
||||
return None
|
||||
|
||||
current_atr = latest_row['avg_atr']
|
||||
percentile = (np.sum(historical_atr < current_atr) / len(historical_atr)) * 100
|
||||
|
||||
# 根据市场波动率百分位选择ATR乘数
|
||||
if percentile > 80: # 高波动市场
|
||||
atr_multiplier = 1.5
|
||||
elif percentile < 20: # 低波动市场
|
||||
atr_multiplier = 2.5
|
||||
else: # 正常波动市场
|
||||
atr_multiplier = 2.0
|
||||
|
||||
# 根据交易对调整基础ATR值
|
||||
pair_specific_atr = {
|
||||
"BTC/USDT": latest_row['ATR_14'],
|
||||
"ETH/USDT": latest_row['ATR_14'],
|
||||
"OKB/USDT": latest_row['ATR_14'], # 使用更长周期 ATR 减少波动影响
|
||||
"TON/USDT": latest_row['ATR_7']
|
||||
}
|
||||
|
||||
if pair in pair_specific_atr:
|
||||
base_atr = pair_specific_atr[pair]
|
||||
else:
|
||||
base_atr = latest_row['ATR_14']
|
||||
|
||||
# 计算追踪止损价格
|
||||
trailing_stop = current_rate - base_atr * atr_multiplier
|
||||
|
||||
# 添加额外条件:确保止损不低于入场价的一定比例
|
||||
min_profit_ratio = 0.005 # 最低盈利0.5%
|
||||
min_stop_price = trade.open_rate * (1 + min_profit_ratio)
|
||||
final_stop_price = max(trailing_stop, min_stop_price)
|
||||
|
||||
return final_stop_price / current_rate - 1 # 返回相对百分比
|
||||
|
||||
return None
|
||||
|
||||
def leverage(self, pair: str, current_time: 'datetime', current_rate: float,
|
||||
proposed_leverage: float, max_leverage: float, side: str,
|
||||
**kwargs) -> float:
|
||||
"""
|
||||
禁用杠杆,仅做多。
|
||||
"""
|
||||
return 1.0
|
||||
|
||||
def confirm_trade_entry(self, pair: str, order_type: str, amount: float, rate: float,
|
||||
time_in_force: str, current_time: 'datetime', **kwargs) -> bool:
|
||||
"""
|
||||
验证交易进入,检查 OKX 数据新鲜度。
|
||||
"""
|
||||
if not self.check_data_freshness(pair, current_time):
|
||||
logger.warning(f"{pair} 的 OKX 数据过期,跳过交易")
|
||||
return False
|
||||
return True
|
||||
|
||||
def check_data_freshness(self, pair: str, current_time: 'datetime') -> bool:
|
||||
"""
|
||||
简化版数据新鲜度检查,不依赖外部 API。
|
||||
"""
|
||||
# 假设数据总是新鲜的(用于测试)
|
||||
return True
|
||||
|
||||
|
||||
|
||||
def fit(self, data_dictionary: Dict, metadata: Dict, **kwargs) -> None:
|
||||
"""
|
||||
训练回归模型并记录性能。
|
||||
"""
|
||||
try:
|
||||
# 初始化模型
|
||||
if not hasattr(self, 'model') or self.model is None:
|
||||
model_params = self.freqai_config["model_training_parameters"]
|
||||
self.model = XGBRegressor(**model_params)
|
||||
logger.debug("初始化新的 XGBoost 回归模型")
|
||||
|
||||
# 调用 FreqAI 训练
|
||||
self.freqai.fit(data_dictionary, metadata, **kwargs)
|
||||
|
||||
# 记录训练集性能
|
||||
train_data = data_dictionary["train_features"]
|
||||
train_labels = data_dictionary["train_labels"]
|
||||
train_predictions = self.model.predict(train_data)
|
||||
train_mse = mean_squared_error(train_labels, train_predictions)
|
||||
logger.info(f"训练集 MSE:{train_mse:.6f}")
|
||||
|
||||
# 记录测试集性能(如果可用)
|
||||
if "test_features" in data_dictionary:
|
||||
test_data = data_dictionary["test_features"]
|
||||
test_labels = data_dictionary["test_labels"]
|
||||
test_predictions = self.model.predict(test_data)
|
||||
test_mse = mean_squared_error(test_labels, test_predictions)
|
||||
logger.info(f"测试集 MSE:{test_mse:.6f}")
|
||||
|
||||
# 特征重要性
|
||||
if hasattr(self.model, 'feature_importances_'):
|
||||
importance = self.model.feature_importances_
|
||||
logger.debug(f"特征重要性:{dict(zip(train_data.columns, importance))}")
|
||||
except Exception as e:
|
||||
logger.error(f"FreqAI fit 失败:{str(e)}")
|
||||
raise
|
||||
raise RuntimeError("模型训练失败,请检查数据完整性或重新训练模型")
|
||||
def _callback_stop_loss(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
||||
"""
|
||||
动态回调止损逻辑:基于ATR调整回撤阈值,并结合RSI和布林带过滤信号。
|
||||
"""
|
||||
pair = metadata.get('pair', 'unknown')
|
||||
|
||||
# 设置默认参数
|
||||
atr_col = 'ATR_14'
|
||||
rolling_high_period = 20
|
||||
rsi_overbought = 70
|
||||
|
||||
# 设置不同币种的回调乘数
|
||||
callback_multipliers = {
|
||||
"BTC/USDT": 1.5,
|
||||
"ETH/USDT": 2.0,
|
||||
"OKB/USDT": 1.3,
|
||||
"TON/USDT": 2.0,
|
||||
}
|
||||
callback_multiplier = callback_multipliers.get(pair, 2.0)
|
||||
|
||||
# 确保ATR列存在
|
||||
if atr_col not in dataframe.columns:
|
||||
dataframe[atr_col] = ta.ATR(dataframe['high'], dataframe['low'], dataframe['close'], timeperiod=14)
|
||||
|
||||
# 计算动态回调百分比(基于ATR)
|
||||
dataframe['callback_threshold'] = dataframe[atr_col] * callback_multiplier
|
||||
|
||||
# 计算ATR
|
||||
if 'ATR_14' not in dataframe.columns:
|
||||
dataframe['ATR_14'] = ta.ATR(dataframe['high'], dataframe['low'], dataframe['close'], timeperiod=14)
|
||||
|
||||
# 计算最近高点
|
||||
dataframe['rolling_high'] = dataframe['close'].rolling(window=20).max()
|
||||
|
||||
# 计算回调阈值
|
||||
dataframe['take_profit_line'] = dataframe['entry_price'] + dataframe['ATR_14'] * callback_multiplier
|
||||
|
||||
# 应用止盈逻辑
|
||||
dataframe.loc[
|
||||
(dataframe['close'] > dataframe['take_profit_line']),
|
||||
'exit_long'
|
||||
] = 1
|
||||
|
||||
# 计算当前价格相对于最近高点的回撤比例(使用ATR标准化)
|
||||
dataframe['callback_ratio'] = (dataframe['close'] - dataframe['rolling_high']) / dataframe['rolling_high']
|
||||
dataframe['callback_condition_atr'] = (dataframe['close'] - dataframe['rolling_high']) <= -dataframe['callback_threshold']
|
||||
|
||||
# 获取RSI和布林带信息
|
||||
dataframe['in_overbought'] = dataframe['rsi'] > rsi_overbought
|
||||
dataframe['below_bb_upper'] = dataframe['close'] < dataframe['bb_upper']
|
||||
|
||||
# 获取高时间框架趋势(1小时均线)
|
||||
dataframe['trend_up'] = dataframe['close'] > dataframe['trend_1h']
|
||||
dataframe['trend_down'] = dataframe['close'] < dataframe['trend_1h']
|
||||
|
||||
# 综合回调止损条件
|
||||
callback_condition = (
|
||||
dataframe['callback_condition_atr'] &
|
||||
((dataframe['in_overbought'] | (~dataframe['below_bb_upper']))) &
|
||||
dataframe['trend_down']
|
||||
)
|
||||
|
||||
# 应用回调止损逻辑
|
||||
dataframe.loc[callback_condition, 'exit_long'] = 1
|
||||
|
||||
return dataframe
|
||||
@ -1 +0,0 @@
|
||||
{"$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,"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":[]},"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"}],"freqai":{"enabled":true,"identifier":"test175","freqaimodel":"XGBoostRegressor","model_path":"/freqtrade/user_data/models","save_backtesting_prediction":true,"purge_old_models":true,"load_trained_model":true,"train_period_days":90,"backtest_period_days":10,"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,"random_state":42},"model_training_parameters":{"n_estimators":200,"learning_rate":0.05,"max_depth":6,"subsample":0.8,"colsample_bytree":0.8,"reg_alpha":0.1,"reg_lambda":1.0}},"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"},"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_freqai.okx.json"]}
|
||||
Binary file not shown.
Binary file not shown.
@ -1,338 +1,25 @@
|
||||
Creating freqtrade_freqtrade_run ...
|
||||
Creating freqtrade_freqtrade_run ... done
|
||||
2025-05-06 04:23:11,765 - freqtrade - INFO - freqtrade docker-2025.4-dev-23e4943b
|
||||
2025-05-06 04:23:11,971 - numexpr.utils - INFO - NumExpr defaulting to 12 threads.
|
||||
2025-05-06 04:23:13,393 - freqtrade.configuration.load_config - INFO - Using config: /freqtrade/config_examples/config_freqai.okx.json ...
|
||||
2025-05-06 04:23:13,395 - freqtrade.loggers - INFO - Enabling colorized output.
|
||||
2025-05-06 04:23:13,395 - root - INFO - Logfile configured
|
||||
2025-05-06 04:23:13,396 - freqtrade.loggers - INFO - Verbosity set to 0
|
||||
2025-05-06 04:23:13,396 - freqtrade.configuration.configuration - INFO - Using additional Strategy lookup path: /freqtrade/templates
|
||||
2025-05-06 04:23:13,396 - freqtrade.configuration.configuration - INFO - Using max_open_trades: 4 ...
|
||||
2025-05-06 04:23:13,397 - freqtrade.configuration.configuration - INFO - Parameter --fee detected, setting fee to: 0.0008 ...
|
||||
2025-05-06 04:23:13,397 - freqtrade.configuration.configuration - INFO - Parameter --timerange detected: 20250401-20250415 ...
|
||||
2025-05-06 04:23:13,431 - freqtrade.configuration.configuration - INFO - Using user-data directory: /freqtrade/user_data ...
|
||||
2025-05-06 04:23:13,432 - freqtrade.configuration.configuration - INFO - Using data directory: /freqtrade/user_data/data/okx ...
|
||||
2025-05-06 04:23:13,432 - freqtrade.configuration.configuration - INFO - Parameter --cache=none detected ...
|
||||
2025-05-06 04:23:13,432 - freqtrade.configuration.configuration - INFO - Filter trades by timerange: 20250401-20250415
|
||||
2025-05-06 04:23:13,433 - freqtrade.configuration.configuration - INFO - Using freqaimodel class name: XGBoostRegressor
|
||||
2025-05-06 04:23:13,434 - freqtrade.exchange.check_exchange - INFO - Checking exchange...
|
||||
2025-05-06 04:23:13,441 - freqtrade.exchange.check_exchange - INFO - Exchange "okx" is officially supported by the Freqtrade development team.
|
||||
2025-05-06 04:23:13,441 - freqtrade.configuration.configuration - INFO - Using pairlist from configuration.
|
||||
2025-05-06 04:23:13,441 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-06 04:23:13,444 - freqtrade.commands.optimize_commands - INFO - Starting freqtrade in Backtesting mode
|
||||
2025-05-06 04:23:13,444 - freqtrade.exchange.exchange - INFO - Instance is running with dry_run enabled
|
||||
2025-05-06 04:23:13,445 - freqtrade.exchange.exchange - INFO - Using CCXT 4.4.77
|
||||
2025-05-06 04:23:13,445 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}}
|
||||
2025-05-06 04:23:13,450 - freqtrade.exchange.exchange - INFO - Applying additional ccxt config: {'enableRateLimit': True, 'rateLimit': 500, 'options': {'defaultType': 'spot'}, 'timeout': 20000}
|
||||
2025-05-06 04:23:13,455 - freqtrade.exchange.exchange - INFO - Using Exchange "OKX"
|
||||
2025-05-06 04:23:16,284 - freqtrade.resolvers.exchange_resolver - INFO - Using resolved exchange 'Okx'...
|
||||
2025-05-06 04:23:16,338 - freqtrade.resolvers.iresolver - INFO - Using resolved strategy OKXRegressionStrategy from '/freqtrade/templates/OKXRegressionStrategy.py'...
|
||||
2025-05-06 04:23:16,338 - freqtrade.strategy.hyper - INFO - Found no parameter file.
|
||||
2025-05-06 04:23:16,339 - OKXRegressionStrategy - INFO - FreqAI 模型路径:/freqtrade/user_data/models
|
||||
2025-05-06 04:23:16,339 - OKXRegressionStrategy - WARNING - ⚠️ 模型文件未找到,请确认是否训练完成
|
||||
2025-05-06 04:23:16,339 - OKXRegressionStrategy - INFO - 🔍 正在尝试从 /freqtrade/user_data/models 加载模型
|
||||
2025-05-06 04:23:16,340 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'timeframe' with value in config file: 3m.
|
||||
2025-05-06 04:23:16,340 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stoploss' with value in config file: -0.05.
|
||||
2025-05-06 04:23:16,340 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_currency' with value in config file: USDT.
|
||||
2025-05-06 04:23:16,341 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'stake_amount' with value in config file: 150.
|
||||
2025-05-06 04:23:16,341 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'startup_candle_count' with value in config file: 30.
|
||||
2025-05-06 04:23:16,341 - 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-06 04:23:16,342 - freqtrade.resolvers.strategy_resolver - INFO - Override strategy 'max_open_trades' with value in config file: 4.
|
||||
2025-05-06 04:23:16,342 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using minimal_roi: {}
|
||||
2025-05-06 04:23:16,342 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using timeframe: 3m
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stoploss: -0.05
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop: True
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive: 0.01
|
||||
2025-05-06 04:23:16,343 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_stop_positive_offset: 0.0
|
||||
2025-05-06 04:23:16,344 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using trailing_only_offset_is_reached: False
|
||||
2025-05-06 04:23:16,344 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_custom_stoploss: False
|
||||
2025-05-06 04:23:16,344 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using process_only_new_candles: True
|
||||
2025-05-06 04:23:16,344 - 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-06 04:23:16,345 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using order_time_in_force: {'entry': 'GTC', 'exit': 'GTC'}
|
||||
2025-05-06 04:23:16,345 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_currency: USDT
|
||||
2025-05-06 04:23:16,345 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using stake_amount: 150
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using startup_candle_count: 30
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using unfilledtimeout: {'entry': 5, 'exit': 15, 'exit_timeout_count': 0, 'unit': 'minutes'}
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using use_exit_signal: True
|
||||
2025-05-06 04:23:16,346 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_only: False
|
||||
2025-05-06 04:23:16,347 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_roi_if_entry_signal: False
|
||||
2025-05-06 04:23:16,347 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using exit_profit_offset: 0.0
|
||||
2025-05-06 04:23:16,347 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using disable_dataframe_checks: False
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using ignore_buying_expired_candle_after: 0
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using position_adjustment_enable: False
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_entry_position_adjustment: -1
|
||||
2025-05-06 04:23:16,348 - freqtrade.resolvers.strategy_resolver - INFO - Strategy using max_open_trades: 4
|
||||
2025-05-06 04:23:16,349 - freqtrade.configuration.config_validation - INFO - Validating configuration ...
|
||||
2025-05-06 04:23:16,352 - freqtrade.resolvers.iresolver - INFO - Using resolved pairlist StaticPairList from '/freqtrade/freqtrade/plugins/pairlist/StaticPairList.py'...
|
||||
2025-05-06 04:23:16,357 - freqtrade.optimize.backtesting - INFO - Using fee 0.0800% from config.
|
||||
2025-05-06 04:23:16,358 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-06 04:23:16,358 - freqtrade.data.history.history_utils - INFO - Using indicator startup period: 43250 ...
|
||||
2025-05-06 04:23:16,442 - 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-06 04:23:16,443 - freqtrade.optimize.backtesting - INFO - Dataload complete. Calculating indicators
|
||||
2025-05-06 04:23:16,443 - freqtrade.optimize.backtesting - INFO - Running backtesting for Strategy OKXRegressionStrategy
|
||||
2025-05-06 04:23:18,018 - matplotlib.font_manager - INFO - generated new fontManager
|
||||
2025-05-06 04:23:18,222 - freqtrade.resolvers.iresolver - INFO - Using resolved freqaimodel XGBoostRegressor from '/freqtrade/freqtrade/freqai/prediction_models/XGBoostRegressor.py'...
|
||||
2025-05-06 04:23:18,223 - freqtrade.freqai.data_drawer - INFO - Could not find existing datadrawer, starting from scratch
|
||||
2025-05-06 04:23:18,223 - freqtrade.freqai.data_drawer - INFO - Could not find existing historic_predictions, starting from scratch
|
||||
2025-05-06 04:23:18,223 - freqtrade.freqai.freqai_interface - INFO - Set fresh train queue from whitelist. Queue: ['OKB/USDT']
|
||||
2025-05-06 04:23:18,224 - freqtrade.strategy.hyper - INFO - No params for buy found, using default values.
|
||||
2025-05-06 04:23:18,224 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_period = 14
|
||||
2025-05-06 04:23:18,225 - freqtrade.strategy.hyper - INFO - No params for sell found, using default values.
|
||||
2025-05-06 04:23:18,225 - freqtrade.strategy.hyper - INFO - Strategy Parameter(default): atr_multiplier = 2.0
|
||||
2025-05-06 04:23:18,226 - freqtrade.strategy.hyper - INFO - No params for protection found, using default values.
|
||||
2025-05-06 04:23:18,230 - OKXRegressionStrategy - DEBUG - FreqAI 对象:<class 'XGBoostRegressor.XGBoostRegressor'>
|
||||
2025-05-06 04:23:18,232 - freqtrade.freqai.freqai_interface - INFO - Training 2 timeranges
|
||||
2025-05-06 04:23:18,234 - 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-06 04:23:18,234 - 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-06 04:23:18,258 - OKXRegressionStrategy - DEBUG - 周期 10 特征:['%-%-macd-10', '%-%-macdsignal-10', '%-%-bb_width-10', '%-%-volume_ma-10']
|
||||
2025-05-06 04:23:18,280 - OKXRegressionStrategy - DEBUG - 周期 20 特征:['%-%-macd-20', '%-%-macdsignal-20', '%-%-bb_width-20', '%-%-volume_ma-20']
|
||||
2025-05-06 04:23:18,302 - OKXRegressionStrategy - DEBUG - 周期 50 特征:['%-%-macd-50', '%-%-macdsignal-50', '%-%-bb_width-50', '%-%-volume_ma-50']
|
||||
2025-05-06 04:23:18,393 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-06 04:23:18,394 - 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-06 04:23:18,431 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_10
|
||||
2025-05-06 04:23:18,437 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_20
|
||||
2025-05-06 04:23:18,445 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_50
|
||||
2025-05-06 04:23:18,526 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-06 04:23:18,526 - 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-06 04:23:18,547 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_10
|
||||
2025-05-06 04:23:18,552 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_20
|
||||
2025-05-06 04:23:18,557 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_50
|
||||
2025-05-06 04:23:18,628 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-06 04:23:18,628 - 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-06 04:23:18,644 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_10
|
||||
2025-05-06 04:23:18,648 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_20
|
||||
2025-05-06 04:23:18,652 - OKXRegressionStrategy - DEBUG - 使用缓存特征:OKB/USDT_50
|
||||
2025-05-06 04:23:19,041 - OKXRegressionStrategy - DEBUG - 全局特征:['%-%-macd-10_10_OKB/USDT_3m', '%-%-macdsignal-10_10_OKB/USDT_3m', '%-%-bb_width-10_10_OKB/USDT_3m',
|
||||
'%-%-volume_ma-10_10_OKB/USDT_3m', '%-%-macd-20_20_OKB/USDT_3m', '%-%-macdsignal-20_20_OKB/USDT_3m', '%-%-bb_width-20_20_OKB/USDT_3m', '%-%-volume_ma-20_20_OKB/USDT_3m', '%-%-macd-50_50_OKB/USDT_3m',
|
||||
'%-%-macdsignal-50_50_OKB/USDT_3m', '%-%-bb_width-50_50_OKB/USDT_3m', '%-%-volume_ma-50_50_OKB/USDT_3m', '%-%-macd-10_10_shift-1_OKB/USDT_3m', '%-%-macdsignal-10_10_shift-1_OKB/USDT_3m',
|
||||
'%-%-bb_width-10_10_shift-1_OKB/USDT_3m', '%-%-volume_ma-10_10_shift-1_OKB/USDT_3m', '%-%-macd-20_20_shift-1_OKB/USDT_3m', '%-%-macdsignal-20_20_shift-1_OKB/USDT_3m',
|
||||
'%-%-bb_width-20_20_shift-1_OKB/USDT_3m', '%-%-volume_ma-20_20_shift-1_OKB/USDT_3m', '%-%-macd-50_50_shift-1_OKB/USDT_3m', '%-%-macdsignal-50_50_shift-1_OKB/USDT_3m',
|
||||
'%-%-bb_width-50_50_shift-1_OKB/USDT_3m', '%-%-volume_ma-50_50_shift-1_OKB/USDT_3m', '%-%-macd-10_10_shift-2_OKB/USDT_3m', '%-%-macdsignal-10_10_shift-2_OKB/USDT_3m',
|
||||
'%-%-bb_width-10_10_shift-2_OKB/USDT_3m', '%-%-volume_ma-10_10_shift-2_OKB/USDT_3m', '%-%-macd-20_20_shift-2_OKB/USDT_3m', '%-%-macdsignal-20_20_shift-2_OKB/USDT_3m',
|
||||
'%-%-bb_width-20_20_shift-2_OKB/USDT_3m', '%-%-volume_ma-20_20_shift-2_OKB/USDT_3m', '%-%-macd-50_50_shift-2_OKB/USDT_3m', '%-%-macdsignal-50_50_shift-2_OKB/USDT_3m',
|
||||
'%-%-bb_width-50_50_shift-2_OKB/USDT_3m', '%-%-volume_ma-50_50_shift-2_OKB/USDT_3m', '%-%-macd-10_10_shift-3_OKB/USDT_3m', '%-%-macdsignal-10_10_shift-3_OKB/USDT_3m',
|
||||
'%-%-bb_width-10_10_shift-3_OKB/USDT_3m', '%-%-volume_ma-10_10_shift-3_OKB/USDT_3m', '%-%-macd-20_20_shift-3_OKB/USDT_3m', '%-%-macdsignal-20_20_shift-3_OKB/USDT_3m',
|
||||
'%-%-bb_width-20_20_shift-3_OKB/USDT_3m', '%-%-volume_ma-20_20_shift-3_OKB/USDT_3m', '%-%-macd-50_50_shift-3_OKB/USDT_3m', '%-%-macdsignal-50_50_shift-3_OKB/USDT_3m',
|
||||
'%-%-bb_width-50_50_shift-3_OKB/USDT_3m', '%-%-volume_ma-50_50_shift-3_OKB/USDT_3m', '%-%-macd-10_10_OKB/USDT_5m', '%-%-macdsignal-10_10_OKB/USDT_5m', '%-%-bb_width-10_10_OKB/USDT_5m',
|
||||
'%-%-volume_ma-10_10_OKB/USDT_5m', '%-%-macd-20_20_OKB/USDT_5m', '%-%-macdsignal-20_20_OKB/USDT_5m', '%-%-bb_width-20_20_OKB/USDT_5m', '%-%-volume_ma-20_20_OKB/USDT_5m', '%-%-macd-50_50_OKB/USDT_5m',
|
||||
'%-%-macdsignal-50_50_OKB/USDT_5m', '%-%-bb_width-50_50_OKB/USDT_5m', '%-%-volume_ma-50_50_OKB/USDT_5m', '%-%-macd-10_10_shift-1_OKB/USDT_5m', '%-%-macdsignal-10_10_shift-1_OKB/USDT_5m',
|
||||
'%-%-bb_width-10_10_shift-1_OKB/USDT_5m', '%-%-volume_ma-10_10_shift-1_OKB/USDT_5m', '%-%-macd-20_20_shift-1_OKB/USDT_5m', '%-%-macdsignal-20_20_shift-1_OKB/USDT_5m',
|
||||
'%-%-bb_width-20_20_shift-1_OKB/USDT_5m', '%-%-volume_ma-20_20_shift-1_OKB/USDT_5m', '%-%-macd-50_50_shift-1_OKB/USDT_5m', '%-%-macdsignal-50_50_shift-1_OKB/USDT_5m',
|
||||
'%-%-bb_width-50_50_shift-1_OKB/USDT_5m', '%-%-volume_ma-50_50_shift-1_OKB/USDT_5m', '%-%-macd-10_10_shift-2_OKB/USDT_5m', '%-%-macdsignal-10_10_shift-2_OKB/USDT_5m',
|
||||
'%-%-bb_width-10_10_shift-2_OKB/USDT_5m', '%-%-volume_ma-10_10_shift-2_OKB/USDT_5m', '%-%-macd-20_20_shift-2_OKB/USDT_5m', '%-%-macdsignal-20_20_shift-2_OKB/USDT_5m',
|
||||
'%-%-bb_width-20_20_shift-2_OKB/USDT_5m', '%-%-volume_ma-20_20_shift-2_OKB/USDT_5m', '%-%-macd-50_50_shift-2_OKB/USDT_5m', '%-%-macdsignal-50_50_shift-2_OKB/USDT_5m',
|
||||
'%-%-bb_width-50_50_shift-2_OKB/USDT_5m', '%-%-volume_ma-50_50_shift-2_OKB/USDT_5m', '%-%-macd-10_10_shift-3_OKB/USDT_5m', '%-%-macdsignal-10_10_shift-3_OKB/USDT_5m',
|
||||
'%-%-bb_width-10_10_shift-3_OKB/USDT_5m', '%-%-volume_ma-10_10_shift-3_OKB/USDT_5m', '%-%-macd-20_20_shift-3_OKB/USDT_5m', '%-%-macdsignal-20_20_shift-3_OKB/USDT_5m',
|
||||
'%-%-bb_width-20_20_shift-3_OKB/USDT_5m', '%-%-volume_ma-20_20_shift-3_OKB/USDT_5m', '%-%-macd-50_50_shift-3_OKB/USDT_5m', '%-%-macdsignal-50_50_shift-3_OKB/USDT_5m',
|
||||
'%-%-bb_width-50_50_shift-3_OKB/USDT_5m', '%-%-volume_ma-50_50_shift-3_OKB/USDT_5m', '%-%-macd-10_10_OKB/USDT_15m', '%-%-macdsignal-10_10_OKB/USDT_15m', '%-%-bb_width-10_10_OKB/USDT_15m',
|
||||
'%-%-volume_ma-10_10_OKB/USDT_15m', '%-%-macd-20_20_OKB/USDT_15m', '%-%-macdsignal-20_20_OKB/USDT_15m', '%-%-bb_width-20_20_OKB/USDT_15m', '%-%-volume_ma-20_20_OKB/USDT_15m',
|
||||
'%-%-macd-50_50_OKB/USDT_15m', '%-%-macdsignal-50_50_OKB/USDT_15m', '%-%-bb_width-50_50_OKB/USDT_15m', '%-%-volume_ma-50_50_OKB/USDT_15m', '%-%-macd-10_10_shift-1_OKB/USDT_15m',
|
||||
'%-%-macdsignal-10_10_shift-1_OKB/USDT_15m', '%-%-bb_width-10_10_shift-1_OKB/USDT_15m', '%-%-volume_ma-10_10_shift-1_OKB/USDT_15m', '%-%-macd-20_20_shift-1_OKB/USDT_15m',
|
||||
'%-%-macdsignal-20_20_shift-1_OKB/USDT_15m', '%-%-bb_width-20_20_shift-1_OKB/USDT_15m', '%-%-volume_ma-20_20_shift-1_OKB/USDT_15m', '%-%-macd-50_50_shift-1_OKB/USDT_15m',
|
||||
'%-%-macdsignal-50_50_shift-1_OKB/USDT_15m', '%-%-bb_width-50_50_shift-1_OKB/USDT_15m', '%-%-volume_ma-50_50_shift-1_OKB/USDT_15m', '%-%-macd-10_10_shift-2_OKB/USDT_15m',
|
||||
'%-%-macdsignal-10_10_shift-2_OKB/USDT_15m', '%-%-bb_width-10_10_shift-2_OKB/USDT_15m', '%-%-volume_ma-10_10_shift-2_OKB/USDT_15m', '%-%-macd-20_20_shift-2_OKB/USDT_15m',
|
||||
'%-%-macdsignal-20_20_shift-2_OKB/USDT_15m', '%-%-bb_width-20_20_shift-2_OKB/USDT_15m', '%-%-volume_ma-20_20_shift-2_OKB/USDT_15m', '%-%-macd-50_50_shift-2_OKB/USDT_15m',
|
||||
'%-%-macdsignal-50_50_shift-2_OKB/USDT_15m', '%-%-bb_width-50_50_shift-2_OKB/USDT_15m', '%-%-volume_ma-50_50_shift-2_OKB/USDT_15m', '%-%-macd-10_10_shift-3_OKB/USDT_15m',
|
||||
'%-%-macdsignal-10_10_shift-3_OKB/USDT_15m', '%-%-bb_width-10_10_shift-3_OKB/USDT_15m', '%-%-volume_ma-10_10_shift-3_OKB/USDT_15m', '%-%-macd-20_20_shift-3_OKB/USDT_15m',
|
||||
'%-%-macdsignal-20_20_shift-3_OKB/USDT_15m', '%-%-bb_width-20_20_shift-3_OKB/USDT_15m', '%-%-volume_ma-20_20_shift-3_OKB/USDT_15m', '%-%-macd-50_50_shift-3_OKB/USDT_15m',
|
||||
'%-%-macdsignal-50_50_shift-3_OKB/USDT_15m', '%-%-bb_width-50_50_shift-3_OKB/USDT_15m', '%-%-volume_ma-50_50_shift-3_OKB/USDT_15m', '%-%-macd-10_10_OKB/USDT_1h', '%-%-macdsignal-10_10_OKB/USDT_1h',
|
||||
'%-%-bb_width-10_10_OKB/USDT_1h', '%-%-volume_ma-10_10_OKB/USDT_1h', '%-%-macd-20_20_OKB/USDT_1h', '%-%-macdsignal-20_20_OKB/USDT_1h', '%-%-bb_width-20_20_OKB/USDT_1h',
|
||||
'%-%-volume_ma-20_20_OKB/USDT_1h', '%-%-macd-50_50_OKB/USDT_1h', '%-%-macdsignal-50_50_OKB/USDT_1h', '%-%-bb_width-50_50_OKB/USDT_1h', '%-%-volume_ma-50_50_OKB/USDT_1h',
|
||||
'%-%-macd-10_10_shift-1_OKB/USDT_1h', '%-%-macdsignal-10_10_shift-1_OKB/USDT_1h', '%-%-bb_width-10_10_shift-1_OKB/USDT_1h', '%-%-volume_ma-10_10_shift-1_OKB/USDT_1h',
|
||||
'%-%-macd-20_20_shift-1_OKB/USDT_1h', '%-%-macdsignal-20_20_shift-1_OKB/USDT_1h', '%-%-bb_width-20_20_shift-1_OKB/USDT_1h', '%-%-volume_ma-20_20_shift-1_OKB/USDT_1h',
|
||||
'%-%-macd-50_50_shift-1_OKB/USDT_1h', '%-%-macdsignal-50_50_shift-1_OKB/USDT_1h', '%-%-bb_width-50_50_shift-1_OKB/USDT_1h', '%-%-volume_ma-50_50_shift-1_OKB/USDT_1h',
|
||||
'%-%-macd-10_10_shift-2_OKB/USDT_1h', '%-%-macdsignal-10_10_shift-2_OKB/USDT_1h', '%-%-bb_width-10_10_shift-2_OKB/USDT_1h', '%-%-volume_ma-10_10_shift-2_OKB/USDT_1h',
|
||||
'%-%-macd-20_20_shift-2_OKB/USDT_1h', '%-%-macdsignal-20_20_shift-2_OKB/USDT_1h', '%-%-bb_width-20_20_shift-2_OKB/USDT_1h', '%-%-volume_ma-20_20_shift-2_OKB/USDT_1h',
|
||||
'%-%-macd-50_50_shift-2_OKB/USDT_1h', '%-%-macdsignal-50_50_shift-2_OKB/USDT_1h', '%-%-bb_width-50_50_shift-2_OKB/USDT_1h', '%-%-volume_ma-50_50_shift-2_OKB/USDT_1h',
|
||||
'%-%-macd-10_10_shift-3_OKB/USDT_1h', '%-%-macdsignal-10_10_shift-3_OKB/USDT_1h', '%-%-bb_width-10_10_shift-3_OKB/USDT_1h', '%-%-volume_ma-10_10_shift-3_OKB/USDT_1h',
|
||||
'%-%-macd-20_20_shift-3_OKB/USDT_1h', '%-%-macdsignal-20_20_shift-3_OKB/USDT_1h', '%-%-bb_width-20_20_shift-3_OKB/USDT_1h', '%-%-volume_ma-20_20_shift-3_OKB/USDT_1h',
|
||||
'%-%-macd-50_50_shift-3_OKB/USDT_1h', '%-%-macdsignal-50_50_shift-3_OKB/USDT_1h', '%-%-bb_width-50_50_shift-3_OKB/USDT_1h', '%-%-volume_ma-50_50_shift-3_OKB/USDT_1h']
|
||||
2025-05-06 04:23:19,092 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-06 04:23:19,093 - 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-06 04:23:19,161 - OKXRegressionStrategy - DEBUG - 周期 10 特征:['%-%-macd-10', '%-%-macdsignal-10', '%-%-bb_width-10', '%-%-volume_ma-10']
|
||||
2025-05-06 04:23:19,177 - OKXRegressionStrategy - DEBUG - 周期 20 特征:['%-%-macd-20', '%-%-macdsignal-20', '%-%-bb_width-20', '%-%-volume_ma-20']
|
||||
2025-05-06 04:23:19,194 - OKXRegressionStrategy - DEBUG - 周期 50 特征:['%-%-macd-50', '%-%-macdsignal-50', '%-%-bb_width-50', '%-%-volume_ma-50']
|
||||
2025-05-06 04:23:19,320 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-06 04:23:19,320 - 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-06 04:23:19,359 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_10
|
||||
2025-05-06 04:23:19,365 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_20
|
||||
2025-05-06 04:23:19,373 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_50
|
||||
2025-05-06 04:23:19,546 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-06 04:23:19,547 - 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-06 04:23:19,568 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_10
|
||||
2025-05-06 04:23:19,572 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_20
|
||||
2025-05-06 04:23:19,577 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_50
|
||||
2025-05-06 04:23:19,734 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-06 04:23:19,735 - 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-06 04:23:19,752 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_10
|
||||
2025-05-06 04:23:19,756 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_20
|
||||
2025-05-06 04:23:19,760 - OKXRegressionStrategy - DEBUG - 使用缓存特征:BTC/USDT_50
|
||||
2025-05-06 04:23:20,021 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 3m to 43250
|
||||
2025-05-06 04:23:20,021 - 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-06 04:23:20,082 - OKXRegressionStrategy - DEBUG - 周期 10 特征:['%-%-macd-10', '%-%-macdsignal-10', '%-%-bb_width-10', '%-%-volume_ma-10']
|
||||
2025-05-06 04:23:20,097 - OKXRegressionStrategy - DEBUG - 周期 20 特征:['%-%-macd-20', '%-%-macdsignal-20', '%-%-bb_width-20', '%-%-volume_ma-20']
|
||||
2025-05-06 04:23:20,115 - OKXRegressionStrategy - DEBUG - 周期 50 特征:['%-%-macd-50', '%-%-macdsignal-50', '%-%-bb_width-50', '%-%-volume_ma-50']
|
||||
2025-05-06 04:23:20,296 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 5m to 25970
|
||||
2025-05-06 04:23:20,297 - 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-06 04:23:20,333 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_10
|
||||
2025-05-06 04:23:20,339 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_20
|
||||
2025-05-06 04:23:20,345 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_50
|
||||
2025-05-06 04:23:20,583 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 15m to 8690
|
||||
2025-05-06 04:23:20,584 - 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-06 04:23:20,605 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_10
|
||||
2025-05-06 04:23:20,609 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_20
|
||||
2025-05-06 04:23:20,614 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_50
|
||||
2025-05-06 04:23:20,859 - freqtrade.data.dataprovider - INFO - Increasing startup_candle_count for freqai on 1h to 2210
|
||||
2025-05-06 04:23:20,860 - 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-06 04:23:20,877 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_10
|
||||
2025-05-06 04:23:20,881 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_20
|
||||
2025-05-06 04:23:20,885 - OKXRegressionStrategy - DEBUG - 使用缓存特征:ETH/USDT_50
|
||||
2025-05-06 04:23:35,159 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600
|
||||
2025-05-06 04:23:35,160 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-06 04:23:35,505 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 51 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-06 04:23:35,505 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-01 to 2025-03-31 --------------------
|
||||
2025-05-06 04:23:35,677 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day']
|
||||
2025-05-06 04:23:35,817 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 577 features
|
||||
2025-05-06 04:23:35,817 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34519 data points
|
||||
[99] validation_0-rmse:0.29984 validation_1-rmse:0.18813
|
||||
[199] validation_0-rmse:0.30154 validation_1-rmse:0.14371
|
||||
2025-05-06 04:26:29,861 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (174.70 secs) --------------------
|
||||
2025-05-06 04:26:30,080 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1743465600/cb_okb_1743465600--s_close.html
|
||||
2025-05-06 04:26:30,080 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk.
|
||||
2025-05-06 04:26:30,214 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-06 04:26:30,227 - 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-06 04:26:30,228 - 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-06 04:26:45,365 - freqtrade.freqai.freqai_interface - INFO - Could not find model at /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600
|
||||
2025-05-06 04:26:45,365 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Starting training OKB/USDT --------------------
|
||||
2025-05-06 04:26:45,664 - freqtrade.freqai.data_kitchen - INFO - OKB/USDT: dropped 12 training points due to NaNs in populated dataset 43200.
|
||||
2025-05-06 04:26:45,665 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Training on data from 2025-01-11 to 2025-04-10 --------------------
|
||||
2025-05-06 04:26:45,833 - datasieve.pipeline - INFO - VarianceThreshold will remove 1 features from the dataset.on transform. ['%-hour_of_day']
|
||||
2025-05-06 04:26:45,973 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 577 features
|
||||
2025-05-06 04:26:45,974 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - Training model on 34550 data points
|
||||
[99] validation_0-rmse:0.30462 validation_1-rmse:0.17903
|
||||
[199] validation_0-rmse:0.30706 validation_1-rmse:0.13800
|
||||
2025-05-06 04:29:40,827 - freqtrade.freqai.base_models.BaseRegressionModel - INFO - -------------------- Done training OKB/USDT (175.46 secs) --------------------
|
||||
2025-05-06 04:29:40,863 - freqtrade.plot.plotting - INFO - Stored plot as /freqtrade/user_data/models/test175/sub-train-OKB_1744329600/cb_okb_1744329600--s_close.html
|
||||
2025-05-06 04:29:40,863 - freqtrade.freqai.freqai_interface - INFO - Saving metadata to disk.
|
||||
2025-05-06 04:29:40,955 - datasieve.pipeline - WARNING - Could not find step di in pipeline, returning None
|
||||
2025-05-06 04:29:41,148 - OKXRegressionStrategy - WARNING - ⚠️ 缺失目标列:['&-buy_rsi_pred'],尝试重新生成
|
||||
2025-05-06 04:29:41,149 - OKXRegressionStrategy - WARNING - ⚠️ 缺失预测列:['pred_upper', 'pred_lower'],尝试回退默认值
|
||||
2025-05-06 04:29:41,150 - OKXRegressionStrategy - DEBUG - 预测统计:均值=0.0000, 方差=0.0000
|
||||
2025-05-06 04:29:41,151 - OKXRegressionStrategy - WARNING - ⚠️ pred_upper 列全为 NaN,可能模型未加载成功
|
||||
2025-05-06 04:29:41,151 - OKXRegressionStrategy - DEBUG - 生成的列:['date', 'open', 'high', 'low', 'close', 'volume', 'rsi_10_10_OKB/USDT_3m', 'rsi_20_20_OKB/USDT_3m', 'rsi_50_50_OKB/USDT_3m',
|
||||
'rsi_10_10_OKB/USDT_5m', 'rsi_20_20_OKB/USDT_5m', 'rsi_50_50_OKB/USDT_5m', 'rsi_10_10_OKB/USDT_15m', 'rsi_20_20_OKB/USDT_15m', 'rsi_50_50_OKB/USDT_15m', 'rsi_10_10_OKB/USDT_1h',
|
||||
'rsi_20_20_OKB/USDT_1h', 'rsi_50_50_OKB/USDT_1h', 'rsi_10_10_BTC/USDT_3m', 'rsi_20_20_BTC/USDT_3m', 'rsi_50_50_BTC/USDT_3m', 'rsi_10_10_BTC/USDT_5m', 'rsi_20_20_BTC/USDT_5m', 'rsi_50_50_BTC/USDT_5m',
|
||||
'rsi_10_10_BTC/USDT_15m', 'rsi_20_20_BTC/USDT_15m', 'rsi_50_50_BTC/USDT_15m', 'rsi_10_10_BTC/USDT_1h', 'rsi_20_20_BTC/USDT_1h', 'rsi_50_50_BTC/USDT_1h', 'rsi_10_10_ETH/USDT_3m',
|
||||
'rsi_20_20_ETH/USDT_3m', 'rsi_50_50_ETH/USDT_3m', 'rsi_10_10_ETH/USDT_5m', 'rsi_20_20_ETH/USDT_5m', 'rsi_50_50_ETH/USDT_5m', 'rsi_10_10_ETH/USDT_15m', 'rsi_20_20_ETH/USDT_15m',
|
||||
'rsi_50_50_ETH/USDT_15m', 'rsi_10_10_ETH/USDT_1h', 'rsi_20_20_ETH/USDT_1h', 'rsi_50_50_ETH/USDT_1h', '&-s_close', '&-s_close_mean', '&-s_close_std', '&-roi_0', '&-roi_0_mean', '&-roi_0_std',
|
||||
'&-roi_15', '&-roi_15_mean', '&-roi_15_std', '&-roi_30', '&-roi_30_mean', '&-roi_30_std', '&-roi_0_pred', '&-roi_0_pred_mean', '&-roi_0_pred_std', '&-stoploss_pred', '&-stoploss_pred_mean',
|
||||
'&-stoploss_pred_std', 'do_predict', 'pred_upper', 'pred_lower']
|
||||
2025-05-06 04:29:41,152 - OKXRegressionStrategy - DEBUG - populate_indicators 完成
|
||||
2025-05-06 04:29:41,156 - OKXRegressionStrategy - DEBUG - ✅ 预测列已就绪:
|
||||
2025-05-06 04:29:41,159 - OKXRegressionStrategy - DEBUG - &-s_close pred_upper pred_lower
|
||||
0 0.0 NaN NaN
|
||||
1 0.0 NaN NaN
|
||||
2 0.0 NaN NaN
|
||||
3 0.0 NaN NaN
|
||||
4 0.0 NaN NaN
|
||||
2025-05-06 04:29:41,170 - 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-06 04:29:41,177 - OKXRegressionStrategy - DEBUG - 生成 67.0 个做多信号
|
||||
2025-05-06 04:29:41,370 - freqtrade.misc - INFO - dumping json to "/freqtrade/user_data/backtest_results/backtest-result-2025-05-06_04-29-41.meta.json"
|
||||
Result for strategy OKXRegressionStrategy
|
||||
BACKTESTING REPORT
|
||||
┏━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKB/USDT │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
│ TOTAL │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
└──────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
LEFT OPEN TRADES REPORT
|
||||
┏━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ TOTAL │ 0 │ 0.0 │ 0.000 │ 0.0 │ 0:00 │ 0 0 0 0 │
|
||||
└───────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
ENTER TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ OTHER │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
│ TOTAL │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
EXIT REASON STATS
|
||||
┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ exit_signal │ 10 │ -0.19 │ -0.390 │ -0.04 │ 0:32:00 │ 6 0 4 60.0 │
|
||||
│ trailing_stop_loss │ 10 │ -0.66 │ -1.318 │ -0.13 │ 0:07:00 │ 2 0 8 20.0 │
|
||||
│ TOTAL │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │
|
||||
└────────────────────┴───────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
|
||||
MIXED TAG STATS
|
||||
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
|
||||
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
|
||||
│ │ exit_signal │ 10 │ -0.19 │ -0.390 │ -0.04 │ 0:32:00 │ 6 0 4 60.0 │
|
||||
│ │ trailing_stop_loss │ 10 │ -0.66 │ -1.318 │ -0.13 │ 0:07:00 │ 2 0 8 20.0 │
|
||||
│ TOTAL │ │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.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 │ 20 / 1.43 │
|
||||
│ Starting balance │ 1000 USDT │
|
||||
│ Final balance │ 998.293 USDT │
|
||||
│ Absolute profit │ -1.707 USDT │
|
||||
│ Total profit % │ -0.17% │
|
||||
│ CAGR % │ -4.36% │
|
||||
│ Sortino │ -25.57 │
|
||||
│ Sharpe │ -13.69 │
|
||||
│ Calmar │ -114.78 │
|
||||
│ SQN │ -2.19 │
|
||||
│ Profit factor │ 0.32 │
|
||||
│ Expectancy (Ratio) │ -0.09 (-0.41) │
|
||||
│ Avg. daily profit % │ -0.01% │
|
||||
│ Avg. stake amount │ 19.976 USDT │
|
||||
│ Total trade volume │ 798.613 USDT │
|
||||
│ │ │
|
||||
│ Best Pair │ OKB/USDT -0.17% │
|
||||
│ Worst Pair │ OKB/USDT -0.17% │
|
||||
│ Best trade │ OKB/USDT 1.00% │
|
||||
│ Worst trade │ OKB/USDT -2.36% │
|
||||
│ Best day │ 0.147 USDT │
|
||||
│ Worst day │ -0.949 USDT │
|
||||
│ Days win/draw/lose │ 3 / 1 / 4 │
|
||||
│ Avg. Duration Winners │ 0:32:00 │
|
||||
│ Avg. Duration Loser │ 0:12:00 │
|
||||
│ Max Consecutive Wins / Loss │ 3 / 6 │
|
||||
│ Rejected Entry signals │ 0 │
|
||||
│ Entry/Exit Timeouts │ 0 / 0 │
|
||||
│ │ │
|
||||
│ Min balance │ 997.97 USDT │
|
||||
│ Max balance │ 999.693 USDT │
|
||||
│ Max % of account underwater │ 0.20% │
|
||||
│ Absolute Drawdown (Account) │ 0.20% │
|
||||
│ Absolute Drawdown │ 2.03 USDT │
|
||||
│ Drawdown high │ -0.307 USDT │
|
||||
│ Drawdown low │ -2.03 USDT │
|
||||
│ Drawdown Start │ 2025-04-06 17:45:00 │
|
||||
│ Drawdown End │ 2025-04-10 15:42: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 ┃
|
||||
┡━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩
|
||||
│ OKXRegressionStrategy │ 20 │ -0.43 │ -1.707 │ -0.17 │ 0:20:00 │ 8 0 12 40.0 │ 2.03 USDT 0.20% │
|
||||
└───────────────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴──────────────────┘
|
||||
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
|
||||
|
||||
@ -1,80 +0,0 @@
|
||||
{
|
||||
"freqai": {
|
||||
"enabled": true,
|
||||
"identifier": "test175",
|
||||
"freqaimodel": "XGBoostRegressor",
|
||||
"model_path": "/freqtrade/user_data/models",
|
||||
"save_backtesting_prediction": true,
|
||||
"purge_old_models": true,
|
||||
"load_trained_model": true,
|
||||
"train_period_days": 90,
|
||||
"backtest_period_days": 10,
|
||||
"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,
|
||||
"random_state": 42
|
||||
},
|
||||
"model_training_parameters": {
|
||||
"n_estimators": 200,
|
||||
"learning_rate": 0.05,
|
||||
"max_depth": 6,
|
||||
"subsample": 0.8,
|
||||
"colsample_bytree": 0.8,
|
||||
"reg_alpha": 0.1,
|
||||
"reg_lambda": 1.0
|
||||
},
|
||||
"write_metrics_to_disk": false,
|
||||
"conv_width": 1,
|
||||
"expiration_hours": 0,
|
||||
"save_backtest_models": false,
|
||||
"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"
|
||||
]
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1,17 +1,3 @@
|
||||
user_data/models/test175/
|
||||
├── backtesting_predictions
|
||||
│ ├── cb_okb_1743465600_prediction.feather
|
||||
│ └── cb_okb_1744329600_prediction.feather
|
||||
├── run_params.json
|
||||
├── sub-train-OKB_1743465600
|
||||
│ ├── cb_okb_1743465600--s_close.html
|
||||
│ ├── cb_okb_1743465600_metadata.json
|
||||
│ └── tensorboard
|
||||
│ └── events.out.tfevents.1746505415.249ec82ae279.1.0
|
||||
└── sub-train-OKB_1744329600
|
||||
├── cb_okb_1744329600--s_close.html
|
||||
├── cb_okb_1744329600_metadata.json
|
||||
└── tensorboard
|
||||
└── events.out.tfevents.1746505605.249ec82ae279.1.1
|
||||
user_data/models/test175/ [error opening dir]
|
||||
|
||||
6 directories, 9 files
|
||||
0 directories, 0 files
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user