backtrader
文章平均质量分 89
码农甲V
业精于勤而荒于嬉,行成于思而毁于随。
展开
-
Python量化交易学习笔记(58)——backtrader多股回测的开始时间
在使用bt进行多股回测时,经常会出现回测开始的日期比预期日期要晚很多的情况,本文将结合案例,分析这一现象的原因。本文仅对实践中用到的日线回测进行分析,如要处理分时数据,可参考本文方法分析。本文将先通过3个案例展示多股回测的开始时间的变化情况,然后通过分析源代码说明产生这种变化情况的原因。案例在以下3个案例中,分别使用[600035]、[600035,300412]、[600035,300412,300919]3组股票作为股票池,回测开始时间选定为2018年1月8日,在策略的next函数中打印以下信息.原创 2021-08-28 11:31:27 · 6779 阅读 · 6 评论 -
Python量化交易学习笔记(57)——backtrader的一些基本概念5
本文继续记录bt相关的概念内容。启动和运行bt的启动和运行至少涉及3个Line对象:Data feedStrategy(实际上是Strategy的子类)Cerebro(西班牙语中的大脑)Data FeedData feed提供了用于回测的数据,bt支持下列几种data feed:读取CSV格式文件在线获取Yahoo数据获取Pandas Dataframe或者blaze数据Interacive Brokers、Visual Chart和Oanda的实时数据在data feed中原创 2021-08-12 10:20:57 · 3523 阅读 · 1 评论 -
Python量化交易学习笔记(56)——backtrader的一些基本概念4
本文继续记录bt相关的概念内容。Line迭代器backtrader中的Line迭代器和Python里的迭代器关系不大,只所以称之为迭代器,是由于Line迭代器在自身line迭代的同时,会告知其附属迭代器一起进行迭代。Line迭代器的关键函数是next,Line迭代器在每次迭代时都会调用next函数,同时Line迭代器中所包含的data数组会在迭代中,由系统将数组索引自动后移一位。需要注意的是,next函数只有在最小周期后才会被调用,后文将介绍最小周期的概念。与传统的迭代器相比,Line迭代器还实现原创 2021-08-11 12:22:04 · 3036 阅读 · 2 评论 -
Python量化交易学习笔记(55)——backtrader的一些基本概念3
本文继续记录bt相关的概念内容。切片由于在设计时,bt使用了前文所提到[0]和[-1]索引的模式,导致bt不支持对Lines对象进行切片的操作,也就是不可以通过以下方式访问Lines:myslice = self.my_sma[x:y] # 不支持此切片操作 获取切片不过bt也提供了自己获取切片的方式,下面展示几个例子。myslice = self.my_sma.get(ago=0, size=1) # ago和size均为默认值get的参数ago表示获取数据的起点,ago=0即为当前原创 2021-07-18 22:49:22 · 3863 阅读 · 1 评论 -
Python量化交易学习笔记(54)——backtrader的一些基本概念2
本文继续记录bt相关的概念内容。Lines顾名思义,Lines就是线,比如一段时期的收盘价是一条线,一段时期的成交量是一条线,一段时期的5日均线也是一条线,股票软件上的所有技术指标基本都可以处理为线。在bt中也是主要通过访问线(Lines)来进行各种计算。通过一个小例子来看一下Lines在bt中的使用:class MyStrategy(bt.Strategy): params = dict(period=20) def __init__(self): self.mova原创 2021-07-18 15:48:54 · 2988 阅读 · 1 评论 -
Python量化交易学习笔记(53)——backtrader的一些基本概念1
本文主要来自于官方文档的翻译,添加一些笔者在实践中的理解,来记录backtrader中的一些基本概念。Data Feedsbacktrader(以下简称bt)进行回测或者交易需要有历史或者实时的数据源,这些数据源包括典型的开盘价、最高价、最低价、收盘价、成交量等等,也可以是用户自定义的指标、买卖信号等。Data Feeds就扮演着这个数据源的角色,需要用户提供给bt。用户通过以下方式将Data Feeds添加到bt内:cerebro = bt.Cerebro() # 定义cerebro...d原创 2021-07-17 23:34:05 · 3969 阅读 · 2 评论 -
Python量化交易学习笔记(52)——再读backtrader文档
实盘了两个月,5月份盈利14.34%,6月份亏损2.82%,整体表现尚可。实盘的策略是基于前面选股规则准确率计算的文章,找出准确率高的规则进行选股,严格执行止盈止损条件。这其中存在一些问题,一是止盈条件可以根据准确率计算得到,但是止损条件不明确,缺少对参数的优化过程;二是没有进行回测,对策略的收益和回撤情况缺少整体把握。因此,还是决定回归到backtrader,踏实地写好回测程序,边实盘边回测边优化策略。目前回测出的策略结果中,从2018年至今的收益率, 最高为103.77%,年化为22.55%。在实原创 2021-07-04 22:53:47 · 3475 阅读 · 11 评论