KB / ARTICLE

核心API-交易指令

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

本文汇总期魔方期货策略中所有报单与撤单的 API,包括 4 个快捷报单、自定义 send_order 和撤单接口。每个接口都附带调用示例和返回码说明。

快捷报单

buy_open(volume, symbol, price=None) — 开多仓

参数:

参数 参数名称 参数类型 是否必填 描述
volume 手数 int 是
symbol 产品ID str 否 不填写时,自动选择当前任务运行加载的品种合约
price 报单价格 float 否 不填写时,自动根据方向选择涨跌停价(市价)

返回:

参数 参数名称 参数类型 描述
code 报单成功状态 int 请求成功返回值为 0,请求失败返回值为非0
data 报单数据 any 请求成功返回的对象是字典,请求失败返回值为空值
msg 报单提示信息 str 请求成功返回值为 'ok',请求失败返回请求失败的原因

接口案例

def on_tick(context):
    res = buy_open(1) # 开单 1 手多单
    req_id = res["data"]["result"]["data"]["req_id"] # 通过这个方式可以拿到每次报单的唯一id

数据示例

# 以下是请求成功返回的结果。若请求失败:code 的值为非零 且 msg 会标记请求失败的原因)
{'code': 0, 'data': {...}, 'msg': 'ok'}

sell_open(volume, symbol, price=None) — 开空仓

参数和返回值与 buy_open 一致。

接口案例

def on_tick(context):
    res = sell_open(1) # 开单 1 手空单
    req_id = res["data"]["result"]["data"]["req_id"] # 通过这个方式可以拿到每次报单的唯一id

数据示例

# 以下是请求成功返回的结果。若请求失败:code 的值为非零 且 msg 会标记请求失败的原因)
{'code': 0, 'data': {...}, 'msg': 'ok'}

buy_close(volume, symbol, price=None) — 平空仓

结束一个空头仓位,默认采用市价单发送,如果存在今昨仓的持仓,平仓时会先平今,会返回该订单唯一值。参数和返回值与 buy_open 一致。

接口案例

def on_tick(context):
    res = buy_close(1) # 平仓 1 手空单
    req_id = res["data"]["result"]["data"]["req_id"] # 通过这个方式可以拿到每次报单的唯一id

数据示例

# 以下是请求成功返回的结果。若请求失败:code 的值为非零 且 msg 会标记请求失败的原因)
{'code': 0, 'data': {...}, 'msg': 'ok'}

sell_close(volume, symbol, price=None) — 平多仓

结束一个多头仓位,默认采用市价单发送,如果存在今昨仓的持仓,平仓时会先平今,会返回该订单唯一值。参数和返回值与 buy_open 一致。

接口案例

def on_tick(context):
    res = sell_close(1) # 平仓 1 手多单
    req_id = res["data"]["result"]["data"]["req_id"] # 通过这个方式可以拿到每次报单的唯一id

数据示例

# 以下是请求成功返回的结果。若请求失败:code 的值为非零且 msg 会标记请求失败的原因)
{'code': 0, 'data': {...}, 'msg': 'ok'}

自定义报单 send_order

做多、做空、平仓等动作都可以通过该方法函数进行报单,用户自己封装订单,会返回该订单唯一值 ,使用 send_order:

输入参数

参数 参数名称 参数类型 是否必填 描述
order_info 字典对象,如方向、价格等 dict 是 包含字段详见如下对象ORDER_INFO_DATA
draw_signal 任务运行时是否同步画信号到图表 bool 否 默认 True

注意:

需要使用 send_order 跨产品且未为该产品进行有效订阅操作然后去报单时,需要填写 draw_signal 值为 False,否则会因为该产品在策略中获取不到价格而导致无法报单。

返回值

参数 参数名称 参数类型 描述
code 报单成功状态 int 请求成功返回值为 0,请求失败返回值为非0
data 报单数据 any 请求成功返回的对象是字典,请求失败返回值为空值
msg 报单提示信息 str 请求成功返回值为 'ok',请求失败返回请求失败的原因

ORDER_INFO_DATA 报单对象明细字段信息

参数 参数名称 参数类型 是否必填 描述
ExchangeID 交易所ID str 是
Symbol 产品ID str 是
Direction 方向 str 是 多:0,空:1
OrderPriceType 报单价格类型 str 是 '2' 限价单 指定明确价格成交(必须达到或优于该价格)'1' 市价单 以当时市场最优价成交)'3' FAK 立即按对手价成交,未成交部分自动撤单 '4' FOK 必须立即全部成交,否则整个订单自动撤单'G' 最新价 以最新价报单(部分系统支持)'H' 对手价 以对手方最优价报单(买用卖一价,卖用买一价)'J' 排队价 以己方最优价报单(买用买一价,卖用卖一价)'K' 超价 突破对手价报单(买:对手价+N跳;卖:对手价-N跳)'T' 止损价 触发止损条件后转为限价单 'P' 止盈价 触发止盈条件后转为限价单默认‘2’,即限价单报单
LimitPrice 报单价格 float 是
CombOffsetFlag 开平标志 str 是 0: 开仓 1: 平仓/平昨3: 平今
Volume 手数 int 是

接口案例

def on_tick(context):
    # 假设这是一个单子完整的信息
    dict_data = {
        "Direction":"0",
        "OrderPriceType":"2",
        "Comboffsetflag":"0",
        "Volume":"1",
        "Symbol":"ag2412",
        "ExchangeID":"SHFE",
        "LimitPrice":66666,
    }
    # 执行报单
    res = send_order(dict_data)
    req_id = res["data"]["req_id"] # 通过这个方式可以拿到每次报单的唯一id
    # 输出报单请求类型
    print(res)

数据示例

# 以下是请求成功返回的结果。若请求失败:code 的值为非零 且 msg 会标记请求失败的原因)
{'code': 0, 'data': {...}, 'msg': '请求成功'}

撤单 action_order

输入参数

参数 参数名称 参数类型 是否必填 描述
dict 字典对象 dict 是 包含字段详见如下对象ACTION_ORDER_INFO

返回值

参数 参数名称 参数类型 描述
code 报单成功状态 int 请求成功返回值为 0,请求失败返回值为非0
data 报单数据 any 请求成功返回值为空值,请求失败返回的对象是字典
msg 报单提示信息 str 请求成功返回值为 'ok',请求失败返回请求失败的原因

ACTION_ORDER_INFO 撤单对象明细字段信息

参数 参数名称 参数类型 是否必填 描述
ExchangeID 交易所ID str 否 可以为空
instrumentid 品种合约代码 str 是 完整合约代码,例如rb2501
OrderSysID 订单号 str 是 为共12位右置的字符串

接口案例

def on_tick(context):
    # 单子具体信息
    dict_data = {
          # 单子中 key 应包含 instrumentid 、ExchangeID 、OrderSysID ,否则会存在撤单失败的情况,同 send_order 方法函数的用法举例,订单号 OrderSysID 为共12位右置的字符串,该字符串存在于 on_order 接口返回的订单信息
          "OrderSysID": "        1863",
          "ExchangeID": "SHFE",
          "instrumentid": "rb2501",
         }
    # 执行撤单
    res = action_order(dict_data)
    print(res)

数据示例

# 以下是请求成功返回的结果。若请求失败:code 的值为非零 且 msg 会标记请求失败的原因)
{'code': 0, 'data': {...}, 'msg': 'ok'}

相关阅读

  • [核心API 账户持仓查询]
  • [核心API 合约信息查询]
  • [策略案例:网格策略]
已复制到剪贴板
策略文档 · 期货版修订 R1

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

评论