KB / ARTICLE

日志查询与调试

策略文档 · 期货版修订 R1发布于 2026-10-10

期魔方平台不支持断点调试,所有调试和结果查看都通过 put_log 日志输出完成。本文介绍调试方法和三类日志文件的查询方式。

策略调试方法

期魔方平台不支持断点调试,仅能通过 put_log 输出中间结果进行调试。当查看指标结果或其他输出结果也只能通过日志打印输出。

# 在策略代码中任意位置输出日志
put_log(f"当前持仓: {get_position()}", level="USER_LOG")
put_log(f"快线MA: {fast_ma}, 慢线MA: {slow_ma}", level="USER_LOG")
put_log(f"错误信息: {err}", level="ERROR")

level 支持 INFO(信息日志)、 USER_LOG(用户日志)和 ERROR(错误日志),可在策略日志面板中筛选查看。


日志查询

日志路径:

C:\Users\windows登录用户账号\AppData\Local\qmfquant\logs\ctp_server

该目录下有 3 类日志文件:

一、账号+期货公司名称.log

该日志记录了该账号在期魔方平台的订单记录。包括账号、时间、期货品种、开平仓方向、价格、手数、订单状态,以及订单 id。其中手动开平仓的订单,订单 id 为空。

示例

账号xxxxxx(11:15:00): 已报 zn2512 空 开仓 21125.0 1手 OrderStatus:0 unique_id:183531324453563727162120768004318848126_1
账号xxxxxx(11:21:36): 已报 zn2512 多 平仓 24310.0 1手 OrderStatus:0 unique_id:
账号xxxxxx(11:23:04): 已报 zn2512 空 开仓 21125.0 1手 OrderStatus:0 unique_id:183531324453563727162120768004318848126_1
账号xxxxxx(13:38:57): 已报 zn2512 多 平仓 24310.0 1手 OrderStatus:0 unique_id:
账号xxxxxx(21:30:15): 已撤单 T2512 空 开仓 789.16 1手,撤单原因:26:已撤单报单被拒绝CFFEX:当前状态禁止此项操作 OrderStatus:5 unique_id:
账号xxxxxx(22:05:02): 已撤单 au2512 空 开仓 919.04 4手,撤单原因:已撤单 OrderStatus:5 unique_id:
字段 含义
账号 交易账号
时间 报单时间
品种 合约代码(如 zn2512)
方向 多 / 空
开平 开仓 / 平仓
价格 委托价格
手数 委托手数
OrderStatus 订单状态:0=已报,5=已撤单
unique_id 订单唯一 ID,手动开平仓为空

二、onorder_log_账号.log

该日志记录委托单状态变化,包括合约 ID、订单状态、开仓方向、开平状态,以及订单号。

示例

InstrumentID:FG601 OrderStatus:0 Direction:0 CombOffsetFlag:0 LimitPrice:1322.0 InsertTime:18:12:40 OrderRef:2 OrderSysID:        3601
字段 含义
InstrumentID 合约代码(如 FG601)
OrderStatus 订单状态:0=已报
Direction 方向:0=买,1=卖
CombOffsetFlag 开平标志
LimitPrice 委托价格
InsertTime 报单时间
OrderRef 本地订单编号
OrderSysID 交易所订单编号

三、ontrade_账号.log

该日志记录成交单情况。

示例

账号xxxxxx(10:30:01): 成交 pb2511 空 开仓 17085.0 1手 trade_datetime:20250924 10:30:01 OrderSysID:      153777 unique_id:14411773030940154695238362999871833642_1
账号xxxxxx(10:41:59): 成交 MA601 空 平仓 2356.0 1手 trade_datetime:20250924 10:41:59 OrderSysID:      162189 unique_id:
字段 含义
账号 交易账号
时间 成交时间
品种 合约代码
方向 多 / 空
开平 开仓 / 平仓
价格 成交价格
手数 成交手数
trade_datetime 成交日期时间
OrderSysID 交易所订单编号
unique_id 订单唯一 ID,手动开平仓为空

关键要点

  1. put_log 是唯一调试手段:平台不支持断点调试,所有中间变量、指标结果、运行状态都需通过 put_log 打印查看
  2. 三类日志互补:账号日志记录报单全貌,onorder 记录委托状态流转,ontrade 记录最终成交——排查问题时需交叉对照
  3. unique_id 区分来源:有 unique_id 的订单来自策略自动下单,unique_id 为空的订单来自手动开平仓
  4. 日志路径:位于 AppData\Local\qmfquant\logs\ctp_server,按账号和期货公司分文件
  5. OrderStatus 常见值:0=已报(正常),5=已撤单;撤单原因会附带在日志行末尾

相关阅读

  • [核心API 辅助功能]
  • [案例:网格策略]
  • [风控模型 - 固定止盈止损]
  • [风控模型 - 移动止盈止损]
已复制到剪贴板
策略文档 · 期货版修订 R1

返回策略文档 · 期货版板块

评论