不想去讨论backtrader原生的一些东西,这个堆积木式的框架,写的足够好,能够根据自己需要,做很多扩展。
花了个把小时,学习了他的analyzers的相关文档,做了一个获取每个bar结束的时候,账户的总价值的analyzer,代码如下:
from __future__ import (absolute_import, division, print_function,
unicode_literals)
from collections import OrderedDict
from backtrader import Analyzer
class TotalValue(Analyzer):
'''This analyzer will get total value from every next.
Params:
Methods:
- get_analysis
Returns a dictionary with returns as values and the datetime points for
each return as keys
'''
params = ( )
def start(self):
super(TotalValue, self).start()
self.rets = OrderedDict()
def next(self):
# Calculate the return
super(TotalValue, self).next()
self.rets[self.datas[0].datetime.datetime()] = self.strategy.broker.getvalue()
def get_analysis(self):
return self.rets
使用的时候,和其他的使用方法一样,直接添加就行。
cerebro.addanalyzer(bt.analyzers.TotalValue, _name='_TotalValue')
另外,backtrader可以实现期货的回测,可以按照其文档和论坛分享的相关技巧实现。
在这个专栏里面,我将主要分享股票和外汇的回测和交易的相关内容。如果你也喜欢使用backtrder做策略,并且有意愿分享,欢迎投稿分享哦。
感兴趣可以关注我的专栏:
心灵成长-成就自我的圆满:专注于心灵成长,提高情绪管理能力、认知能力、思维能力等内在。
财务自由之路:通过掌握投资理财的理念、技巧、方法,让我们走向财务自由之路。my_quant_study_note:宽客计量经济学家程序员的学习历程和深度思考。
新浪微博:一些临时性的感悟,其他专栏的文章。
CSDN文章:程序代码、python等程序相关。
backtrader量化投资回测与交易:投资研究工具,量化投资相关。