diff --git a/config_examples/freqaiprimer.json b/config_examples/freqaiprimer.json index d0d2e825..8ef9be38 100644 --- a/config_examples/freqaiprimer.json +++ b/config_examples/freqaiprimer.json @@ -35,6 +35,10 @@ }, "pair_whitelist": [ "BTC/USDT", + "ETH/USDT", + "TON/USDT", + "OKB/USDT", + "DOT/USDT", "SOL/USDT" ], "pair_blacklist": [] diff --git a/freqtrade/templates/freqaiprimer.json b/freqtrade/templates/freqaiprimer.json index 0bd86439..e29d2fa2 100644 --- a/freqtrade/templates/freqaiprimer.json +++ b/freqtrade/templates/freqaiprimer.json @@ -5,28 +5,28 @@ "max_open_trades": 4 }, "buy": { - "buy_rsi": 39.01486243151008 + "buy_rsi": 45.2500884290867 }, "sell": { - "sell_rsi": 69.01486243151008 + "sell_rsi": 75.2500884290867 }, "protection": {}, "roi": { - "0": 0.21500000000000002, - "8": 0.081, - "38": 0.028, - "57": 0 + "0": 0.20400000000000001, + "18": 0.07100000000000001, + "47": 0.03, + "102": 0 }, "stoploss": { - "stoploss": -0.029 + "stoploss": -0.07 }, "trailing": { "trailing_stop": true, - "trailing_stop_positive": 0.246, - "trailing_stop_positive_offset": 0.33799999999999997, - "trailing_only_offset_is_reached": true + "trailing_stop_positive": 0.237, + "trailing_stop_positive_offset": 0.267, + "trailing_only_offset_is_reached": false } }, "ft_stratparam_v": 1, - "export_time": "2025-05-17 10:28:46.008125+00:00" + "export_time": "2025-05-17 11:42:41.193338+00:00" } \ No newline at end of file diff --git a/freqtrade/templates/freqaiprimer.py b/freqtrade/templates/freqaiprimer.py index ac1d2d24..0a7d5b43 100644 --- a/freqtrade/templates/freqaiprimer.py +++ b/freqtrade/templates/freqaiprimer.py @@ -124,8 +124,9 @@ class FreqaiPrimer(IStrategy): dataframe["%-volatility"] = dataframe["%-volatility"].ffill() dataframe["%-volatility"] = dataframe["%-volatility"].fillna(0) +# 移除 shift(-label_period),改为使用当前及过去的数据 dataframe["&-buy_rsi"] = ta.RSI(dataframe, timeperiod=14) - dataframe["&-buy_rsi"] = dataframe["&-buy_rsi"].shift(-label_period).ffill().bfill() + dataframe["&-buy_rsi"] = dataframe["&-buy_rsi"].rolling(window=label_period).mean().ffill().bfill() for col in ["&-buy_rsi", "%-volatility"]: dataframe[col] = dataframe[col].replace([np.inf, -np.inf], 0) @@ -154,8 +155,9 @@ class FreqaiPrimer(IStrategy): dataframe["tema"] = ta.TEMA(dataframe, timeperiod=9) label_period = self.freqai_info["feature_parameters"]["label_period_candles"] +# 使用滚动窗口而非未来函数来生成 up_or_down 列 dataframe["up_or_down"] = np.where( - dataframe["close"].shift(-label_period) > dataframe["close"], 1, 0 + dataframe["close"].rolling(window=label_period).mean() > dataframe["close"], 1, 0 ) if "&-buy_rsi" in dataframe.columns: @@ -168,7 +170,7 @@ class FreqaiPrimer(IStrategy): dataframe["&-sell_rsi"] = dataframe["&-buy_rsi"] + 30 dataframe["&-stoploss"] = self.stoploss - (dataframe["%-volatility"] * 5).clip(-0.05, 0.05) - dataframe["&-roi_0"] = (dataframe["close"].shift(-label_period) / dataframe["close"] - 1).clip(0, 0.2) + dataframe["&-roi_0"] = (dataframe["close"].rolling(window=label_period).mean() / dataframe["close"] - 1).clip(0, 0.2) for col in ["&-buy_rsi", "&-sell_rsi", "&-stoploss", "&-roi_0"]: dataframe[col] = dataframe[col].replace([np.inf, -np.inf], 0) diff --git a/tools/dryrun.sh b/tools/dryrun.sh index c2744038..0f5121f1 100755 --- a/tools/dryrun.sh +++ b/tools/dryrun.sh @@ -41,7 +41,7 @@ docker-compose run -d --rm -p 8080:8080 freqtrade trade \ --freqaimodel LightGBMRegressor \ --config /freqtrade/config_examples/$CONFIG_FILE \ --strategy $STRATEGY_NAME \ - --fee 0.0008 \ + --fee 0.0016 \ --strategy-path /freqtrade/templates #python3 tools/filter.py