backtrader专题

量化交易backtrader实践(四)_评价统计篇(5)_自定义评价

Analyzer应用Step-by-step 01_直接使用 直接使用是开始学习的时候会接触比较多,通过把cerebro.addStrategy()写出来,然后在.run()之后从result[0]中再取评价的数据,我们可以对这个运行的流程加深理解。 cerebro = bt.Cerebro()# ......cerebro.addstrategy(run_strategy) # 添加

量化交易backtrader实践(四)_评价统计篇(4)_多个回测的评价列表

本节目标 在第1节里,我们认识了backtrader内置评价指标,了解了每个指标的大概内容;在第2节里把内置评价指标中比较常用的指标进行了获取和输出;第3节里我们探索其他backtrader中没有的评价指标,并对pyfolio, empyrical和quantstat库进行了初步的认识,以及使用quantstat可以方便的进行评价指标的可视化实践。以上的动作,都是针对一支股票和一个特定的策略进行

Backtrader 实现和理解海龟交易法

Backtrader 实现和理解海龟交易法 1. 海龟交易的理解 (1)资金管理 海龟将总资金分为N个交易单位,每个单位即称为头寸,划分的标准主要是参考标的的波动性。 波动性用一个指标量化即真实波动幅度均值(ATR)。 真实波动幅度均值(ATR)是当前交易日前20交易日真实波动幅度的移动平均值。 真实波动幅度是取最高价与最低价、最高价与前一日收盘价、最低价与前一日收盘价的最大值。 结合交易时

backtrader笔记摘录

策略 在next()里接收当前行情,作出买卖判断,通过buy()和sell()函数下单。 信号 用来通知买和卖,有空头信号、多头信号、空多头信号之分。 指示器 Indicators are always instantiated during __init__ in the StrategyIndicator values (or values thereof derived) are

【答读者问58】用backtrader实现一个基于高开低收之外的自定义数据实现的基本交易策略

这个策略模板主要实现了下面三个功能: 除了高开低收等行情数据,额外扩展了两列自定义数据使用了一篮子订单 策略逻辑存在一些很大的问题,感兴趣的童鞋们可以研究找一找哈,在下一篇文章中会更新这个策略逻辑中存在的问题。 import sysimport numpy as npimport pandas as pdimport backtrader as btclass ExtendPanda

BackTrader 中文文档(二)

原文:www.backtrader.com/ 概念 平台概念 原文:www.backtrader.com/docu/concepts/ 这是平台某些概念的集合。它试图收集可在使用平台时有用的信息片段。 开始之前 所有小代码示例都假设以下导入可用: import backtrader as btimport backtrader.indicators as btindi

量化交易入门(三十五)回测框架backtrader-Strategy

在Backtrader中,Strategy类是定义交易策略的基类。我们需要继承这个类,并实现一些特定的方法来定义我们的交易逻辑。Strategy类的主要方法包括: __init__(self): 策略的初始化方法,用于定义策略的参数、指标等。next(self): 策略的核心方法,每个新的交易日都会被调用,用于根据指标和信号执行交易操作。notify_order(self, order): 订单

量化交易平台之二:Backtrader

一、前言         Backtrader是一个用Python编写的灵活的回测框架,用于开发和测试交易策略。它支持多种数据源和交易API,并提供丰富的分析功能,使得开发者可以在此框架上进行详尽的策略测试和优化。github地址:https://github.com/mementum/backtrader 二、使用       Backtrader的使用主要分为以下几个步骤: 安装Bac

Backtrader 量化回测实践(2)—— K线16主要形态定义(上)

Backtrader 量化回测实践(2)—— K线16主要形态定义(上) K线图形中的趋势线和价格走势能够反映市场的整体趋势,比如是否处于上涨或下跌趋势中。 用Backtrader做策略的时候,需要考虑K线形态,作为分析依据。K线的常用形态搜集整理如下: 1、光头光脚大阳线(极端强势); 2、光头光脚大阴线(极端弱势); 3、光头阳线(高价位强势线,先跌后涨型); 4、光头阴线(低价位弱势线

Backtrader 量化回测实践(1)—— 架构理解和MACD/KDJ混合指标

Backtrader 量化回测实践(1)—— 架构理解和MACD/KDJ混合指标 按Backtrader的架构组织,整理了一个代码,包括了Backtrader所有的功能点,原来总是使用SMA最简单的指标,现在稍微增加了复杂性,用MACD和KDJ两个指标综合作为操作指标,因此买入卖出操作就比较少,还有就是买入的时候,采用了限价单,整个的交易频率不高,所以图示交易点比较少,也符合多看少动的交易理念。

Backtrader 文档学习- Plotting

Backtrader 文档学习- Plotting 虽然回测是一个基于数学计算的自动化过程,还是希望实际通过可视化验证。无论是使用现有算法回测,还是观察数据驱动的指标(内置或自定义)。 凡事都要有人完成,绘制数据加载、指标、操作执行、现金和投资组合价值的演变,可以帮助人们更好地了解正在发生的事情,放弃/修改/创造的思考,查看图表的人对可视化信息做处理 。 这就是为什么backtrader使用

Backtrader 文档学习- Plotting -Plotting on the same axis

Backtrader 文档学习- Plotting -Plotting on the same axis 1.概述 在同一轴上绘图,绘图是在同一空间上绘制原始数据和稍微(随机)修改的数据,但不是在同一轴上。 核心代码,data数据正负50点。 # The filter which changes the close pricedef close_changer(data, *args,

Backtrader 文档学习- Observers - Reference

Backtrader 文档学习- Observers - Reference 1.Benchmark class backtrader.observers.Benchmark() 观察器存储策略的回报和参考资产的回报,参考资产是传递给系统的数据之一。 参数: timeframe (default: None) ,如果None,则将报告整个回溯测试期间的全部回报 compression (

Backtrader 文档学习- Observers - Benchmarking

Backtrader 文档学习- Observers - Benchmarking 1.概述 backtrader包括两种不同类型的对象,可以帮助跟踪: Observers 观察者Analyzers 分析器 在分析器领域中,已有TimeReturn对象,用于跟踪整个组合价值(即包括现金)的回报率的演变。 显然作为观察者,在添加一些基准测试的同时,还可做一些工作,将观察者和分析器组合在一起,

Backtrader 文档学习- Analyzers - Analyzers Reference(下)

Backtrader 文档学习- Analyzers - Analyzers Reference(下) 1.PeriodStats (1)定义 class backtrader.analyzers.PeriodStats() 时间段内基础统计信息 参数: timeframe (default: Years) ,见前compression (default: 1),见前fund (defau

Backtrader 文档学习- Broker - Trade

Backtrader 文档学习- Broker - Trade 1. 概述 交易的定义: 通过操作持仓从0变为大小为X时(可能为正/负,对于多头/空头头寸),则交易处于开放状态。当持仓从X变为0时,交易关闭。 以下两个操作:正向到负向负向到正向 实际上被视为:1.交易已平仓(头寸从X变为0)2.新交易已开仓(头寸从0变为Y) 交易仅提供信息,没有用户可调用的方法。 2. 参考 类

Backtrader 文档学习- Broker - Fillers

Backtrader 文档学习- Broker - Fillers 1. 概述 当使用交易量进行订单执行时,backtrader的模拟broker具有默认策略: 忽略交易量 (默认策略是broker忽略成交量) 基于两个前提条件:在流动性充裕的市场中进行交易,以完全可以交易 买入/卖出订单真实的交易量匹配真实的世界 快速示例是Fill 或 Kill 订单。即使到了tick分辨率并且有足够交

Backtrader 文档学习- Broker - Slippage

Backtrader 文档学习- Broker - Slippage 1.概述 回测无法保证真实的市场条件。无论市场模拟有多好,在真实市场条件下都可能发生滑点。这意味着: 请求的价格可能无法与真实市场的价格匹配 集成的回测broker支持滑点。以下参数可以传递给broker ,具体参数见前一章。 2.How it works 滑点是如何工作的 为了决定何时应用滑点,考虑订单执行类型:

Backtrader 文档学习-Order OCO orders

Backtrader 文档学习-Order OCO orders 主要是可以使用订单组的管理策略,使用订单组策略,则一组订单中,有一个符合条件的订单成交,订单组中其他的订单就自动被取消。 1.概述 V1.9.36.116 版本交互式代理支持StopTrail、StopTrailLimit和OCO。 OCO始终将组中的第一个order指定为参数OCO代理模拟和IB代理具有相同的行为。指定:p

Qlib+backtrader:2014.1.1-2023.9.20最新回测结果,可以实盘吗?

今年以来,在研究了qlib和backtrader的基础上,把二者结合起来进行了一个策略研究。简单说就是用qlib在200只股票的股票池中进行滚动训练与预测(walk forward),总体数据范围是2005到2023年,以20日间隔滚动训练和预测,最终得到2014.1.1-2023.9.20共10年测试期的收益率预测结果。将预测结果代入backtrader进行回测,得到如下回测结果。 1 回测结

Backtrader 文档学习-Indicators 开发

Backtrader 文档学习-Indicators 开发 1. Indicators 开发需要 Indicators 开发需要: 从Indicator(直接或从已存在的子类)继承派生的类定义中包括Lines指标必须至少有Line。既可以从现有的Line派生,也可以用已定义的Line选择性地定义可以改变行为的参数可选地提供/定制元素,能够合理地绘制indicators在__init__中完全

《BackTrader量化交易图解》第10章:Trade 交易操作

文章目录 10 Trade 交易操作10.1 量化回测分析流程10.2 Cerebro 类模块10.3 案例:Trade 交易10.4 实盘交易机器隐性规则10.5 Stake 交易数额和 Trade 交易执行价格 10 Trade 交易操作 10.1 量化回测分析流程 从本章开始讲解 BackTrader 的实盘操作。前面的章节讲过,一个完整的量化回测分析/交易流程可以分为

《BackTrader量化交易图解》第8章:plot 绘制金融图

文章目录 8. plot 绘制金融图8.1 金融分析曲线8.2 多曲线金融指标8.3 Observers 观测子模块8.4 plot 绘图函数的常用参数8.5 买卖点符号和色彩风格8.6 vol 成交参数8.7 多图拼接模式8.8 绘制 HA 平均 K 线图 8. plot 绘制金融图 8.1 金融分析曲线 BackTrader内置的plot绘图函数, 通过style参数变量

Backtrader 文档学习-Strategy(下)

Backtrader 文档学习-Strategy(下) 1. notify_cashvalue # 测试 #notify_cashvalue 方法特点class Test_Strategy(bt.Strategy): # 策略通用初始参数params = (('maperiod1', 5),('maperiod2', 20),('printlog', True), # 写入日志标志('l

pyfolio工具结合backtrader分析量化策略组合,附源码+问题分析

pyfolio可以分析backtrader的策略,并生成一系列好看的图表,但是由于pyfolio直接install的稳定版有缺陷,开发版也存在诸多问题,使用的依赖版本都偏低,试用了一下之后还是更推荐quantstats。 1、安装依赖 pip install pyfolio# 直接install是稳定版会报各式各样的错误,要用git拉开发版pip install git+https://g

Backtrader 文档学习-Data Feeds(下)

Backtrader 文档学习-Data Feeds(下) 1. Data Resampling 当数据仅在单个时间范围内可用,需要在不同的时间范围内进行分析时,就需要进行一些重采样。 “重采样”实际上应该称为“上采样”,因为它是从一个源时间区间到一个更大的时间区间(例如:几天到几周) 语法: cerebro.resampledata(data, timeframe=bt.TimeFram