QMT内置了成熟的Python环境,用户通过编写脚本实现复杂的交易逻辑。掌握以下核心函数的使用方法,构建自动化交易系统。
首先是行情获取类函数。在QMT中,get_market_data 是最常用的函数之一。它支持获取全市场的实时行情和历史数据。投资者可以指定品种代码、数据周期(如1分钟、5分钟、日线)以及获取的数量。
例如,通过该函数获取当前标的的五档买卖盘数据,可以作为判断盘口压力的依据。此外,subscribe_quote 函数则用于实时订阅行情推送,确保策略能够第一时间响应股价波动。在QMT中,所有策略的起点通常是行情获取。使用subscribe_quote函数可以实时订阅指定证券的Tick数据或分钟线。白描其逻辑:投资者需传入证券代码和回调函数,当市场有最新成交时,系统会自动触发回调。此外,get_market_data_ex函数则用于获取历史数据,支持自定义起始时间和复权方式,是策略计算技术指标的基础。
其次是账户与持仓查询函数。一个完整的策略必须知道“自己还有多少钱”和“手里有多少券”。get_trade_detail_data 函数可以获取详细的账户资产信息,包括可用资金、总资产等。而查询持仓则通常使用对应的持仓查询接口,通过返回的列表,脚本可以判断当前是否已经达到仓位上限,从而避免超买或重复开仓。投资者可以查询当前的资金余额、持仓数量及待成交委托。白描其应用场景:在每天开盘前,策略应自动调用此函数进行“对账”,确认实盘仓位与逻辑仓位是否一致,从而决定后续的调仓动作。
交易执行函数是量化系统的核心。在QMT中,passorder 函数承载了下单的重任。该函数参数丰富,支持市价单、限价单,并且可以设置买入、卖出、开仓、平仓等多种动作。在2026年的专业版中,passorder 的响应速度已经达到了微秒级,配合极速柜台,能够有效减少交易滑点。下单执行是量化策略的核心环节。QMT提供了passorder函数,支持多种委托类型,如下单、撤单、改单等。参数设置非常精细,包括账户类型、证券代码、委托数量、委托价格以及策略ID。在2026年的极速交易环境下,合理设置下单频率限制(Rate Limiting)至关重要,以防止策略因异常触发而产生的频繁报撤。
最后是逻辑驱动机制。QMT支持“逐K线驱动”和“时间驱动”。在脚本中,handle_data 函数会在每一根K线生成时被调用,投资者在这里编写策略的判断逻辑。如果是高频或盘口策略,则更多依赖定时任务函数 run_time。
passorder:综合下单函数,支持股票、两融、期权、期货交易;
smart_algo_passorder:算法交易函数,就是把大单拆成小单,减少冲击成本;
get_trade_detail_data:获取资金、持仓、委托、成交的函数;
get_value_by_id:通过委托的id获取委托的信息函数;
get_last_order_id:获取最新的委托和成交的id;
can_cancel_order:根据订单id判断订单是否可以撤单;
cancel:根据订单号将委托撤销;
cancel_task:撤销任务;
pause_task:暂停任务;
resume_task:继续任务;
do_order:因为qmt是逐bar运行,并且是最后一个tick判断是否下单,如果下单的话就是下一个bar的第一个tick下单,对于日线策略,这样往往不能下单,因此可以调用这个函数,这个函数的作用是实时触发前一根bar的信号,然后只触发一次。
order_lots:指定手数交易,就是买卖多少手;
order_value:指定价值交易,比如买入10万元股票;
order_percent:一定比例下单,比如0.1,那就是总资产的10%买入股票,负数是卖出;
order_target_value:目标价值下单,适合调仓,比如把股票买到20万元持仓,如果当前持仓小于20万元,则买入,如果当前持仓大于20万元,则卖出;
order_target_percent:目标比例下单,具体使用方法同上,比如把股票买到总资产的10%,如果当前持仓小于10%的总资产,则买入,如果当前持仓大于10%的总资产,则卖出;
order_share:指定股数交易,比如买入100股股票。
buy_open:买入开仓;
sell_close_tdayfirst:卖出平仓,平今优先;
sell_close_ydayfirst:卖出平仓,平昨优先;
sell_open:卖出开仓;
buy_close_tdayfirst:买入平仓,平今优先;
buy_close_ydayfirst:买入平仓,平昨优先。
pip install tushare --target=D:\gszq_qmt\bin.x64\Lib\site-packages
pip install pymysql --target=D:\gszq_qmt\bin.x64\Lib\site-packages
pip install sqlalchemy --target=D:\gszq_qmt\bin.x64\Lib\site-packages
pip install tushare --target=D:\htzq_qmt\bin.x64\Lib\site-packages
qmt迅投用到的python版本是:3.6.8,qmt要备份dlls和lib两个文件夹。
因此需要在本地计算机上安装python ==3.6.8
用参照以下示例的代码:
pip install sqlalchemy --target=D:\htzq_qmt\bin.x64\Lib\site-packages
pip install sqlalchemy --target=D:\gszq_qmt\bin.x64\Lib\site-packages
可以在证券公司的qmt软件下安装第三方库。