# PerpDEX 中的清算机器人

By [白开水](https://paragraph.com/@baikaishui) · 2022-09-06

---

![](https://storage.googleapis.com/papyrus_images/91225a9f92526e56d0ee0955d089189fbc6cb73ab9abd15899d57ca208915384.png)

本文解释了清算如何在 PerpDEX 上工作，并提供了 PerpDEX 中清算机器人的示例代码。

什么是清算机器人?
---------

在永续交易的情况下，当维持保证金率低于一定水平时，仓位将被平仓。在 PerpDEX 中，与许多其他 DEX 一样，任何人都可以执行清算，执行清算的人将获得奖励，即他们清算的抵押品的百分比。Liquidator bot 是一种旨在赚取这些奖励的交易机器人。

清算如何运行在PerpDEX上 ?
-----------------

PerpDEX 维持保证金设置如下：

*   初始保证金比率（imRatio）：10%
    
*   最低保证金比率（mmRatio）：5%
    
*   见：[https ://github.com/perpdex/perpdex-contract/blob/audit-20220828/contracts/PerpdexExchange.sol#L40-L41](https://github.com/perpdex/perpdex-contract/blob/audit-20220828/contracts/PerpdexExchange.sol#L40-L41)
    

因此，您最多可以开仓10倍保证金（账户价值\*），如果仓位变为账户价值的20倍，该仓位将被平仓。 \* 账户价值 = 抵押品 + 未平仓头寸 + 限价的保证金

例如：

*   如果账户值为 1 ETH，您可以开新仓，直到所有仓位总值为 10 ETH。（为简单起见，费用和滑点被忽略）
    
*   如果您持有 10 ETH 多头头寸，并且您的账户价值低于 10 ETH \* 5% = 0.5 ETH（例如 ETH 从头寸均价下跌 9.5%），您的头寸将被平仓。
    

可以通过[交易功能执行强平](https://github.com/perpdex/perpdex-contract/blob/audit-20220828/contracts/PerpdexExchange.sol#L123-L131)

当交易者的仓位满足平仓条件时，任何人都可以对该仓位执行平仓。[\[代码\]](https://github.com/perpdex/perpdex-contract/blob/audit-20220828/contracts/lib/TakerLibrary.sol#L434-L436)

如果要强平的交易者有LimitOrders或Liquidity，则必须在强平前将其删除。[\[代码\]](https://github.com/perpdex/perpdex-contract/blob/audit-20220828/contracts/lib/TakerLibrary.sol)

强平成功的交易者将获得用于强平仓位的部分保证金。\[[代码](https://github.com/perpdex/perpdex-contract/blob/audit-20220828/contracts/lib/TakerLibrary.sol#L302-L303)\]

在 PerpDEX 中，奖励使用 EMA（指数移动平均线）平滑，因此即使是小仓位也可以尽可能多地被清算。[\[代码\]](https://github.com/perpdex/perpdex-contract/blob/audit-20220828/contracts/lib/TakerLibrary.sol#L317-L325)

清算机器人逻辑
-------

因此，如果您实现以下逻辑，您将拥有一个 Liquidator 机器人

(1) 获取交易者的地址列表（监听事件或使用子图）

(2) 判断每个交易者地址的强平条件

(3) 如果交易者不被强平，请跳过以下步骤

(4) 清算前移除LimitOrders和Liquidity（5）执行清算

示例代码
----

这是一个实现上述逻辑的简单示例代码。

[https://github.com/perpdex/perpdex-liquidator](https://github.com/perpdex/perpdex-liquidator)

我们计划举办一场交易比赛。我正在考虑在交易竞赛期间运行上述 Liquidator 机器人。

结论
--

在本文中，我解释了 Liquidator 机器人，并展示了 PerpDEX 中的示例代码。Liquidator bot 是一个易于在 DEX 上实施的交易机器人。如果您有兴趣与 DEX 交易，如果您可以参考，我会很高兴。

如果有任何问题 请联系我们
-------------

*   **Twitter**: [https://twitter.com/perpdex](https://twitter.com/perpdex)
    
*   **Discord**: [https://discord.gg/6gXs4qq9hy](https://discord.gg/6gXs4qq9hy)
    
*   **Website**: [https://perpdex.exchange](https://perpdex.exchange/)

---

*Originally published on [白开水](https://paragraph.com/@baikaishui/perpdex)*
