ptrade量化新手需要注意的几个问题(API文档整理)

PTD 阅读:18 2025-06-26 13:35:24 评论:0

API文档整理


一、核心模块场景

策略开发涉及三种场景模块,各模块支持调用的函数不同:

  1. 交易模块:实时交易环境
  2. 回测模块:历史数据回测
  3. 研究模块:数据分析与研究
    ⚠️ 注意:函数调用权限因模块而异,需严格区分。

二、必选与可选函数

函数名 必选/可选 说明
initialize 必选 仅在回测/交易启动时运行一次
handle_data 必选 交易时段按周期运行的核心逻辑函数(日级/分钟级)
before_trading_start 可选 交易日开始前执行(回测8:30,交易默认9:10)
after_trading_end 可选 交易日结束后执行(默认15:30)
tick_data 可选 仅交易模块,每3秒执行一次(9:30-14:59)
on_order_response 可选 仅交易模块,委托状态实时回调(比get_order()更快)
on_trade_response 可选 仅交易模块,成交状态实时回调(比get_trades()更快)

三、关键函数详解

1. initialize(context)
  • 作用:策略初始化(仅启动时运行一次)
  • 适用模块:回测/交易
  • 可调用接口示例
    set_universe()       # 设置股票池(回测/交易)
    set_benchmark()      # 设置基准(回测/交易)
    set_commission()     # 设置佣金(仅回测)
    run_daily()          # 调度每日任务(回测/交易)
    get_trading_day()    # 获取交易日(全模块)
    
2. handle_data(context, data)
  • 作用:按周期处理交易逻辑(日级/分钟级)
  • 适用模块:回测/交易
  • 执行时间
    • 日级策略:回测15:00执行,交易按券商配置
    • 分钟级策略:回测9:31-15:00,交易9:30-14:59
  • 核心接口
    order()              # 下单(回测/交易)
    get_price()          # 获取价格(研究/回测/交易)
    cancel_order()       # 撤单(回测/交易)
    get_position()       # 获取持仓(回测/交易)
    
3. tick_data(context, data)
  • 作用:处理Tick级数据(需开通Level2行情)
  • 数据结构
    data = {
        "股票代码": {
            "order": DataFrame,    # 逐笔委托
            "tick": DataFrame,     # 当前Tick快照
            "transcation": DataFrame  # 逐笔成交
        }
    }
    
  • 关键字段
    • tick:含买卖档位、成交量、价格等
    • order/transcation:委托/成交方向(0=卖, 1=买)
  • 加速技巧
    调用set_parameters(tick_data_no_l2="1")可禁用L2字段提升速度。

四、委托/成交回调函数

1. on_order_response(context, order_list)
  • 回调参数
    order_list = [{
        "entrust_no": "委托编号",
        "status": "委托状态",       # 参考Order对象
        "entrust_type": "委托类别", # 0=委托, 2=撤单, 4=确认
        "entrust_prop": "委托属性"   # d=限价委托, T=即时成交剩余撤销
    }]
    
2. on_trade_response(context, trade_list)
  • 回调参数
    trade_list = [{
        "business_price": 成交价格,
        "entrust_bs": "方向",     # 1=买, 2=卖
        "business_id": "成交编号"
    }]
    
    ⚠️ 防循环调用:在回调函数中下单需额外判断避免无限迭代。

五、注意事项总结

  1. 模块隔离:回测/交易模块函数不可用于研究模块(如order())。
  2. 时间敏感
    • before_trading_start在交易中若早于9:10调用行情,需sleep等待。
    • tick_data执行超3秒会丢弃堵塞数据。
  3. 主推扩展
    • 调用set_parameters(receive_other_response="1")可接收非策略产生的主推。
    • set_parameters(receive_cancel_response="1")启用撤单回调关联原委托ID。
  4. 期货/期权专用
    函数如set_future_commission()get_opt_contracts()需匹配标的类型。

完整接口列表请参考原始文档表格,本文档已按模块和功能分类提炼核心内容。
https://qmt.hxquant.com/?id=44
202506261018346005857.png

本文由 海星量化研究所 作者提供,转载请保留链接和署名!网址:https://qmt.hxquant.com/?id=45

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源; 2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任; 3.作者投稿可能会经我们编辑修改或补充。

搜索
排行榜
关注我们

扫码开通QMT/ptrade