
聚宽与QMT的平台定位差异
聚宽是一个云端量化交易平台,代码运行在聚宽服务器上,用户通过网页界面编写策略,平台提供统一的API接口获取股票、期货等行情数据,并支持回测和模拟交易。QMT(迅投极速交易系统)是本地化的量化交易终端,代码运行在用户本地计算机上,需要连接券商交易接口,直接管理账户和订单。两者在代码结构上的根本区别源于运行环境的不同。
策略初始化与生命周期函数
聚宽策略使用initialize函数进行全局初始化,handle_data函数处理每日或每分钟行情,before_trading_start在开盘前执行,after_trading_end在收盘后执行。聚宽框架自动处理时间调度,用户只需填充逻辑。
QMT策略使用init函数初始化,handlebar函数处理行情事件,after_init在初始化后执行。QMT的事件驱动模型更底层,用户需要手动管理订阅的股票池和周期。QMT没有自动的盘前盘后函数,需要自行通过定时器或条件判断实现。

股票交易中,聚宽的handle_data默认按分钟或日线频率触发,QMT的handlebar由订阅的K线周期决定。期货交易中,两者都支持主力合约和指数合约,但聚宽的期货代码更简洁,QMT需要显式指定合约乘数、保证金等参数。
数据获取与API调用
聚宽提供get_price、get_fundamentals、get_bars等函数,直接返回DataFrame或列表,数据字段标准化。期货数据通过get_future_contracts获取合约列表,get_dominant_contract获取主力合约。
QMT使用ContextInfo.get_market_data获取行情,参数包括股票代码、周期、字段等。期货数据需要指定dividend_type和subscribe。QMT的数据接口更接近底层,返回的是字典或numpy数组,用户需要自行转换为DataFrame。
代码示例(聚宽获取股票行情):
def initialize(context):
g.security = '000001.XSHE'
def handle_data(context, data):
price = data[g.security].close
order(g.security, 100)
代码示例(QMT获取股票行情):
def init(ContextInfo):
ContextInfo.set_universe(['000001.SZ'])
def handlebar(ContextInfo):
close = ContextInfo.get_market_data(['close'], ['000001.SZ'], period='1d')
passorder(23, 1101, 'account', '000001.SZ', 5, -1, 100, ContextInfo)
订单执行与交易接口
聚宽使用order、order_target、order_value等函数,自动处理订单类型、价格和数量。期货交易使用order并指定side和amount。聚宽模拟交易和实盘交易通过券商接口自动完成。
QMT使用passorder函数,参数包括操作类型、订单类型、账户、代码、价格类型、价格、数量等。期货交易需要指定prtype和modelprice。QMT的订单执行更灵活,但需要用户管理账户和风控。
股票交易中,聚宽的order默认使用市价单,QMT的passorder需要指定prtype(如5为市价)。期货交易中,聚宽自动处理保证金和强平,QMT需要用户计算保证金和设置止损。
回测与实盘迁移
聚宽策略回测和实盘代码几乎一致,只需切换运行模式。QMT策略回测需要配置回测参数,实盘需要连接券商并启动交易线程。QMT的回测和实盘代码差异较大,回测时使用ContextInfo模拟,实盘时使用真实ContextInfo。
股票期货策略迁移时,聚宽代码可以较快适应QMT,但需要重写数据获取和订单执行部分。QMT代码迁移到聚宽需要简化底层操作,利用聚宽的高级API。
代码组织与调试
聚宽代码在网页编辑器中编写,支持在线调试和日志输出。QMT代码在本地IDE中编写,支持Python调试器,但需要配置环境。聚宽的代码结构更统一,QMT的代码结构更灵活但容易出错。
股票交易中,聚宽的context对象包含账户和持仓信息,QMT的ContextInfo对象包含类似信息但方法名不同。期货交易中,聚宽的context提供保证金和合约信息,QMT需要从ContextInfo中提取。
聚宽代码结构适合快速开发和回测,API简洁,适合股票期货策略原型。QMT代码结构适合实盘交易和低延迟场景,需要更多底层配置。选择平台时,考虑交易频率、资金规模和开发效率。高频期货交易倾向QMT,中低频股票策略倾向聚宽。
理解两者代码结构异同,有助于量化交易者高效迁移策略,避免重复开发。