## 策略缠论参数优化

---

相同的策略，在不同的缠论配置下，会有不一样的表现，可以通过 `OptimizationSetting` 查找策略最优缠论配置。

1. 首先按照正常的策略回测，配置并初始化回测类

```

bt_config = {...}
BT = backtest.BackTest(bt_config)

```

2. 初始化参数优化类，并添加需要跑的缠论参数

```

setting = OptimizationSetting()
setting.add_cl_parameter('bi_type', ['bi_type_old', 'bi_type_new'])
setting.add_cl_parameter('zs_bi_type', ['zs_type_bz', 'zs_type_dn', 'zs_type_fx'])
...

```

3. 执行并返回参数优化结果

```

res = BT.run_optimization(setting, max_workers=6, next_frequency='d', evaluate='profit_rate')
print(res)

```

### OptimizationSetting

文件：`src/chanlun/backtesting/optimize.py`

#### 方法： `add_cl_parameter`

参数说明：

`name`: 缠论配置项，例如 bi_type

`values`：缠论配置项，允许的配置值列表，例如 ['bi_type_old', 'bi_type_new']

安装自己需要，添加需要优化的缠论配置项，以及对应的值列表

---

执行参数优化，需要执行 `BackTest` 类的 `run_optimization` 方法

#### 方法： `run_optimization`

参数说明：

`optimization_setting` ： 参数优化对象

`max_workers` ：优化最大进程数，默认为 CPU 的核心数

`next_frequency` ：参数优化回测任务，每次循环的周期，按照策略允许的最大周期运行，可加速运行时间

`evaluate` ：结果评估类型， profit_rate （总盈亏之和），max_profit_rate（最大盈利之和），默认为 profit_rate