赠送新手宝子们 一个完整的 QMT回测模板,搞起来 !!
#encoding:gbk
def init(ContextInfo):
"""
初始化函数
在策略启动时被调用一次
"""
print("="*60)
print("【策略初始化】")
print("="*60)
# 1. 设置回测参数(仅在回测模式有效)
if ContextInfo.do_back_test:
# 设置回测资金
ContextInfo.capital = 1000000 # 100万
print(f"回测初始资金: {ContextInfo.capital}元")
# 设置回测时间范围
ContextInfo.start = "2020-01-01 00:00:00"
ContextInfo.end = "2023-12-31 23:59:59"
print(f"回测时间: {ContextInfo.start} 到 {ContextInfo.end}")
# 2. 打印策略基本信息
print(f"当前股票: {ContextInfo.stockcode}")
print(f"当前市场: {ContextInfo.market}")
print(f"当前周期: {ContextInfo.period}")
print(f"复权方式: {ContextInfo.dividend_type}")
# 3. 初始化全局变量
global strategy_status
strategy_status = {
"total_bars": 0,
"buy_count": 0,
"sell_count": 0
}
print("初始化完成!")
def handlebar(ContextInfo):
"""
处理K线函数
每根新K线生成时被调用
"""
# 1. 获取当前K线信息
bar_index = ContextInfo.barpos
total_bars = ContextInfo.time_tick_size
# 2. 跳过前100根K线(用于计算指标)
if bar_index < 100:
return
# 3. 打印进度信息
if bar_index % 100 == 0:
progress = (bar_index + 1) / total_bars * 100
print(f"进度: {progress:.2f}% ({bar_index + 1}/{total_bars})")
# 4. 执行交易逻辑
# 这里添加你的交易策略代码
# 5. 最后一根K线时的处理
if bar_index == total_bars - 1:
print("="*60)
print("【回测完成】")
print("="*60)
print(f"总K线数: {total_bars}")
print(f"买入次数: {strategy_status['buy_count']}")
print(f"卖出次数: {strategy_status['sell_count']}")量化学习/软件申请 滴滴滴滴我们~~更多模板一起搞起来。
著作权归文章作者所有。