【量化回测必看!】Backtrader保姆级教学+免费行情源 框架介绍

这篇博客从零基础的角度介绍了量化回测框架Backtrader,通过四步(创建大脑、添加数据集、添加策略、打印回测数据)详细讲解如何进行回测。博主分享了backtrader的核心组件和数据执行逻辑,并提供免费的CSV行情源。文章适合量化学习新手,配合视频教程可加速学习进程。
摘要由CSDN通过智能技术生成

前言

想开始量化学习不知道如何入手?市面上的学习资料太多不知道该怎么看?
博主将从零基础讲解回测框架,一步步完成量化数据源的搭建,让你10天内成为量化高手
博主同时将视频课程内容在B站更新,可以关注“量化NPC”获取最新的视频课程
本篇文章可配合观看效果更佳:
backtrader量化回测保姆级教学【1.初识backtrader】–附免费tick级别行情源
backtrader量化回测保姆级教学【2.backtrader框架介绍】–附免费tick级别行情源
所使用的csv文件,在文章结尾附录部分。

backtrader框架

主要分为6块,Backtrader当中最核心的是中间这个cerebro就是大脑,然后把策略strategies和数据datafeeds放到cerebro大脑当中,他就会按照我们的策略去回测,回测之后就可以对我们的结果进行分析,可以交给分析器analyzer。如果希望对结果做一些本地化做一个保存的话,就可以用writer,那么整个策略执行过程当中肯定有一些东西它并不包含于结果,比如说我们策略的净值,是整个区间都应该被监控下来的,像这种指标的话,我们会有observer这样的一个观测者来进行一个监控。
在这里插入图片描述

四步回测

第一步:创建大脑
cerebro = bt.Cerebro()
第二步:添加数据集
cerebro.adddata(data, name="daily_kline")

需要注意的是backtrader默认的,datafeed一共必须参数有9个包含

必填参数 描述
datetime 时间
fromdate 回测起始时间
todate 回测结束时间
open 开盘价
high 最高价
low 收盘价
close 收盘价
volume 成交量
openinterest 未结利息,如果是股票交易,这里可以为-1.

添加数据源可以使用两种方法

  1. 是传入已有的数据集,比如xxx.csv文件,本文使用的csv文件已经上传,点击此处下载
df = pd.read_csv("daily-kline.csv")
df["time"] = pd.to_datetime(df["time"])
data = bt.feeds.PandasData(
        dataname=df,
        fromdate=datetime(2021, 5, 10),
        todate=datetime(2022, 5, 10),
        datetime='time',
       	open='open',
        high='high',
       	low='low',
       	close='close',
        volume='volume',
        openinterest=-1
    )
  1. 使用接口返回的数据,比如INSIGHT提供的数据接口
    这里可以注意到有部分的参数没有写进去,比如open,close之类,是因为INSIGHT的返回值中已经包含对应字段,且已经为dataframe格式,所以可以无需申明。
    如果对INSIGHT感兴趣的用户可以访问:INSIGHT数字文档
    如果想看各类数据源对比的可以看:量化免费行情源最强对比分析
df = get_kline(htsc_code=["601688.SH"], time=[datetime(2021, 5, 10), datetime(2022, 5, 10)],
                   frequency="daily", fq="none")
#这里可以将INSIGHT接口的数据保存为csv
#csv = df.to_csv("daily-kline.csv") 
data = bt.feeds.PandasData(
        dataname=df,
        fromdate=datetime(2021, 5, 10),
        todate=datetime(2022, 5, 10),
        datetime='time',
        openinterest=-1
    )

当然因为要调用INSIGHT行情源需要引入对应的包以及登录操作

from com.insight import common
from com.insight.query import 
  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Backtrader是一个用于开发和交易策略的Python框架。它提供了强大的工具来处理金融数据、执行交易、计算指标和评估交易策略的性能。 以下是一个简单的Backtrader教程: 1. 安装Backtrader 在安装Backtrader之前,你需要确保已经安装了Python。然后,使用以下命令安装Backtrader: ``` pip install backtrader ``` 2. 创建数据Backtrader中,数据被组织为数据。最常见的数据是CSV文件,但Backtrader还支持其他类型的数据,如数据库、网络数据等。 以下是一个从CSV文件读取数据的示例: ```python from datetime import datetime import backtrader as bt class MyStrategy(bt.Strategy): def __init__(self): self.dataclose = self.datas[0].close def next(self): self.log('Close, %.2f' % self.dataclose[0]) if __name__ == '__main__': cerebro = bt.Cerebro() data = bt.feeds.YahooFinanceCSVData(dataname='AAPL.csv', fromdate=datetime(2010, 1, 1), todate=datetime(2020, 1, 1)) cerebro.adddata(data) cerebro.addstrategy(MyStrategy) cerebro.run() ``` 在上面的代码中,我们定义了一个名为MyStrategy的策略,它每次迭代时打印出收盘价。然后,我们创建一个Cerebro实例,将AAPL.csv数据添加到Cerebro中,并将MyStrategy策略添加到Cerebro中。最后,我们运行Cerebro实例。 3. 交易策略 有了数据和交易策略,我们可以使用Backtrader我们的交易策略。是指在历史数据上运行交易策略,以评估其性能和可行性。 以下是一个简单的示例: ```python if __name__ == '__main__': cerebro = bt.Cerebro() data = bt.feeds.YahooFinanceCSVData(dataname='AAPL.csv', fromdate=datetime(2010, 1, 1), todate=datetime(2020, 1, 1)) cerebro.adddata(data) cerebro.addstrategy(MyStrategy) cerebro.run() print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue()) ``` 在上面的代码中,我们运行Cerebro实例,并打印出最终的投资组合价值。 这只是Backtrader的入门教程,Backtrader还有很多其他功能,如执行市场订单、计算技术指标、优化策略等。如果你想深入了解Backtrader,请查看官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

量化NPC

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

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

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

打赏作者

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

抵扣说明:

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

余额充值