去掉了看底牌代码, hyper优化后年化27%, 若不hyperopt优化直接跑输

This commit is contained in:
Ubuntu 2025-05-17 20:23:34 +08:00
parent c232264487
commit aaf6958d9e
4 changed files with 21 additions and 15 deletions

View File

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

View File

@ -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"
}

View File

@ -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)

View File

@ -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