QMT Python API

快速开始

云策略平台支持 qmt 内置 python 接口的写法和原生 python 两种开发方式:

内置 python 模式

  • 按平台规定的格式写:init 做初始化,handlebar 写核心逻辑
  • 好处:回测、交易都支持,一套代码跑通全流程
  • 适合:需要验证策略、做历史回测的开发者

原生 python 模式

  • 不套框架,完全按原生 Python 语法写,写法自由
  • 行情数据获取和交易下单控制灵活
  • 注意:这个模式回测需要自己搭建
  • 适合:Python 功底扎实,不想被框架束缚的资深玩家

快速开始

最小回测策略

原型

qmt://docs/python
Python
1# strategy.py
2def init(C):
3 C.set_commission(0.0003)
4 
5def handlebar(C):
6 data = C.get_market_data_ex(['close'], [C.stock_code], period='1d', count=20)
7 if C.stock_code not in data:
8 return
9 closes = data[C.stock_code]['close']
10 ma5 = closes.iloc[-5:].mean()
11 ma20 = closes.iloc[-20:].mean()
12 
13 if ma5 > ma20 and C.is_last_bar():
14 order_shares(C.stock_code, 100, C=C)
15 elif ma5 < ma20 and C.is_last_bar():
16 order_shares(C.stock_code, -100, C=C)

策略生命周期

用户脚本中定义以下函数,引擎按顺序调用:

函数调用时机必需
init(C)策略启动时调用一次
after_init(C)init 之后调用一次
handlebar(C)每根 K 线调用一次(回测逐 bar 驱动 / 实盘行情驱动)
on_backtest_finished(C)回测全部 bar 跑完后调用
stop(C)策略停止前调用(实盘退出时)

回调函数(交易主推)

函数说明
account_callback(C, account_info)账户状态变化
order_callback(C, order_info)委托回报
deal_callback(C, deal_info)成交回报
position_callback(C, position_info)持仓变化
orderError_callback(C, passorder_info, msg)报单错误

提示

交易主推回调函数仅在实盘模式下生效,详细的回调函数用法请参考回调函数

周期对照表

参数值说明
tick分笔
1m / 5m / 15m / 30m分钟线
1h / 2h / 4h小时线
1d日线
1w周线
1mon月线
1q / 1hy / 1y季/半年/年线

智能助手

咨询式 AI · 带入当前文档

智能助手加载中...