优宽量化交易平台开源了JavaScript语言和Python语言的本地回测引擎,支持在回测时设置底层K线周期。
- JavaScript语言回测引擎
- Python语言回测引擎
以Python语言为例,简述本地回测引擎的使用方法:
'''backtest
start: 2024-10-17 09:00:00
end: 2025-10-16 15:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES","balance":30000000}]
'''
# Part 1 -----------------------------------
# 初始化回测引擎,backtest 为回测引擎配置信息,与优宽平台线上回测系统配置一致
# 通过 __doc__ 读取上方的配置字符串并初始化回测环境
from fmz import *
task = VCtx(__doc__) # initialize backtest engine from __doc__
# End -----------------------------------
# Part 2 -----------------------------------
# 以下为待测试的策略代码示例(可以从优宽平台复制完整的策略代码)
# 注意:仅复制策略代码时不包含参数设计、交互设计等其他配置内容
def onTick():
ticker = _C(exchange.GetTicker)
LogStatus(_D(), ticker.Last)
def main():
exchange.SetContractType("rb888")
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 -----------------------------------