Deribit Block RFQ API 演练

  • 更新

API 密钥范围

区块询价相关的API请求需要的范围与大宗交易的范围不同。之所以这样做,是因为大宗交易可以有可选的 “大宗交易批准” 其中,其他经过身份验证的连接必须批准使用具有此可选功能的API密钥进行的任何大宗交易。由于Block RFQ不是第三方平台,因此不需要这样做,漫长的批准时间可能会导致逆向选择,尤其是在匿名市场中

仅用于监听新的区块询价或检索所有已开启的区块询价 block_rfq:read 是必需的。要同时创建 RFQ 或回复 RFQ, block_rfq_id:read_write 是必需的。这些范围可以添加到 新密钥或现有密钥

创建 RFQ

创建请求

随着 私有/创建区块_rfq 呼叫接受者通过指定工具并输入基础货币金额(适用于报价货币的反向期货)来启动区块询价。接受者还应输入每条腿的方向以指定结构。如果不指定 makers 变量,则会自动将所有制造商作为目标。

{
  "method": "private/create_block_rfq",
  "params": {
    "legs": [
      {
        "instrument_name": "BTC-14FEB25-100000-C",
        "amount": 100,
        "direction": "buy"
      },
      {
        "instrument_name": "BTC-14FEB25-110000-C",
        "amount": 100,
        "direction": "sell"
      }
    ]
  },
  "jsonrpc": "2.0",
  "id": 1
}

创建响应

创建回复将始终包含空的出价和卖出价清单,因为这些清单只有在制作者回复后才会填充。makers 变量旁边的空列表表示平台上的所有制造商都成为攻击目标。腿部结构分为比率和总金额,如 “定价单位” 的部分 Deribit 区块询价 文章。Deribit 还返回 combo_id 这是策略订单簿的理论工具名称。对于自定义策略,此字段为空。成员还会获得有关时间戳和 block_rfq_id 这是区块询价的唯一标识符。

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "state": "created",
    "bids": [],
    "asks": [],
    "role": "taker",
    "amount": 100,
    "legs": [
      {
        "direction": "buy",
        "instrument_name": "BTC-14FEB25-100000-C",
        "ratio": 1
      },
      {
        "direction": "sell",
        "instrument_name": "BTC-14FEB25-110000-C",
        "ratio": 1
      }
    ],
    "expiration_timestamp": 1738250740801,
    "block_rfq_id": 1,
    "combo_id": "BTC-CS-14FEB25-100000_110000",
    "makers": [],
    "min_trade_amount": 0.1,
    "creation_timestamp": 1738250440801
  }
}

对冲腿示例

以下是如何创建包含对冲段的区块询价结构的示例。

{
  "method": "private/create_block_rfq",
  "params": {
    "legs": [
      {
        "instrument_name": "BTC-14FEB25-100000-C",
        "amount": 100,
        "direction": "buy"
      },
      {
        "instrument_name": "BTC-14FEB25-110000-C",
        "amount": 100,
        "direction": "sell"
      }
    ],
    "hedge": {
      "instrument_name": "BTC-PERPETUAL",
      "amount": 50000,
      "direction": "sell",
      "price": 100000
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}

预分配示例

使用以下命令创建区块询价单时 私有/创建区块_rfq 方法, 接受者 可以利用 预先分配 功能可将总金额分配给他们 主账户、子账户或经纪人关联客户。 每项分配必须指定 user_id (用于直接分配)或 client_info 对象(用于经纪人分配),以及 amount

重要

此功能仅在从主账户创建批量询价时可用。

示例 user_id

{
  "method": "private/create_block_rfq",
  "params": {
    "legs": [
      {
        "instrument_name": "BTC-25JUL25",
        "amount": 200000,
        "direction": "buy"
      }
    ],
    "trade_allocations": [
      {
        "user_id": 1354,
        "amount": 100000
      },
      {
        "user_id": 1464,
        "amount": 100000
      }
    ],
    "label": "test",
    "makers": [],
    "disclosed": true
  },
  "jsonrpc": "2.0",
  "id": 6
}

示例 client_info user_id

{
  "method": "private/create_block_rfq",
  "params": {
    "legs": [
      {
        "instrument_name": "BTC-PERPETUAL",
        "amount": 200000,
        "direction": "buy"
      }
    ],
    "trade_allocations": [
      {
        "client_info" : {
                "client_id" : 1,
                "client_link_id" : 1
        },
        "amount": 100000
      },
        {
        "user_id" : 7,
        "amount" : 100000
        }
    ],
    "label": "test",
    "makers": [],
    "disclosed": true
  },
  "jsonrpc": "2.0",
  "id": 6
}

关键要求:

  • 分配的大小必须与 最低交易金额 标的工具(与报价一样)

  • 这个 所有分配的总和 必须等于总询价大小

  • 分配可能低于最小区块大小,只要总数符合要求

  • 分配是不可变的 一旦创建 RFQ

保证金支票
  • 保证金已验证 每个分配的账户 在创建 RFQ 时。

  • 这个 创作者不需要资金 如果不是自己分配。

  • 如果支票失败,经纪人将被告知哪个分配失败。

询价生命周期和可见性
  • 在公开场合, 创作者仍被标记为接受者

  • 只有创建者才能看到分配 以及个人收件人(每个人只能看到自己的身份)。

  • 分配的用户 在 RFQ 中 无法报价 上面是为了防止自我交易。

  • 询价遵守 SMP(防止自配对)配置: 如果任何分配的用户具有与制造商相同的 RFQ 身份,则不允许报价。

交易行为和交易后分配
  • 只有创作者才能看到分配的全部明细。

  • 分配的用户:

    • 参见 只有他们的份额 交易的

    • 能看见 总交易规模 (因为询价是公开的)

  • 费用由分配的用户支付,但是 费用基于 RFQ 创建者,不是个人账户。

  • 分配的账户 可以在他们的交易中看到他们各自的交易 交易日志,就像常规交易一样。这包括费用详情、时间戳和交易元数据

API 和订阅中的交易可见性

分配的交易将显示在:

已披露的区块询价示例

区块询价单创建方法 私有/创建区块_rfq 接受一个可选参数 disclosed。默认情况下,它设置为 False 但是,有效的匿名区块询价需要至少有5家制造商成为目标。在非匿名 RFQ 中,我们随后将接受者别名传递到一个名为的参数中 taker 并将制造商别名添加到 bidasktrade 数组。这些信息是历史存储的。制造商在这些阵列中看不到其他制造商的别名。以下是创建非匿名区块 RFQ 的示例

{
  "method": "private/create_block_rfq",
  "params": {
    "legs": [
      {
        "instrument_name": "BTC-14FEB25-100000-C",
        "amount": 100,
        "direction": "buy"
      },
      {
        "instrument_name": "BTC-14FEB25-110000-C",
        "amount": 100,
        "direction": "sell"
      }
    ],
   "disclosed": true
  },
  "jsonrpc": "2.0",
  "id": 1
}

Taker Block 询价通知订阅

接受者通知渠道提供有关成员创建的区块询价的状态更新。每当字段发生变化时,频道都会发送更新。这通常涉及州或以出价或要价形式出现的新报价。响应示例如下所示。

channel: block_rfq.taker.{currency}
{
  "jsonrpc": "2.0",
  "method": "subscription",
  "params": {
    "channel": "block_rfq.taker.btc",
    "data": {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "continuation": null,
        "block_rfqs": [
          {
            "timestamp": 1738252420844,
            "state": "filled",
            "bids": [
              {
                "price": 0.03,
                "amount": 100,
                "last_update_timestamp": 1738252318903,
                "execution_instruction": "all_or_none",
                "makers": ["MAKER1"]
              }
            ],
            "asks": [],
            "role": "taker",
            "mark_price": 0.005396142,
            "amount": 100,
            "trades": [
              {
                "price": 0.01,
                "direction": "buy",
                "amount": 100,
                "maker": "MAKER1"
              }
            ],
            "legs": [
              {
                "price": 0.03,
                "direction": "buy",
                "instrument_name": "BTC-14FEB25-100000-C",
                "ratio": 1
              },
              {
                "price": 0.02,
                "direction": "sell",
                "instrument_name": "BTC-14FEB25-110000-C",
                "ratio": 1
              }
            ],
            "expiration_timestamp": 1738252585438,
            "block_rfq_id": 1,
            "combo_id": "BTC-CS-14FEB25-110000_100000",
            "disclosed": false,
            "makers": [],
            "min_trade_amount": 0.1,
            "creation_timestamp": 1738252285438
          }
        ]
      }
    }
  }
}

Maker Block 询价通知订阅

创客频道返回有关成员被标记为制造商的所有新区块询价以及该状态的任何更新的信息。以下是制造商在 RFQ 中被标记的示例

channel: block_rfq.maker.{currency}
{
  "jsonrpc": "2.0",
  "method": "subscription",
  "params": {
    "channel": "block_rfq.maker.btc",
    "data": {
      "state": "open",
      "role": "maker",
      "combo_id": "BTC-CS-14FEB25-100000_110000",
      "legs": [
        {
          "direction": "buy",
          "instrument_name": "BTC-14MAR25-80000-C",
          "ratio": 1
        },
        {
          "direction": "sell",
          "instrument_name": "BTC-14MAR25-80000-P",
          "ratio": 1
        }
      ],
      "amount": 100,
      "min_trade_amount": 0.1,
      "expiration_timestamp": 1740742981931,
      "taker": "BenTrades",
      "creation_timestamp": 1740742681931,
      "block_rfq_id": 1,
      "taker_rating": 5-20,
      "disclosed": true
    }
  }
}

Maker Block 交易询价通知订阅

以下是填写上述询价单的示例。这笔交易起源于两个 any_part_of 两位制造商的报价。在此示例中,两个制造商都是同一个主账户下的子账户。已为交易磁带中有maker字段的子账户开通了订阅。这个制造商很方便地被命名为 ''。这意味着制造商也将从该订阅中获得其他制造商的贸易信息。他们将仅收到公开可见的信息,制造商名称等私有字段仅在订阅时可见。

{
  "jsonrpc": "2.0",
  "method": "subscription",
  "params": {
    "channel": "block_rfq.maker.btc",
    "data": {
      "timestamp": 1740742710983,
      "state": "filled",
      "role": "maker",
      "combo_id": "BTC-CS-14FEB25-100000_110000",
      "legs": [
        {
          "price": 0.03,
          "direction": "buy",
          "instrument_name": "BTC-14FEB25-100000-C",
          "ratio": 1
        },
        {
          "price": 0.02,
          "direction": "sell",
          "instrument_name": "BTC-14FEB25-110000-C",
          "ratio": 1
        }
      ],
      "amount": 100,
      "min_trade_amount": 0.1,
      "mark_price": 0.005396142,
      "trades": [
        {
          "price": 0.01,
          "direction": "buy",
          "amount": 50
        },
        {
          "price": 0.01,
          "maker": "YOU",
          "direction": "buy",
          "amount": 50
        }
      ],
      "expiration_timestamp": 1740742981931,
      "taker": "BenTrades",
      "creation_timestamp": 1740742681931,
      "block_rfq_id": 1,
      "disclosed": true
    }
  }
}

取消区块询价

接受者还可以选择在区块询价到期之前使用取消该询价。这可以通过传递来完成 block_rfq_idprivate/cancel_block_rfq 方法。

{
  "method" : "private/cancel_block_rfq",
  "params" : {
    "block_rfq_id" : 1
    }
}

提交报价

报价请求

制造商通过使用下报价来回应大宗询价 private/add_block_rfq_quote 方法。制造商通过传入来指定区块询价单 block_rfq_id 然后在比率结构中用价格来呼应比率结构中的分支。然后,制造商指定这是否是他们的购买(出价) 或卖出价格 ()。他们还输入了一个 amount 还有一个 execution_instruction 这可以是 all_or_none 订单或 any_part_of 订购。如果是 all_or_none 金额必须始终与接受者要求的金额相匹配。如果是 any_part_of 订单制作者可以添加多个部分订单。

{
  "method": "private/add_block_rfq_quote",
  "params": {
    "label": "test",
    "block_rfq_id": 1,
    "direction": "sell",
    "legs": [
      {
        "instrument_name": "BTC-14FEB25-100000-C",
        "ratio": 1,
        "direction": "buy",
        "price": "0.03"
      },
      {
        "instrument_name": "BTC-14FEB25-110000-C",
        "ratio": 1,
        "direction": "sell",
        "price": "0.02"
      }
    ],
    "amount": 100,
    "execution_instruction": "all_or_none"
  },
  "jsonrpc": "2.0",
  "id": 1
}

引用回复

在报价响应中,制造商会收到有关其报价状态的信息。这包括 quote_state 还有独一无二的 block_rfq_quote_id。Deribit 还会计算该方向的总价格。如果大宗询价已经交易,则制造商还可以看到该报价中用于完成交易的金额

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "label": "test",
    "price": 0.01,
    "direction": "sell",
    "amount": 100,
    "legs": [
      {
        "price": 0.03,
        "direction": "buy",
        "instrument_name": "BTC-14FEB25-100000-C",
        "ratio": 1
      },
      {
        "price": 0.02,
        "direction": "sell",
        "instrument_name": "BTC-14FEB25-110000-C",
        "ratio": 1
      }
    ],
    "block_rfq_id": 1,
    "replaced": false,
    "filled_amount": 0,
    "last_update_timestamp": 1738251666989,
    "execution_instruction": "all_or_none",
    "block_rfq_quote_id": 1,
    "creation_timestamp": 1738251666989,
    "quote_state": "open"
  }
}

报价到期

向批量询价提交报价时, 制造商 可以包括一个 expires_at 时间戳以表明他们的报价有效多长时间。

创客行为

调用该方法时 private/add_block_rfq_quote,制造商可以包括 expires_at 参数(输入 自纪元以来的毫秒数) 以指定报价的到期时间。

请求示例:

{
 “方法”:“私有/添加区块_rfq_quote”,
 “参数”:{
 “标签”:“测试1”,
 “block_rfq_id”:194,
 “金额”:1000000,
 “方向”:“卖出”,
 “腿”:[
 {
 “仪器名称”:“BTC-25APR25”,
 “价格”:86000,
 “比例”:“1”,
 “方向”:“买入”
 }
 ],
 “执行指令”:“任何部分”,
 “expires_at”:1745312540321
 },
 “jsonrpc”:“2.0”,
 “ID”:1

如果之前未接受报价 expires_at,它将自动排除在考虑和执行范围之外。

接受者可见度

接受者使用以下方法检索未完成的询价单 私有/get_block_rfqs参见 expires_at 领域 在每个可用报价上。

接受者回应示例:

“问”:[
 {
 “金额”:20000,
 “价格”:86000,
 “制造商”:[
 “测试响应器”
 ],
 “上次更新时间戳”:1745312295333,
 “expires_at”:1745312540321,
 “执行指令”:“任何部分”
 } 
汇总报价

如果接受者看到 汇总报价 (例如,由多个制造商的回复组成的单一报价 execution_instruction: “any_part_of“):

  • 系统将仅显示 最接近(最早) expires_at 在可执行引号中。

  • 过期时间戳较晚的报价是 忽略了 在这种情况下,因为最早到期是执行的限制因素。

关键笔记
  • expires_at 是可选的,但建议用于时间敏感的定价策略。

  • 提交后,报价的到期时间戳 无法修改

  • 过期的报价将自动排除在匹配和显示范围之外。

  • 到期时间适用于每个报价,不适用于整个 RFQ。

订阅报价通知

提供有关已提交、编辑或取消的报价的通知。此方法仅适用于制造商,仅显示他们的报价。

channel: block_rfq.maker.quotes.any
{
  "jsonrpc": "2.0",
  "method": "subscription",
  "params": {
    "channel": "block_rfq.maker.quotes.any",
    "data": [
      {
        "label": "test",
        "price": 0.01,
        "direction": "sell",
        "amount": 100,
        "legs": [
          {
            "price": 0.03,
            "direction": "buy",
            "instrument_name": "BTC-14FEB25-100000-C",
            "ratio": 1
          },
          {
            "price": 0.02,
            "direction": "sell",
            "instrument_name": "BTC-14FEB25-110000-C",
            "ratio": 1
          }
        ],
        "block_rfq_id": 1,
        "replaced": false,
        "filled_amount": 0,
        "last_update_timestamp": 1738251666989,
        "execution_instruction": "all_or_none",
        "block_rfq_quote_id": 1,
        "creation_timestamp": 1738251666989,
        "quote_state": "open"
      }
    ]
  }
}

发起交易

提交过境指令

要根据活跃报价进行交易,接受者可以使用以下方式提交交叉订单 私有/accept_block_rfq 方法。他们按照这个顺序指定他们愿意交易的方向和价格。如果他们订单中的价格至少与制造商报价所提供的价格一样好,则交易将以最优惠的价格进行。

{
  "method": "private/accept_block_rfq",
  "params": {
    "block_rfq_id": 1,
    "legs": [
      {
        "instrument_name": "BTC-14FEB25-100000-C",
        "ratio": 1,
        "direction": "buy"
      },
      {
        "instrument_name": "BTC-14FEB25-110000-C",
        "ratio": 1,
        "direction": "sell"
      }
    ],
    "price": 0.01,
    "direction": "buy",
    "amount": 100
  },
  "jsonrpc": "2.0",
  "id": 1
}

提交触发订单

接受者可以提交 触发订单 通过指定他们愿意交易的价格,直接进入区块询价流程。

这个 私有/accept_block_rfq 方法由提交 接受者 并包括一个 time_in_force 决定订单行为方式的参数:

  • fill_or_kill默认):订单必须立即全部成交;否则,订单将失败。

  • good_til_cancelled: 订单存储为 触发 并在匹配或取消之前一直处于活动状态。

订单匹配行为
  • 立即匹配:如果可用的制造商流动性达到或改善接受者的价格,则交易将立即执行。

  • 触发模式: 如果不是,则订单变成 触发,被动地等待合适的制造商报价出现。

  • 每边一个有效订单: 接受者只能有 每个方向一个主动触发顺序 (买入或卖出)。提交新文件将取代以前的。

示例:接受限价询价
{
 “方法”:“私有/accept_block_rfq”,
 “参数”:{
 “block_rfq_id”:129910,
 “time_in_force”:“取消前有效”,
 “腿”:[
 {
 “仪器名称”:“BTC-29MAY25-100000-C”,
 “方向”:“买入”,
 “比例”: “1"
 },
 {
 “仪器名称”:“BTC-29MAY25-101000-C”,
 “方向”:“卖出”,
 “比例”: “1"
 }
 ],
 “价格”:0.01,
 “方向”:“卖出”,
 “金额”:12.5
 },
 “jsonrpc”:“2.0”,
 “ID”:2

如果接受者使用 good_til_cancelled提交时没有匹配的报价,系统将返回 trade_trigger 具有状态的对象: untriggered,表示订单正在等待配对。

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "trade_trigger": {
      "state": "untriggered",
      "price": 0.01,
      "direction": "sell"
    }
  }
}
取消大宗询价中的触发订单

如果接受者提交了 触发顺序 使用 time_in_force: good_til_cancelled,而且订单还在 未触发,可以随时使用取消 私有/取消区块_rfq_trigger 方法。

当接受者不想再等待匹配的流动性或不想更新定价时,这很有用。

重要

取消触发器 不会关闭区块询价单本身

请求示例
{
 “方法”:“私有/取消区块_rfq_trigger”,
 “参数”:{
 “block_rfq_id”: 123
 },
 “jsonrpc”:“2.0”,
 “ID”:1
示例响应

响应返回完整的 Block RFQ 对象,包括更新后的区块 RFQ 对象 trade_trigger 表示触发器已取消的字段。

{
 “jsonrpc”:“2.0”,
 “id”:1,
 “结果”:{
 “creation_timestamp”:1730798381504,
 “过期时间戳”:1730798481504,
 “block_rfq_id”:123,
 “角色”:“接受者”,
 “状态”:“打开”,
 “taker_rating”:“1-2”,
 “制造商”:[“maker1”,“maker2"],
 “金额”:100,
 “最小交易金额”:10,
 “腿”:[
 {
 “仪器名称”:“BTC-8NOV24-70000-C”,
 “比例”:1
 },
 {
 “仪器名称”:“BTC-8NOV24-72000-C”,
 “比例”:1
 }
 ],
 “combo_id”:“BTC-CS-8NOV24-70000_72000”,
 “标签”:“我的区块询价”,
 “app_name”: “示例应用程序”,
 “mark_price”:0.025,
 “已披露”:虚假,
 “trade_trigger”: {
 “状态”:“已取消”,
 “价格”:0.01,
 “方向”:“买入”,
 “cancel_reason”:“用户已取消”
 }
 }

交易回应

宗询价交易是普通的Deribit区块交易,也按此进行报告。唯一的区别是 block_rfq_id 可以将多个大宗交易链接在一起的字段(如果交易是作为多制造商模型的一部分执行的)。

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    {
      "id": "BLOCK-701428",
      "timestamp": 1738252420847,
      "trades": [
        {
          "timestamp": 1738252420846,
          "state": "filled",
          "iv": 56.37,
          "price": 0.0088,
          "direction": "buy",
          "index_price": 105782.69,
          "profit_loss": 0,
          "instrument_name": "BTC-14FEB25-100000-C",
          "trade_seq": 4,
          "api": true,
          "mark_price": 0.00824031,
          "amount": 100,
          "order_id": "32032913453",
          "matching_id": null,
          "tick_direction": 0,
          "fee": 0.00225,
          "mmp": false,
          "block_trade_id": "BLOCK-701428",
          "block_rfq_id": 1,
          "combo_id": "BTC-CS-14FEB25-100000_110000",
          "post_only": false,
          "reduce_only": false,
          "self_trade": false,
          "underlying_price": 106384.42,
          "contracts": 100,
          "trade_id": "193437641",
          "fee_currency": "BTC",
          "order_type": "limit",
          "risk_reducing": false,
          "block_trade_leg_count": 2,
          "liquidity": "T"
        },
        {
          "timestamp": 1738252420846,
          "state": "filled",
          "iv": 60.3,
          "price": 0.0027,
          "direction": "sell",
          "index_price": 105782.69,
          "profit_loss": 0,
          "instrument_name": "BTC-14FEB25-110000-C",
          "trade_seq": 5,
          "api": true,
          "mark_price": 0.00284417,
          "amount": 100,
          "order_id": "32032913451",
          "matching_id": null,
          "tick_direction": 0,
          "fee": 0,
          "mmp": false,
          "block_trade_id": "BLOCK-701428",
          "block_rfq_id": 1,
          "combo_id": "BTC-CS-14FEB25-100000_110000",
          "post_only": false,
          "reduce_only": false,
          "self_trade": false,
          "underlying_price": 106384.42,
          "contracts": 100,
          "trade_id": "193437640",
          "fee_currency": "BTC",
          "order_type": "limit",
          "risk_reducing": false,
          "block_trade_leg_count": 2,
          "liquidity": "T"
        }
      ]
    }
  ]
}

报价调整

编辑报价

制造商可以使用以下方式编辑报价 private/edit_block_rfq_quote。这可以通过将标签和标签组合起来来 block_rfq_id 或者路过 block_rfq_quote_id。在下面的示例中,报价是使用更新的 block_rfq_id 还有一个 label

{
  "method" : "private/edit_block_rfq_quote",
  "params" : {
    "label" : "test",
    "block_rfq_id" : 1,
    "amount" : 100,
    "direction" : "sell",
    "legs" : [
    {
        "instrument_name": "BTC-14FEB25-100000-C",
        "ratio": 1,
        "direction": "buy",
        "price": 0.04
      },
      {
        "instrument_name": "BTC-14FEB25-110000-C",
        "ratio": 1,
        "direction": "sell",
        "price": 0.02
      }
    ],
    "execution_instruction" : "all_or_none"
  },
  "jsonrpc" : "2.0",
  "id" : 1
}

取消报价

制造商可以使用以下方式取消报价 private/cancel_block_rfq_quote 通过传入以下任一组合 block_rfq_idlabel 或者 block_rfq_quote_id

{
  "jsonrpc" : "2.0",
  "id" : 1,
  "method" : "private/cancel_block_rfq_quote",
  "params" : {
    "block_rfq_quote_id" : 1
  }
}

重要

这个 断开连接时取消 功能也适用于批量询价报价,允许制造商在连接断开时自动取消报价。

取消所有报价

制造商还可以通过一次调用取消所有未兑现的报价 private/cancel_all_block_rfq_quotes。此调用可选地采用参数 block_rfq_id 它要么取消特定区块询价的所有报价,要么如果未提供,则取消制造商回复的所有区块询价的报价。

{
  "jsonrpc" : "2.0",
  "id" : 24,
  "method" : "private/cancel_all_block_rfq_quotes",
  "params" : {
    "block_rfq_id" : 1
  }
}

历史数据端点

区块询价信息

成员可以使用以下方法检索有关活跃和历史区块询价的信息 私有/get_block_rfqs 致电,其中 RFQ 数量由指定 count 变量。可以选择筛选大宗询价 staterole。要检索单个区块的信息,RFQ 成员可以填写 block_rfq_id 变量。活跃的 RFQ 返回的响应与新创建的 RFQ 相同,但会提供最新的信息, bidsasks。历史询价记录了区块询价结束时的最佳买入和卖出价以及因区块询价而发生的任何交易

{
  "method" : "private/get_block_rfqs",
  "params" : {
    "block_rfq_id" : 1
  },
  "jsonrpc" : "2.0",
  "id" : 2
}  

封闭区块询价回复

如果区块询价单不再开放,则响应的结构如下。对于已关闭的区块询价,我们还添加了一个附加参数 included_in_taker_rating 适用于决定此区块询价是否计入其 OTV 比率的接受者。

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "continuation": null,
    "block_rfqs": [
      {
        "timestamp": 1738252420844,
        "state": "filled",
        "bids": [
          {
            "price": 0.01,
            "amount": 100,
            "last_update_timestamp": 1738252318903,
            "execution_instruction": "all_or_none",
            "makers": [
              "ANONYMOUS"
            ]
          }
        ],
        "asks": [
          {
            "price": 0.02,
            "amount": 100,
            "last_update_timestamp": 1738252285527,
            "execution_instruction": "all_or_none",
            "makers": [
              "ANONYMOUS"
            ]
          }
        ],
        "role": "taker",
        "mark_price": 0.005396142,
        "amount": 100,
        "trades": [
          {
            "price": 0.01,
            "direction": "buy",
            "amount": 100,
            "maker": "ANONYMOUS"
          }
        ],
        "legs": [
          {
            "price": 0.03,
            "direction": "buy",
            "instrument_name": "BTC-14FEB25-100000-C",
            "ratio": 1
          },
          {
            "price": 0.02,
            "direction": "sell",
            "instrument_name": "BTC-14FEB25-110000-C",
            "ratio": 1
          }
        ],
        "expiration_timestamp": 1738252585438,
        "block_rfq_id": 1,
        "combo_id": "BTC-CS-14FEB25-100000_110000",
        "disclosed": false,
        "included_in_taker_rating": true,
        "makers": [],
        "min_trade_amount": 0.1,
        "creation_timestamp": 1738252285438
      }
    ]
  }
}

报价信息

只能使用以下方法检索有效的报价信息 私有/get_block_rfq_quotes。取消的报价和已关闭的批量询价的报价不会被存储。此外,无法检索已编辑报价的过去版本。活跃报价可以按以下条件筛选 block_rfq_id。此参数是可选的,调用不带该参数的方法将返回所有活跃报价。也可以组合使用以下方法检索特定报价的信息 block_rfq_idlabel 或者 block_rfq_quote_id

{
  "jsonrpc" : "2.0",
  "id" : 1,
  "method" : "private/get_block_rfq_quotes",
  "params" : {
    "block_rfq_id" : 1
  }
}

报价信息回复

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    {
      "label": "test",
      "price": 0.01,
      "direction": "sell",
      "amount": 100,
      "legs": [
        {
          "price": 0.03,
          "direction": "buy",
          "instrument_name": "BTC-14FEB25-100000-C",
          "ratio": 1
        },
        {
          "price": 0.02,
          "direction": "sell",
          "instrument_name": "BTC-14FEB25-110000-C",
          "ratio": 1
        }
      ],
      "block_rfq_id": 1,
      "replaced": false,
      "filled_amount": 0,
      "last_update_timestamp": 1738254302855,
      "execution_instruction": "all_or_none",
      "block_rfq_quote_id": 1,
      "creation_timestamp": 1738254302855,
      "quote_state": "open"
    }
  ]
}

批量询价交易

公共方法 public/get_block_rfq_trades 提供有关因大宗询价而产生的交易的信息。

{
  "method" : "public/get_block_rfq_trades",
  "params" : {
    "currency" : "BTC"
  },
  "jsonrpc" : "2.0",
  "id" : 1
}

批量询价交易回复

以下是来自该端点的交易的响应示例。

{
    "continuation": "1737538194561:4695",
    "block_rfqs": [
      {
        "id": 1,
        "timestamp": 1737726042985,
        "direction": "buy",
        "bid_price": 0.01,
        "ask_price": 0.02,
        "amount": 100,
        "mark_price": 0.01,
        "legs": [
          {
            "direction": "buy",
            "instrument_name": "BTC-14FEB25-100000-C",
            "ratio": 1
          },
          {
            "direction": "sell",
            "instrument_name": "BTC-14FEB25-110000-C",
            "ratio": 1
          }
        ],
        "combo_id": “BTC-CS-14FEB25-100000_110000”,
        "hedge": "undefined"
      },
      {
        "id": 4951,
        "timestamp": 1737724733876,
        "direction": "sell",
        "bid_price": -500,
        "ask_price": null,
        "amount": 100000,
        "mark_price": -308.4,
        "legs": [
          {
            "direction": "buy",
            "instrument_name": "BTC-31JAN25",
            "ratio": 1
          },
          {
            "direction": "sell",
            "instrument_name": "BTC-7FEB25",
            "ratio": 1
          }
        ],
        "combo_id": null,
        "hedge": "undefined"
      }
    ]
  }

上市制作者

方法 私有/get_block_rfq_makers 可以调用以检索所有可用制造商的列表。它不带任何参数。

{
  "method" : "private/get_block_rfq_makers",
  "params" : {

  },
  "jsonrpc" : "2.0",
  "id" : 1
}

制造商的回应

响应是一个包含区块 RFQ 名称的列表。

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    "MAKER1",
    "MAKER2",
    "MAKER3"
  ]
}

腿部定价算法

对于希望对整个结构而不是每段单独定价的会员,我们提供分段定价 私人/获取_leg_prices 方法。此方法采用包含金额(如首次提交)和总价格的区块询价结构,返回比率结构中的分段和计算出的每个段的有效价格,可用于报价

注意

请注意,此调用仅适用于传统策略,对于自定义策略,会返回错误。

{
  "method": "private/get_leg_prices",
  "params": {
    "price": 0.01,
    "legs": [
    {
        "instrument_name": "BTC-8NOV24-70000-C",
        "amount": 100,
        "direction": "buy"
      },
      {
        "instrument_name": "BTC-8NOV24-72000-C",
        "amount": 100,
        "direction": "sell"
      }
    ]
  },
  "jsonrpc": "2.0",
  "id": 1
}

腿部定价回应

返回的是比率结构,其中包含每个分段的价格。

注意

请注意,返回的价格对区块询价报价大小有效,不一定是给定工具中Deribit的订单簿分笔成交量大小。

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "amount": 100,
    "legs": [
      {
        "price": 0.0475,
        "direction": "sell",
        "instrument_name": "BTC-14FEB25-110000-C",
        "ratio": 1
      },
      {
        "price": 0.0575,
        "direction": "buy",
        "instrument_name": "BTC-14FEB25-100000-C",
        "ratio": 1
      }
    ]
  }
}

识别公共交易录像带中的大宗询价交易

大宗询价交易以大宗交易的形式执行,并以大宗交易的形式出现在 Deribit 的交易历史记录中,例如 public/get_last_trades_by_curren。作为大宗询价的一部分执行的大宗交易也有 block_rfq_id 领域。

{
  "jsonrpc": "2.0",
  "id": 10,
  "result": {
    "trades": [
      {
        "timestamp": 1731580311926,
        "price": 91314.5,
        "direction": "buy",
        "index_price": 91225.89,
        "instrument_name": "BTC-PERPETUAL",
        "amount": 18260,
        "trade_seq": 114040640,
        "mark_price": 91226,
        "tick_direction": 1,
        "contracts": 1826,
        "trade_id": "192235370"
      },
      {
        "timestamp": 1731580302276,
        "iv": 106.47,
        "price": 0.2,
        "direction": "sell",
        "index_price": 91227.09,
        "instrument_name": "BTC-8NOV24-72000-C",
        "combo_id": "BTC-CS-8NOV24-70000_72000",
        "amount": 100,
        "trade_seq": 231,
        "mark_price": 0.21684268,
        "tick_direction": 2,
        "block_trade_id": "BLOCK-423",
        "block_rfq_id": 1,
        "contracts": 100,
        "trade_id": "192235369",
        "block_trade_leg_count": 2
      },
      {
        "timestamp": 1731580302276,
        "iv": 107.37,
        "price": 0.3,
        "direction": "buy",
        "index_price": 91227.09,
        "instrument_name": "BTC-8NOV24-70000-C",
        "combo_id": "BTC-CS-8NOV24-70000_72000",
        "amount": 100,
        "trade_seq": 213,
        "mark_price": 0.23542917,
        "tick_direction": 0,
        "block_trade_id": "BLOCK-423",
        "block_rfq_id": 1,
        "contracts": 100,
        "trade_id": "192235368",
        "block_trade_leg_count": 2
      },
      {
        "timestamp": 1731580301165,
        "price": 91314.5,
        "direction": "buy",
        "index_price": 91227.09,
        "instrument_name": "BTC-PERPETUAL",
        "amount": 18260,
        "trade_seq": 114040639,
        "mark_price": 91227.32,
        "tick_direction": 0,
        "contracts": 1826,
        "trade_id": "192235367"
      }
    ],
    "has_more": true
  },
}

配置 MMP

区块询价支持 做市商保护 (MMP) 的设置和触发器与订单簿交易分开管理。MMP 可以通过网络界面或使用 API 进行配置。要配置 Block RFQ MMP 设置并监控其状态,可以使用以下 WebSocket 方法,这些方法支持 block_rfq 标志:

block_rfq 标志设置为 true,这些方法适用于区块询价 MMP。当该标志被省略或设置为 false,这些方法适用于订单簿 MMP。

交易计数触发器

要配置 交易次数 触发区块询价,使用 index_name=all私有/设置_mmp_config 请求。

请求示例:

{
  "method": "private/set_mmp_config",
  "params": {
    "block_rfq": true,
    "trade_count_limit": 2,
    "frozen_time": 0,
    "index_name": "all",
    "interval": 5
  },
  "jsonrpc": "2.0",
  "id": 1
}

接收触发器通知

要接收实时触发器通知,请订阅 user.mmp_trigger。{索引_名称 频道

  • 使用 index_name=any 接收货币对中所有触发类型的通知。

  • 使用 index_name=all 仅接收有关交易计数触发器的通知。