跳转至内容

阿韦拉内达与斯托伊科夫策略指南

cover

欢迎回到 Hummingbot 学院!

最新的 Hummingbot 版本 (0.38) 引入了一种基于经典学术做市模型的激动人心的策略。本文将深入探讨 2008 年的阿韦拉内达与斯托伊科夫论文及其在 Hummingbot 中的实现。

对于那些喜欢深入科学研究论文的读者,原始出版物可以直接在线访问或直接点击此处访问。

今天我们将探讨:

  • 阿韦拉内达与斯托伊科夫做市模型
  • 库存风险管理
  • 最优买入与卖出价差确定
  • 在 Hummingbot 中的实现

理解阿韦拉内达与斯托伊科夫模型

该模型解决了做市商的两个主要关切:* 库存风险管理 * 最优买入和卖出价差确定

阿韦拉内达与斯托伊科夫提出了帮助做市商应对这些挑战的公式。

预约价格:

Reservation Price

最优买入与卖出价差:

Optimal spread

其中,

  • s = 当前市场中间价
  • q = 基础资产的库存数量(多头/空头头寸为正/负)
  • σ = 市场波动率
  • T = 标准化收盘时间 (1)
  • t = 当前时间作为 T 的分数
  • δa, δb = 对称买入/卖出价差
  • γ = 库存风险厌恶参数
  • κ = 订单簿流动性参数

本文简化了这些公式及其含义。请继续关注即将发布的更多技术细节文章。

预约价格详解

传统做市涉及围绕市场中间价的对称买入和卖出订单。然而,这可能导致库存倾斜,如果资产价值不利变动,可能会使交易者面临风险。

例如,在使用对称策略的 BTC-USDT 下跌趋势中,做市商最终会积累 BTC,从而降低总库存价值。

Downtrend

阿韦拉内达与斯托伊科夫的方法计算了下订单的新参考价格,考虑到:

Reservation Price

库存位置偏差 (q)

公式中的 q 值表示与目标库存的偏差。例如:* 当 q = 0 时,预约价格等于市场中间价;* 当 q < 0 时,交易者做空,提高预约价格以偏向买入订单;* 当 q > 0 时,交易者做多,降低预约价格以偏向卖出订单。

Hummingbot 根据您指定的目标库存百分比计算 q。

库存风险容忍度 (γ)

此参数由交易者设置,表示愿意承担库存风险的程度。接近零的 γ 意味着预约价格接近市场中间价,类似于对称策略。随着 γ 增加,预约价格更积极地调整以匹配库存目标。

在 Hummingbot 中,γ 可以手动设置或自动计算。

剩余交易时段时间 (T-t)

考虑具有定义交易时段的传统金融市场,该模型在接近时段结束时将预约价格调整得更接近中间价,以最小化库存风险。

Hummingbot 允许设置交易时段持续时间,以适应 24/7 加密货币市场。

:Avellaneda 和 ellaneda 和 Stoikov 还提出了一个无限期模型,更适合连续市场,我们计划在未来的版本中包含此模型。

市场波动率(σ)也会影响预留价格,但不是交易者定义的因素。波动率增加会扩大预留价格和中间价格之间的差距。

确定最优价差

该模型的第二个方面关注订单簿的最佳定位以实现盈利。

Optimal spread

这里,预留价格因子(γ 和 (T-t))再次出现,此外还有:

订单簿流动性 (κ)

虽然论文深入探讨了数学细节,但关键要点是高 κ 值表示更密集的订单簿,需要更小的价差。相反,低 κ 表示流动性较低,允许更宽的价差。

结合预留价格和最优价差

该模型的执行逻辑很简单:

  1. 根据目标库存计算预留价格。
  2. 确定最佳买卖价差。
  3. 在预留价格周围下市价单:
    • 买入价 = 预留价格 - 最优价差的一半
    • 卖出价 = 预留价格 + 最优价差的一半

这种动态在下面说明:

Price dynamic

计算出的预留价格(绿线)经常偏离市场价格中点(蓝线)。预留价格根据库存调整,影响相对于中点的订单放置。

参数计算

Avellaneda-Stoikov 模型中的关键因素是:

  1. 库存位置 (q)
  2. 剩余交易时段时间 (T-t)
  3. 风险因子 (γ)
  4. 订单簿深度 (κ)

对于每个参数,相关的 Hummingbot 参数是:

  1. 库存距离 (q):反映当前和目标库存之间的差异。在 Hummingbot 中,设置资产库存目标百分比,机器人计算 q。
  2. 时段时间 (T-t):为加密货币市场不停止的特性调整模型。在 Hummingbot 中定义所需的交易时段持续时间。
  3. 风险因子 (γ) 和 订单簿深度 (κ):虽然论文没有指定这些参数的计算方法,但 Hummingbot 的"简易模式"会根据所需的价差限制自动确定它们。或者将 config parameters_based_on_spread 设置为 False 并使用 config order_book_depth_factorconfig risk_factor 手动输入值。

配置 Hummingbot

在 Hummingbot 中创建策略涉及 create 命令并指定 avellaneda_market_making 作为策略名称。

选择交易所和交易对后,决定是否让 Hummingbot 计算风险因子和订单簿深度。

设置最大和最小期望价差,这定义了计算出的最优价差的限制。

风险规避参数决定您的库存风险偏好。接近 1 的值表示保守方法。

最后,指定库存目标百分比,确定您的总库存中有多少应为基本资产。

Hummingbot 中的其他配置包括 closing_time(会话持续时间)和 volatility_buffer_size(波动率计算的数据时间段)。

最终想法

最优做市策略几十年来一直是学术研究的重点。随着高频交易 (HFT) 在当今市场中发挥重要作用,我们的团队还有很多需要探索的内容。如果您有有趣的模型建议,请加入我们的 Discord!

加入我们的社区

加入我们的 Discord 频道,与同行的做市商和套利者交流互动。在 TwitterReddit 上关注我们以获取最新动态和新闻。不要错过我们在 Youtube 频道 上关于做市的内容,包括对专业交易员的访谈。