backtrader策略参数大规模优化--使用粒子群和其他智能算法

backtrader内置的策略参数优化方法是权利搜索方法,也就是遍历每个参数组合值。在参数很多,每个参数取值变化范围大的情况下,优化效率是很低的。

可以采用智能优化算法,比如粒子群优化等进行大规模参数优化。下面,我们用python开源算法库optunity来对backtrader策略参数进行优化。

我们的示例策略是一个简单的双均线策略,要优化两个参数,及两个均线移动窗口,目标是使得账户市值最大化。采用optunity中的粒子群算法来优化,代码如下:

# example of optimizing SMA crossover strategy parameters using 
# Particle Swarm Optimization in the opptunity python library
# https://github.com/claesenm/optunity

from datetime import datetime
import backtrader as bt

import optunity
import optunity.metrics


class SmaCross(bt.SignalStrategy):
    params = (
        ('sma1', 10), # 需要优化的参数1,短期均线窗口
        ('sma2', 30), # 需要优化的参数2,长期均线窗口
    )
    def __init__(self):
        SMA1 = bt.ind.SMA(period=int(self.params.sma1)) # 用int取整
        SMA2 = bt.ind.SMA(period=int(self.params.sma2)) # 用int取整
        crossover = bt.ind.CrossOver(SMA1, SMA2)
        sel
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扫地僧量化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值