Py学习  »  Python

年化30%ETF轮动策略的notebook代码,基于backtrader通用模板,附python代码

七年实现财富自由 • 4 月前 • 444 次点击  
原创内容第962篇,专注量化投资,AGI和智能体落地、个人成长与财富自由。
咱们量化实验室,这几年来,沉淀了大量的代码。
这几天对于总体思路做了梳理,目前的目标如下,跟大家汇报一下:
实盘方案:backtrader + easytrader(+miniqmt)(股票) +tqsdk(期货)
多因子: vnpy的alphalab + lightGBM为主,可以扩展到深度模型,重点是因子挖掘流水线。
绝对收益:风险平价 + etf行业轮动。
backtrader为引擎,会结合bt的特点(事实上,我们在backtrader的通用模板里,引入了bt的ffn库,来做指标计算,结果分析和可视化)。
backtrader的下游接实盘方案,考虑到大家的门槛,使用easytrader,对于所有人都没有门槛,而easytrader也可以无缝对接到miniqmt——这里的实盘包含:股票、可转债和ETF。
期货相关的,我们选择tqsdk。不排除也可以对接ccxt。
上游的策略和因子:从规则策略出发,然后是多因子,包含因子挖掘流水线,CTA策略等,绝对收益策略开发,风险平价等。
在通用模板上开发backtrader的轮动策略,会非常容易和优雅。
import syssys.path.append('../../')from collections import defaultdict
from strategy_template import RotationStrategyTemplatefrom backtrader_inds import TrendScore
class TrendScoreRotation(RotationStrategyTemplate):    params = (        ('lookback',25),    )
    def __init__(self):        self.inds = defaultdict(dict)  # 存储各资产ROC指标        for data in self.datas:            self.inds[data]['sorter'] = TrendScore(data, period=self.params.lookback)
然后直接调用即可:
from engine import Enginesymbols = {'513100''纳指100',               # '513500':'标普500',               #'510300''沪深300',                '159915':'创业板',               '518880''黄金',               '510180':'上证180',               # '512890':'红利低波',               # '159985':'豆粕',               # '511880':'银华日利-货币ETF',               # '511260':'十年国债',               #'511220''城投债'               }e = Engine(symbols=symbols)from notebooks.rotation_strategy import TrendScoreRotatione.run(TrendScoreRotation)
然后一行代码查看结果:
再一行代码画图:
今天的notebook在这个位置:
代码已经提交,可以直接运行:
代码和数据下载:AI量化实验室——2025量化投资的星辰大海

AI量化实验室 星球,已经运行三年多,1700+会员。

aitrader代码,因子表达式引擎、遗传算法(Deap)因子挖掘引等,支持vnpy,qlib,backtrader和bt引擎,内置多个年化30%+的策略,每周五迭代一次,代码和数据在星球全部开源。

点击 “查看原文”,直接访问策略集合

扩展  •  历史文章   


年化收益548%,回撤才6%,夏普比5.72,这个策略一直很稳定,附python代码

年化30.24%,最大回撤19%,综合动量多因子评分策略再升级(python代码+数据)

创业板+纳指+黄金的轮动,13年70倍 | 年入千万超级个体,才是普通人创业的趋势。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/185237