本地回测引擎

发明者量化交易平台开源了JavaScript语言和Python语言的本地回测引擎,支持回测时设置底层K线周期。 - JavaScript语言回测引擎 - Python语言回测引擎

以Python语言为例,简要说明本地回测引擎的使用方法:

'''backtest
start: 2022-02-19 00:00:00
end: 2022-03-22 12:00:00
period: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT","balance":10000,"stocks":0}]
'''

# Part 1 -----------------------------------
# 初始化回测引擎,backtest 为回测引擎配置信息,与 FMZ 平台线上回测系统配置保持一致
# 通过 __doc__ 读取上方的配置字符串并初始化回测环境
from fmz import *
task = VCtx(__doc__) # initialize backtest engine from __doc__
# End    -----------------------------------


# Part 2 -----------------------------------
# 以下为待测试的策略代码示例(可以从 FMZ 平台复制完整的策略代码)
# 注意:仅复制策略代码时不包含参数设计、交互设计等其他配置内容
def onTick():
	ticker = _C(exchange.GetTicker)
	LogStatus(_D(), ticker.Last)

def main():
	exchange.SetCurrency("ETH_USDT")
	# exchange.SetContractType("swap")  # 如果测试期货交易所对象,需要设置合约,例如这里设置为永续合约
	Log(exchange.GetAccount())
	while True:
		onTick()
		Sleep(1000)
# End    -----------------------------------


# Part 3 -----------------------------------
# 执行回测并捕获结束信号,回测结束时会触发 EOF 异常
# 捕获异常后可以输出回测结果数据或展示回测图表
try:
	main()
except:
	print("Strategy testing completed.")
	print(task.Join(False)) # print backtest result
	# task.Show() # or show backtest chart
# End    -----------------------------------