You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何测试数字集合所有组合取最高值 优化交易指标参数及神经网络权重

前提说明
  • 我已将BUY/SELL Pine Script指标转换为Python代码;
  • 该指标包含大量按神经网络结构排布的输入参数;
  • 我已准备好用于该指标回测的历史数据。
需求说明
  • 需自动调整输入参数和神经网络权重,以获取最高净利润;
  • 回测框架已开发完成,仅需一套可按需自动优化输入参数集的算法,实现测试所有数字组合以得到最高结果的目标。
优化算法实现方案

可根据你的参数规模选择对应的实现方案:

小参数规模(参数数量≤5)

直接用暴力遍历法即可覆盖所有参数组合,实现逻辑最简单,结果100%可复现:

import itertools

# 按实际需求定义每个参数的取值范围
param_ranges = {
    "indicator_param1": [i for i in range(1, 20)],
    "indicator_param2": [0.1, 0.2, 0.3, 0.4, 0.5],
    "nn_weight1": [-0.8, -0.4, 0, 0.4, 0.8]
    # 补充其余所有指标参数、神经网络权重的取值范围
}

best_profit = -float("inf")
best_params = None

# 遍历所有参数组合
for params_group in itertools.product(*param_ranges.values()):
    current_params = dict(zip(param_ranges.keys(), params_group))
    # 调用你已开发完成的回测接口,传入参数返回净利润
    current_profit = your_backtest_func(current_params)
    if current_profit > best_profit:
        best_profit = current_profit
        best_params = current_params

print(f"最优净利润:{best_profit} \n最优参数组:{best_params}")

中等参数规模(参数数量5~20)

暴力遍历算力成本过高,使用贝叶斯优化方案,可在有限迭代次数内逼近全局最优解,适配连续型的神经网络权重优化场景:

from bayes_opt import BayesianOptimization

# 定义回测评估函数,输入为所有待优化参数,返回净利润
def evaluate(indicator_param1, indicator_param2, nn_weight1, nn_weight2):
    # 离散型指标参数手动转成整数
    indicator_param1 = int(indicator_param1)
    params = {
        "indicator_param1": indicator_param1,
        "indicator_param2": indicator_param2,
        "nn_weights": [nn_weight1, nn_weight2]
        # 补充所有参数的映射逻辑
    }
    return your_backtest_func(params)

# 定义每个参数的取值上下限
pbounds = {
    "indicator_param1": (1, 20),
    "indicator_param2": (0.1, 0.5),
    "nn_weight1": (-1, 1),
    "nn_weight2": (-1, 1)
    # 补充所有参数的取值范围
}

optimizer = BayesianOptimization(
    f=evaluate,
    pbounds=pbounds,
    random_state=1,
)
# 迭代100次寻优,可根据你的算力情况调整迭代次数
optimizer.maximize(init_points=20, n_iter=80)
print(f"最优净利润:{optimizer.max['target']} \n最优参数组:{optimizer.max['params']}")

大参数规模(参数数量≥20)

使用遗传算法适配混合参数类型,同时兼顾全局寻优能力和算力效率,是高维神经网络权重+指标参数混合优化的首选方案。

注意事项

  • 所有参数范围的边界要合理,避免无意义的参数组合浪费算力
  • 可以添加过拟合校验,回测时拆分训练集和验证集,只保留在验证集上也能拿到高收益的参数组合,避免参数过拟合历史数据
  • 单次回测耗时较长的话,可以引入多进程并行计算,大幅提升优化效率

内容的提问来源于stack exchange,提问作者Zac Vaughn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 16:36:10