python回测包_python量化回测有哪些比较好的离线框架?

FMZ量化平台把自用的Python回测引擎开源了,可以在本地离线回测,用过的都说好,也可以在FMZ平台上在线回测:https://github.com/fmzquant/backtest_python​github.com

调用十分简单:

'''backteststart: 2018-02-19 00:00:00end: 2018-03-22 12:00:00period: 15mexchanges: [{"eid":"OKEX","currency":"LTC_BTC","balance":3,"stocks":0}]'''

from fmz import *

task = VCtx(__doc__) # initialize backtest engine from __doc__

print(exchange.GetAccount())

print(exchange.GetTicker())

大部分策略在实盘之前都需要回测进行验证,FMZ支持部分品种数字货币现货、期货和永续合约,以及商品期货所有品种。但发明者量化平台的回测机制和常见的onbar回测有所区别,兼顾了速度和精度。本文将详细说明并解答一些常见的回测问题

传统onBar回测机制

onbar回测机制是基于K线的,即每一个K线产生一个回测时间点,在此时间点上可以获取到当前K线的高开低收价格、交易量等信息,以及此时间点之前的历史K线信息。

这种机制的弊端很明显:在一根K线上,只能产生一次买卖,通常依据的价格是K线的收盘价。并且一根K线只能获取到高开低收四个价格,至于在一根K线内价格如何变化的,是最高价先发生、还是最低价先发生等等信息都无从获取。以1小时K线为例,实盘时肯定每隔几秒获取一次行情信息,交易指令也会在盘中发出而不是等待K线结束。onbar回测机制的好处是易于理解,回测速度极快。

FMZ发明者量化平台onTick回测机制

FMZ回测模式分为两种模拟级回测和实盘级回测:模拟级回测

模拟级回测要选择回测所使用的K线周期和底层K线周期。比如策略使用小时线回测,底层K线选择5分钟,那么回测时间点的间隔将以5分钟K线生成的tick为基础。

每根K线只有开盘和收盘的tick是固定的,中间加上模拟的12个tick,这样一根K线将会形成14个回测时间点。如果回测一天,共有24×12×14 = 4032 时间点,而传统的onBar回测只有24个,精度大幅提高。在一个K线周期内也能完成开仓平仓操作。虽然中间生成的tick是模拟的,但影响不大。回测中,只要买单价大于卖一,卖单价小于买一,就会撮合成交。这种回测方式兼顾了回测速度和精度,推荐大家使用。实盘级回测

实盘级回测用到了真实的tick,包括逐笔成交历史订单、实际的深度变化。每个时间点的间隔最短只有1s,这种回测的精度到每一秒的变化,但由于数据量大,回测速度慢、回测时间也不能很长。实盘级回测可用于精确的验证策略。

你可能感兴趣的:(python回测包)