This commit is contained in:
Ubuntu 2025-05-17 10:40:36 +08:00
parent 339f24bf80
commit d748c37f6a
4 changed files with 17 additions and 5 deletions

View File

@ -35,7 +35,10 @@
},
"pair_whitelist": [
"BTC/USDT",
"SOL/USDT"
"OKB/USDT",
"TON/USDT",
"SOL/USDT",
"DOT/USDT"
],
"pair_blacklist": []
},

View File

@ -96,6 +96,7 @@ class FreqaiPrimer(IStrategy):
dataframe = dataframe.replace([np.inf, -np.inf], 0)
dataframe = dataframe.ffill()
dataframe = dataframe.fillna(0)
logger.info(f"最终数据框列:\n{dataframe.columns.to_list()}")
return dataframe
def feature_engineering_expand_basic(self, dataframe: DataFrame, metadata: dict, **kwargs) -> DataFrame:
@ -124,6 +125,7 @@ class FreqaiPrimer(IStrategy):
try:
label_period = self.freqai_info["feature_parameters"]["label_period_candles"]
dataframe["%-volatility"] = dataframe["close"].pct_change().rolling(20).std()
logger.info(f"Generated %-volatility column: {dataframe['%-volatility'].head().to_string()}")
dataframe["&-buy_rsi"] = ta.RSI(dataframe, timeperiod=14).shift(-label_period)
for col in ["&-buy_rsi", "%-volatility"]:
@ -141,7 +143,10 @@ class FreqaiPrimer(IStrategy):
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
logger.info(f"处理交易对:{metadata['pair']}")
logger.info(f"开始 FreqAI 处理,交易对:{metadata['pair']}")
logger.info(f"输入数据框列:\n{dataframe.columns.to_list()}")
dataframe = self.freqai.start(dataframe, metadata, self)
logger.info(f"FreqAI 处理后数据框列:\n{dataframe.columns.to_list()}")
# 计算传统指标
dataframe["rsi"] = ta.RSI(dataframe, timeperiod=14)
@ -162,6 +167,9 @@ class FreqaiPrimer(IStrategy):
dataframe = dataframe.fillna(0)
if "&-buy_rsi" in dataframe.columns:
if "%-volatility" not in dataframe.columns or dataframe["%-volatility"].isna().any():
logger.error("Critical column '%-volatility' is missing or contains NaN values.")
raise ValueError("Missing or invalid '%-volatility' column")
# 派生其他目标
dataframe["&-sell_rsi"] = dataframe["&-buy_rsi"] + 30
dataframe["%-volatility"] = dataframe["close"].pct_change().rolling(20).std()

View File

@ -34,10 +34,10 @@ fi
echo days: $days
if [[ "$@" == *"--timerange"* ]]; then
timerange=$(get_param_value "--timerange" "$@")
docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs BTC/USDT OKB/USDT OKB/BTC XRP/USDT --timeframe 1m 3m 5m 15m 30m 1h 4h 6h 12h 1d --timerange $timerange
docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs BTC/USDT OKB/USDT TON/USDT DOT/USDT SOL/USDT XRP/USDT --timeframe 3m 5m 15m 30m 1h 4h 6h 12h 1d --timerange $timerange
elif [[ "$@" == *"--days"* ]]; then
days=$(get_param_value "--days" "$@")
docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs BTC/USDT OKB/USDT OKB/BTC XRP/USDT --timeframe 1m 3m 5m 15m 30m 1h 4h 6h 12h 1d --days $days
docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs BTC/USDT OKB/USDT TON/USDT DOT/USDT SOL/USDT XRP/USDT --timeframe 3m 5m 15m 30m 1h 4h 6h 12h 1d --days $days
else
docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs BTC/USDT OKB/USDT OKB/BTC XRP/USDT --timeframe 1m 3m 5m 15m 30m 1h 4h 6h 12h 1d
docker-compose run --rm freqtrade download-data --config /freqtrade/config_examples/basic.json --pairs BTC/USDT OKB/USDT TON/USDT DOT/USDT SOL/USDT XRP/USDT --timeframe 3m 5m 15m 30m 1h 4h 6h 12h 1d
fi

View File

@ -33,7 +33,8 @@ rm -fr ./user_data/dryrun_results/*
rm result/*
hyperopt_config="${STRATEGY_NAME%.py}.json"
#docker-compose -f docker-compose_backtest.yml run --rm freqtrade >output.log 2>&1
docker rm $(docker ps -aq) -f
docker-compose run -d --rm -p 8080:8080 freqtrade trade \
--logfile /freqtrade/user_data/logs/freqtrade.log \
--db-url sqlite:////freqtrade/user_data/tradesv3.sqlite \