批量报价规范

  • 更新

Deribit 提供了 批量报价功能 允许用户下多个订单(称为 报价) 在单个请求中。与传统的订单输入不同,批量报价不需要订单编号即可进行后续修改或取消。这绕过了平台的大部分标准风险检查,从而显著减少了延迟

为了在跳过风险检查的同时维护平台安全, 批量报价保护 (MMP) 群组 被介绍了。每个批量报价都必须关联到 MMP 组,该组根据用户定义的预留初始保证金 (IM) 数量限制。为确保预留的 IM 足够,请执行以下操作:

  • 每人只有一个报价 侧面乐器 允许在群组内使用。

  • 每个报价的大小必须低于该组的定义限制。

用户最多可以配置 每个(子)账户 16 个 MMP 群组。这些群组的功能类似于 Deribit 现有的 MMP 系统 但提供更大的灵活性:

  • 它们允许在同一工具的同一侧进行多个报价(只要每种报价属于不同的组即可)。

  • 它们支持风险状况不同的工具的不同保证金设置。

报价与常规订单分开进行费率限制,并已完全集成到 Deribit 现有的事件系统中。

注意

赋能市场 制造商保护 (MMP) 不会自动启用 那个 批量报价 功能。这些是独立的系统,必须单独申请和激活。如果您需要批量报价功能,请联系 Deribit 支持部门明确申请访问权限

批量报价行为和要求

报价行为
  • 引号的行为就像 使用取消前有效 TIF 的限价订单 并且不能隐藏或自定义定价。

  • 买入和卖出双方均经过确定性处理 为避免客户端的点差交叉:

    • 如果两者都向上移动 → 先修改卖出价。

    • 如果两者都向下移动,则首先修改出价。

  • 交叉报价被拒绝或取消 自动。

  • 每一面都经过独立验证 — 一方可能成功,而另一方可能失败。

  • 无金额的修正案 安全处理;如果不存在报价,则返回错误。

  • 错误的修正取消了受影响的静息报价 在那边。

  • 优先级被保留 当减小大小或仅更改大小时 quote_set_id

  • 报价与之互动 仅限减价的订单 与普通订单相同。

  • 仅限帖子的逻辑 同样适用——报价可以根据仅限发布的规则拒绝或修改。

仪器可用性

以下工具类型支持批量报价:

  • 永续合约

  • 过期期货

  • 选项

  • 选项组合

  • 未来利差

他们是 不可用 用于:

  • 选项已开启 标准利润 (SM) 账户——因为SM的多头期权没有保证金

  • 现货工具 — 因为现货产品在 Deribit 上没有保证金

子账户

所有批量报价功能均在 子账户级别:

  • MMP 群组的保证金来自特定的子账户。

  • 每个子账户分别管理报价和 MMP 组限额。

  • 这种设计允许在同一用户的子账户之间隔离风险和报价行为。

速率限制

批量报价有专门的 速率限制 系统:

  • A 保证基本速率上限 无论每次批量报价的大小如何,始终可用。

  • A 更高的最大速率限制 是可访问的 仅当每条消息的引号数保持在设定的阈值以下时

这种方法鼓励对液体仪器进行高效批处理,同时仍支持较小的特定仪器批次用于:

  • 过期期货

  • 未来利差

  • 深度 ITM 选项

mass_quotes_diagram.png

批量报价 取消 也有单独的速率限制。

用户界面

  • 引号显示在用户界面中,并带有额外的标签 “Quote”。

  • 可以使用 “全部取消” 按钮取消所有报价。

会话要求

要使用批量报价方法,请执行以下操作:

  • 你的会话 必须有 已启用 “断开连接时取消”

    没有它,像 mass_quote 或 cancel_quote 这样的方法将返回错误。

  • 但是, 不鼓励经常使用 “断开连接时取消” 来删除报价。它旨在作为一种保障措施,而不是报价管理策略。

提示

始终使用主动管理报价状态 取消报价 或者 reset_mmp

订单簿中的优先级

批量报价遵循标准 Deribit 限价订单簿 (LOB) 优先权规则,但有以下细微差别:

  • 如果报价是 在未更改价格、金额的情况下修改,或 quote_set_id,它 失去优先权。这样可以防止通过反复重新提交相同的报价而出现滥用行为

  • 你可以 仅更改 quote_set_id 在不影响优先权的情况下

  • 报价(买入/卖出)的每一面都有独立的优先权。修改一侧即可 不影响 另一个的优先级。

警告

如果出现滥用行为,对群众报价的访问将受到限制,包括:

  • 发送相同的报价。

  • 取消垃圾邮件。

  • 尝试在 MMP 上方加上引号 quantity_limit

  • 超过速率限制。

  • 经常触发 MMP。

MMP 群组的行为

MMP 团体允许做市商为批量报价定义自定义保护规则,例如数量、delta 和 vega 限制。客户通过创建或更新这些群组 /private/set_mmp_config API 调用。群组名称是 用户定义 (没有固定格式),但必须是 内在独一无二 账户。群组由此名称标识,并与配置中的特定指数(交易对)相关联。

提示

mmp_group.png

也可以使用以下方式访问 MMP 群组 账户设置页面

群组限制和使用量

  • 命名: 您可以为群组名称选择任何字符串,只要它在您的(子)账户中是唯一的。组名是用户定义的,没有特定的命名规范。最大长度为 64 个字符。名称区分大小写,不能为空字符串。

  • 参数: 每个组的阈值(quantity_limitdelta_limitvega_limit等)必须设置为非负值(零或更高)。

  • 即时通讯预订:无论未平仓订单或头寸如何,每个 MMP 组都会持续保留初始保证金 (IM)。

  • 小组作业: 每个批量报价请求必须包含 mmp_group 名字。请求中的所有报价都将链接到该组。

  • 群组人数: 您最多可以配置 16 个 MMP 群组 每个(子)账户。尝试创建第 17 个群组将导致错误。

  • 仪器成员资格: 同一乐器(索引)可以同时分配给多个组。换句话说,一个产品可以加入多个具有不同限制的 MMP 组(适用于分层报价策略

  • 优先级: 所有 MMP 组都在同一个级别上运行;组之间没有层次结构或优先级。

  • 寿命: MMP 组在明确删除之前一直有效。要删除组,请将其间隔参数设置为 0 set_mmp_config这将释放所有预留保证金并移除该群组。否则,该集团(及其在大众报价背景下的预留初始保证金)将无限期存在

  • 三角洲约束: 系统规则强制执行 delta_limit < quantity_limit 保持适当的利润覆盖率。

  • 数量限制: 500 比特币 或者 5000 以太币

管理和重命名群组

  • 修改群组: 使用 set_mmp_config 编辑现有群组设置(或创建新群组)的方法。如果不包括某些参数,则这些参数不会保留为旧值。它们被设置为未定义,因此实际上是禁用

  • 重命名群组: 没有单独的 “重命名” 操作。如果你打电话 set_mmp_config 与众不同 mmp_group 名称,改为创建一个新组。旧群组会一直存在直到被删除 (设置 interval=0 移除群组)。

MMP 群组中的报价

  • 每人只有一个报价 侧面乐器MMP 群组 是允许的。

  • 提交新报价将替换同一组中的任何现有报价。

  • 为了支持 n 订单簿中的图层, n 需要单独的 MMP 组。

  • 每份报价的金额必须严格遵守 小于 该小组的 quantity_limit

  • 所有批量引号都被隐含地视为 mmp=true

  • 报价超过该群组的报价 quantity_limit 将是 已取消 如果在设定限额后降低了限额。

批量报价流程

步骤 1:发送批量报价

您最多可以提交 总计 100 个报价 (最多 100 个出价 + 100 个询价) 私人/群众名言 请求。

要求:
  • 所有报价 必须使用相同的指数(货币对)

  • 报价必须属于 现有的 MMP 群组

  • 每个报价可以包含一个可选报价 quote_id (客户定义的用于跟踪的字符串)。

  • 报价是 按顺序处理,所以从最重要到最不重要的优先顺序。

  • 不鼓励重新提交相同的内容 以避免不必要的负载和失去优先级。

小心

如果这些条件中的任何一个失败, 整个请求将被拒绝

提示

报价可以与共享分组 quote_set_id 管理优先行为。

请求示例:

{
  "jsonrpc": "2.0",
  "id": 7859,
  "method": "private/mass_quote",
  "params": {
    "detailed": true,
    "quote_id": "1",
    "mmp_group": "default",
    "quotes": [
      {
        "instrument_name": "BTC-PERPETUAL",
        "quote_set_id": "futures",
        "ask": {
          "price": 43800,
          "amount": 10
        },
        "bid": {
          "price": 43700,
          "amount": 10
        }
      },
      {
        "instrument_name": "BTC-22DEC23-41600-C",
        "quote_set_id": "options",
        "ask": {
          "price": 0.05,
          "amount": 1
        },
        "bid": {
          "price": 0.04,
          "amount": 1
        }
      }
    ]
  }
}

示例响应:

{
  "jsonrpc": "2.0",
  "id": 7859,
  "result": {
    "errors": [
      {
        "instrument_name": "BTC-PERPETUAL",
        "side": "bid",
        "error": {
          "message": "price_too_high 43666.4288",
          "code": 10007
        }
      }
    ],
    "orders": [
      {
        "is_liquidation": false,
        "reduce_only": false,
        "risk_reducing": false,
        "last_update_timestamp": 1703162550180,
        "creation_timestamp": 1703162478689,
        "filled_amount": 0,
        "average_price": 0,
        "order_type": "limit",
        "order_state": "open",
        "quote": true,
        "quote_set_id": "options",
        "quote_id": "1",
        "post_only": false,
        "replaced": false,
        "mmp_group": "default",
        "web": false,
        "mmp": true,
        "api": false,
        "instrument_name": "BTC-22DEC23-41600-C",
        "order_id": "6653852",
        "max_show": 1,
        "time_in_force": "good_til_cancelled",
        "price": 0.04,
        "direction": "buy",
        "amount": 1,
        "label": ""
      },
      {
        "is_liquidation": false,
        "reduce_only": false,
        "risk_reducing": false,
        "last_update_timestamp": 1703162550180,
        "creation_timestamp": 1703162478689,
        "filled_amount": 0,
        "average_price": 0,
        "order_type": "limit",
        "order_state": "open",
        "quote": true,
        "quote_set_id": "options",
        "quote_id": "1",
        "post_only": false,
        "replaced": false,
        "mmp_group": "default",
        "web": false,
        "mmp": true,
        "api": false,
        "instrument_name": "BTC-22DEC23-41600-C",
        "order_id": "6653853",
        "max_show": 1,
        "time_in_force": "good_til_cancelled",
        "price": 0.05,
        "direction": "sell",
        "amount": 1,
        "label": ""
      },
      {
        "is_liquidation": false,
        "reduce_only": false,
        "risk_reducing": false,
        "last_update_timestamp": 1703162550180,
        "creation_timestamp": 1703162478689,
        "filled_amount": 0,
        "average_price": 0,
        "order_type": "limit",
        "order_state": "open",
        "quote": true,
        "quote_set_id": "futures",
        "quote_id": "1",
        "post_only": false,
        "replaced": false,
        "mmp_group": "default",
        "web": false,
        "mmp": true,
        "api": false,
        "instrument_name": "BTC-PERPETUAL",
        "order_id": "6653855",
        "max_show": 10,
        "time_in_force": "good_til_cancelled",
        "price": 43800,
        "direction": "sell",
        "amount": 10,
        "label": ""
      }
    ],
    "trades": []
  }
}

注意

根据批量报价请求中的详细标志,系统将:

  • 返回一个简单的成功/错误数

  • 或者列出映射到的每个错误 instrument_nameside

▶ 第 2 步:监控报价状态

要检索当前有效的报价,请使用 私密/获取未结订单

  • 所有报价都标有”quote“: true

  • 可按乐器、种类或报价标志进行标准筛选

▶ 第 3 步:取消报价

方法 私密/取消报价 允许取消报价 批量,按以下条件筛选:

  • 货币对

  • 乐器种类

  • 特定仪器

  • quote_set_id

  • 三角洲山脉 (仅适用于期权/组合,不适用于期货或点差)

重要

设定 amount = 0 在新的批量报价中,也被视为该报价的取消。

小心

发布批量取消订单后,新提交的报价可能是 已拒绝 1 秒钟 防止立即重新发送报价垃圾邮件。

取消请求示例:

{
  "jsonrpc": "2.0",
  "id": 5663,
  "method": "private/cancel_quotes",
  "params": {
    "cancel_type": "delta",
    "min_delta": 0.4,
    "max_delta": 0.6
  }
}

注意

隔离路径

标准订单端点,例如 私密/购买私有/出售,或 私密/编辑 不适用于报价。这种分离确保了做市商的业绩和风险控制。

修复逻辑

FIX 完全支持批量报价,使用专用消息类型将报价流程与常规订单分开。

▶ 发送和取消报价
  • 批量报价 (i) — 用于提交新报价或修改现有报价。

    注意

    设定 OrderQty = 0 充当该报价的取消。

  • 取消报价 (Z) — 批量取消报价。

    可以按仪器、产品类型进行过滤 QuoteSetID,或增量范围(仅适用于选项)。

    小心

    发布批量取消订单后,新提交的报价可能是 已拒绝 1 秒钟 防止立即重新发送报价垃圾邮件。

▶ 检索和监控报价

注意

标准 FIX 订单消息(例如 New Order Single (D)) 不适用于报价