记录最近用backtrader+pyfolio 做策略回测。
安装 backtrader 和 pyfolio :
pip install backtrader
pip install pyfolio
导入 backtrader 和 pyfolio :
import backtraderas bt
import pyfolio as pf
在代码中,先定义策略 class(以EMA cross策略为例)。
EMACross:EMA(Exponential Moving Average)是指数移动平均值,趋向类指标,指数移动平均值是以指数式递减加权的移动平均。 其构造原理是:对收盘价进行加权算术平均,用于判断价格未来走势的变动趋势。与MACD指标、DMA指标相比,EMA指标由于其计算公式中着重考虑了当天价格(当期)行情的权重,决定了其作为一类趋势分析指标,在使用中克服了MACD指标对于价格走势的滞后性缺陷,同时,也在一定程度上消除了DMA指标在某些时候对于价格走势所产生的信号提前性。当EMA快线上穿EMA慢线为买入信号,EMA快线下穿EMA慢线为卖出信号
class MyStrategy(bt.Strategy):
params = ()
def log(self, txt, dt=None):
''' Logging function fot this strategy'''
dt = dt or self.data.datetime[0]
if isinstance(dt, float):
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)