对于程序来讲,该有的代码一行都不会少,但是把代码分块就可以很直观的阅读或修改代码。使用Indicator可以将策略的信号从策略类Strategy中脱离出来,方便策略进行协调与控制

文章目录

  • 策略信号
  • 示例代码

策略信号

官网中对于Indicator的解释是:https://www.backtrader.com/docu/induse/

比如下面就是一个Indicator类,和策略一样:

  • def __init__:初始化的一些函数,可生成一些交易信号
  • def next(self):与Strategy类中的next用法一致,每一个模拟的交易日,都会先执行Indicator类,然后才会执行这个交易日的策略类中的next()方法
class BuySignalIndicator(bt.Indicator):lines = ("",)def __init__(self):self.should_buy = Falsedef next(self):if self.datas[0].close[0] > self.datas[0].open[0]:self.should_buy = Trueelse:self.should_buy = False

注意:在Indicator类中是没有self.datetime方法的,因此在信号类中其实是无法直接读取当天的日期的

示例代码

import backtrader as btclass BuySignalIndicator(bt.Indicator):lines = ("",)def __init__(self):self.should_buy = Falsedef next(self):if self.datas[0].close[0] > self.datas[0].open[0]:self.should_buy = Trueelse:self.should_buy = Falseclass TestStrategy(bt.Strategy):  # 策略def __init__(self):self.close_price = self.datas[0].close  # 这里加一个数据引用,方便后续操作self.my_indicator = BuySignalIndicator()def next(self):if self.my_indicator.should_buy:self.buy(size=500, price=self.data.close[0])else:if self.position:self.sell(size=500, price=self.data.close[0])

这样,在执行策略时,执行顺序是:

  1. 在策略类Strategy中,执行初始化 def __init__()
  2. 在信号类Indicator中,执行初始化 def __init__()
  3. 在信号类Indicator中,执行next()函数
  4. 在策略类Strategy中,执行next()函数

Backtrader量化回测11——策略信号Indicator相关推荐

  1. 【手把手教你】用backtrader量化回测海龟交易策略

    01 引言 海龟交易策略是比较经典的趋势交易系统之一,涵盖了从入场交易(品种选择).仓位管理(基于ATR加减仓).离场(触发条件)的整个过程.机械套用海龟交易法则在A股上进行交易可能效果不佳,但其交易 ...

  2. backtrader量化回测,基础篇,附MACD交易回测代码

    backtrader由德国工程师开发,拥有股票的回测,检测交易策略,支持期货实时交易,对于股票交易还在完善,我尝试了pylagotrade,vn.py,发现backtrader功能强大,交易策略全面, ...

  3. 扫地僧Backtrader量化回测与交易闭环生态系列教程

    backtrader是著名的开源量化框架,作者叫Daniel Rodriguez,就是下图这位老兄. 这个作者是德国人,工作在德国慕尼黑,编程水平极高,比国内一些非专业程序员编写的回测平台代码质量高太 ...

  4. Backtrader量化回测1——基本的交易策略与挂单买卖

    Backtrader Github页面:https://github.com/mementum/backtrader 官网Quickstart 教程:https://www.backtrader.co ...

  5. 【量化回测必看!】Backtrader保姆级教学+免费行情源 SMA策略

    前言 想开始量化学习不知道如何入手?市面上的学习资料太多不知道该怎么看? 博主将从零基础讲解回测框架,一步步完成量化数据源的搭建,让你10天内成为量化高手 博主同时将视频课程内容在B站更新,可以关注& ...

  6. backtrader股票技术指标自定义与量化回测

    01 引言 股票市场自交易以来,人们就开始孜孜不倦地探索各种各样的投资理论,其中技术分析是重要的理论之一.实际上,技术分析是100多年前创建的股票投资理论,是投资者对股票量价变化长期观察归纳总结的若干 ...

  7. vnpy怎么创建策略并回测_【手把手教你】入门量化回测最强神器backtrader(一)

    1 引言 目前基于Python的量化回测框架有很多,开源框架有zipline.vnpy.pyalgotrader和backtrader等,而量化平台有Quantopian(国外).聚宽.万矿.优矿.米 ...

  8. 量化回测平台Backtrader实战-陆一潇-专题视频课程

    量化回测平台Backtrader实战-240人已学习 课程介绍         课程通过学习Backtrader这一功能丰富的开源回测平台来逐步实现多个量化cta策略的回测实现.Backtrader是 ...

  9. 手把手教你用Python搭建自己的量化回测框架【均值回归策略】

    1 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的,交易将无利可图.均值回归是金融学的一个重要概念,指股票价格无 ...

最新文章

  1. 对于STM32F103三轴机械臂控制器进行基本功能测试-关节角度读取
  2. zookeeper3.4集群搭建
  3. 《玩转.NET Micro Framework 移植-基于STM32F10x处理器》--微软中国.NET Micro Framework项目组工程师所作之序...
  4. 第三部分:Android 应用程序接口指南---第二节:UI---第八章 Toast通知
  5. 如何提高阅读源代码的效率 .
  6. 苹果紧急修复已遭 NSO Group 利用的 iMessage 0day以及另一个0day
  7. 用ldd查看C++程序的依赖库
  8. R语言使用RStudio将可视化结果保存为pdf文件(export--Save as PDF)
  9. Axure share 二三事
  10. Java人工弱智算法_人工智障也刷题!Kaggle 入门之实战泰坦尼克号
  11. wxWidgets(1) :mac下搭建wxWidgets 3.0 环境
  12. 使用crow创建一个c++的web服务
  13. 面试测试岗想拿13K,HR说你最多值10K,教你怼死HR?
  14. 个人信息保护法相关法律法规学习和梳理
  15. WireShark流量分析(中国菜刀,webshell)
  16. bert 环境搭建之PytorchTransformer 安装
  17. Kali linux修改源文件
  18. 签名MD5与文件MD5概念
  19. iOS RGB 颜色对照表
  20. 计算机专业私,美国私立寄宿高中计算机专业STEM排名TOP20

热门文章

  1. jQuery之过关小游戏
  2. 商品图片列表html,用html制作一个商品图片列表
  3. 用户和计算机硬盘系统,技术宅教你一个固态硬盘硬盘装几十个电脑操作系统
  4. GitLab 通过ldap完成帐号认证
  5. 做奥运志愿者其实很光荣的
  6. php修改网页中内容,php如何实现html内容替换
  7. RabbitMQ坑大全
  8. OpenCV+CUDA学习2---图像灰度化
  9. HTML行内元素、块状元素、行内块状元素介绍
  10. 从生产到理解分发,第三届“马栏山杯”算法大赛带你了解视频平台AI全流程...