merge hyperopted
This commit is contained in:
parent
24eaf74159
commit
e9af186dcf
@ -35,6 +35,15 @@ class FreqaiPrimer(IStrategy):
|
||||
super().__init__(config) # 调用父类的初始化方法并传递config
|
||||
# 存储从配置文件加载的默认值
|
||||
self._trailing_stop_positive_default = 0.004 # 降低默认值以更容易触发跟踪止盈
|
||||
|
||||
# 验证 FreqAI 配置
|
||||
if self.config and "freqai" in self.config:
|
||||
logger.info(f"FreqAI 已启用: {self.config['freqai'].get('model', 'Unknown')}")
|
||||
else:
|
||||
logger.warning("FreqAI 未在配置文件中启用或配置缺失")
|
||||
|
||||
# 验证 h1_max_candles 参数
|
||||
assert self.h1_max_candles.value <= 50, f"h1_max_candles={self.h1_max_candles.value} 超出安全范围!"
|
||||
|
||||
@property
|
||||
def protections(self):
|
||||
@ -84,6 +93,47 @@ class FreqaiPrimer(IStrategy):
|
||||
can_short = False # 禁用做空
|
||||
freqai_predicted_add_step = 0.057 # 默认0.5%
|
||||
|
||||
# FreqAI 配置
|
||||
freqai_info = {
|
||||
"enabled": True,
|
||||
"identifier": "freqai_primer_mixed",
|
||||
"model": "LightGBMRegressor",
|
||||
"feature_parameters": {
|
||||
"include_timeframes": ["3m", "15m", "1h"],
|
||||
"include_shifted_candles": 2,
|
||||
"label_period_candles": 12
|
||||
},
|
||||
"data_split_parameters": {
|
||||
"test_size": 0.2,
|
||||
"shuffle": False
|
||||
},
|
||||
"model_training_parameters": {
|
||||
"price_value_divergence": {
|
||||
"model": "LightGBMRegressor",
|
||||
"model_params": {
|
||||
"n_estimators": 200,
|
||||
"learning_rate": 0.05,
|
||||
"num_leaves": 31,
|
||||
"verbose": -1
|
||||
}
|
||||
},
|
||||
"optimal_first_length": {
|
||||
"model": "LightGBMClassifier",
|
||||
"model_params": {
|
||||
"n_estimators": 150,
|
||||
"learning_rate": 0.1,
|
||||
"num_leaves": 15,
|
||||
"max_depth": 8,
|
||||
"min_child_samples": 10,
|
||||
"class_weight": "balanced",
|
||||
"verbose": -1
|
||||
}
|
||||
}
|
||||
},
|
||||
"fit_live_predictions_candles": 100,
|
||||
"live_retrain_candles": 100
|
||||
}
|
||||
|
||||
# [propertiesGrp_List]--------------------------------------------------------------------------------------------------------------------------------------
|
||||
# [propertiesGrp step="1" name="第一轮优化" epochs="300" space="buy " description="入场基础条件优化,入场确认条件优化"]
|
||||
bb_std = DecimalParameter(2.0, 5.0, decimals=1, default=3.5, optimize=True, load=True, space='buy') # 安全:2.0-5.0
|
||||
@ -408,6 +458,8 @@ class FreqaiPrimer(IStrategy):
|
||||
return dataframe
|
||||
|
||||
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
|
||||
# 🔧 调用FreqAI进行预测
|
||||
dataframe = self.freqai.start(dataframe, metadata, self)
|
||||
|
||||
# 计算 3m 周期的指标
|
||||
bb_length_value = self.bb_length.value
|
||||
@ -525,6 +577,11 @@ class FreqaiPrimer(IStrategy):
|
||||
|
||||
# 合并 1h 数据
|
||||
dataframe = dataframe.merge(df_1h, how='left', on='date').ffill()
|
||||
|
||||
# 🔧 验证 FreqAI 预测列是否存在
|
||||
if '&-add_position_step' not in dataframe.columns:
|
||||
logger.debug(f"[{metadata['pair']}] FreqAI预测列不存在,将在训练后自动生成")
|
||||
dataframe['&-add_position_step'] = self.freqai_predicted_add_step # 使用默认值
|
||||
|
||||
# 验证合并后的列
|
||||
#logger.info(f"[{metadata['pair']}] 合并后的数据框列名: {list(dataframe.columns)}")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user