跳转至内容

套利执行器

ArbitrageExecutor: 专门用于控制两个市场之间的盈利能力,例如在中心化交易所(CEX)和去中心化交易所(DEX)之间,优化套利机会。

ArbitrageExecutor 类是 Hummingbot 内的一个专门组件,旨在通过自动化过程在两个不同市场上同时执行买入和卖出订单,利用不同市场或交易所之间的价格差异获利,以实现套利机会的盈利。

  • 效率:自动化识别和执行套利机会的复杂过程。
  • 速度:同时执行买入和卖出订单以捕捉稍纵即逝的套利机会。
  • 风险管理:计算交易成本以确保费用后的交易盈利。
  • 灵活性:可为不同市场和交易所的各种套利策略进行配置。

工作流程

初始化时,ArbitrageExecutor 执行以下操作:

  1. 验证:确保所提议的套利有效,且交易对可互换。
  2. 订单跟踪:维护买入和卖出订单的 TrackedOrder 实例以监控其状态。
  3. 盈利计算:评估潜在利润,计入交易成本,如果盈利能力超过最低阈值则执行交易。

示例脚本

下面,我们展示了来自 Arbitrage with Smart Component 脚本的代码片段,该脚本提供了如何使用 ArbitrageExecutor 的示例。

您可以定义两个进行套利的市场、订单金额和套利盈利阈值。

class ArbitrageWithSmartComponent(ScriptStrategyBase):
    # Parameters
    exchange_pair_1 = ExchangePair(exchange="binance", trading_pair="MATIC-USDT")
    exchange_pair_2 = ExchangePair(exchange="uniswap_polygon_mainnet", trading_pair="WMATIC-USDT")
    order_amount = Decimal("50")  # in base asset
    min_profitability = Decimal("0.004")

create_arbitrage_executor 方法负责创建新的 ArbitrageExecutor。首先,它检查买入和卖出交易所的可用余额,以确保有足够资金执行套利。如果是,则根据上述设置创建 ArbitrageExecutor 实例。

def create_arbitrage_executor(self, buying_exchange_pair: ExchangePair, selling_exchange_pair: ExchangePair):
    ...
    arbitrage_config = ArbitrageConfig(
        buying_market=buying_exchange_pair,
        selling_market=selling_exchange_pair,
        order_amount=self.order_amount,
        min_profitability=self.min_profitability,
    )