跳转到主要内容
本指南详细介绍了交易者如何在 Injective 上使用 MsgLiquidatePosition 函数来清算水下仓位。 在继续之前,请确保你了解以下内容:
  • 清算机制: Injective 采用动态清算机制,当仓位超过特定的抵押率(即低于阈值)时,任何市场参与者都可以对其进行清算。执行清算有收益,但需要大量的前期资金。
  • MsgLiquidatePosition 函数: 此函数允许交易者对符合条件的仓位发起清算,为他们提供获取清算费用的机会。
清算的不同情况: 根据仓位状态,有两种不同的情况。在两种情况下,都需要清算整个仓位。

1) 仓位具有正权益或零权益

仓位将使用市价单出售,最差价格等于破产价格。只有当整个仓位无法使用破产价格作为最差价格进行清算时,清算人才需要提交限价单。 优点
  • 当仓位未破产时,保险基金保证零损失。
  • 使用现有订单簿流动性,清算人仍有动力通过获得仓位折扣(最高至破产价格)来进行清算(套利)。
缺点
  • 以破产价格接管可能对清算人没有足够的吸引力,特别是当标记价格非常接近破产价格时。
    • 如果假设总会有至少一个”白骑士”清算人(目前 Injective 上确实存在),这种担忧就会得到缓解。
示例 考虑以下在维持保证金率为 5% 的市场中的多头仓位。
数量入场价格保证金清算价格破产价格
11028.428
8预言机价格8 ≤ 预言机价格 ≤ 8.42 时,该仓位可被清算且具有非负权益 如果仓位可以使用最差价格为 $8 的市价单在订单簿上出售,清算人就可以清算该仓位。 如果清算人希望参与清算,可以选择提交自己的订单,但如果订单簿已有足够的流动性,这不是必需的。如果订单簿没有足够的流动性,则要求清算人提交自己的订单(价格必须 ≥ $8)作为清算的一部分。

2) 仓位具有负权益

仓位将使用市价单出售,最差价格等于预言机价格。只有当整个仓位无法使用预言机价格作为最差价格进行清算时,清算人才需要提交限价单。 优点
  • 保险基金永远不会因以极端价格市价出售仓位而遭受不可控的损失。相反,保险基金仅根据预言机价格变动损失资金。
缺点
  • 与正权益情况类似(但更糟),以预言机价格接管仓位可能对清算人完全没有吸引力,特别是现在没有隐含套利。这可能导致清算延迟。
示例 考虑以下多头仓位。
数量入场价格保证金清算价格破产价格
11028.428
当预言机价格 < 8时,该仓位具有负权益。假设预言机价格为8 时,该仓位具有负权益。假设预言机价格为 7.50。 如果仓位可以使用最差价格为 $7.50 的市价单在订单簿上出售,清算人就可以清算该仓位。 与上述情况类似,如果清算人希望参与清算,可以选择提交自己的订单,但如果订单簿已有足够的流动性,这不是必需的。如果订单簿没有足够的流动性,则要求清算人提交自己的订单(价格必须 ≥ $7.50)作为清算的一部分。 清算仓位的步骤:
  1. 识别可清算仓位: 使用 Injective 的 LiquidablePositions 端点来识别抵押率低于清算阈值的仓位。相关数据点包括:
    • 抵押品: 作为仓位抵押品存入的代币总价值。
    • 负债: 仓位中借入代币的总价值。
    • 清算阈值: 避免清算所需的最低抵押率。
    示例可以在 GoPython 中找到。
  2. 准备清算交易: 使用 MsgLiquidatePosition 函数构建订单交易,指定 API 文档 中列出的参数。虽然不是强制性的,但强烈建议使用限价交易而非市价交易。
注意,执行清算需要限价单。通过遵循这些步骤并考虑上述因素,做市商可以有效地使用 MsgLiquidatePosition 函数参与 Injective 的清算机制并获取潜在的盈利机会。