跳转至内容

什么是库存风险?

cover

再次向 Hummingbot 社区问好!

今天我们将开始讨论我认为是所有类型交易操作中最重要的因素:风险和风险管理。

正如我们这个时代最大的投资者之一曾经说过的:

"风险来自于不知道自己在做什么。" ~ 沃伦·巴菲特

Source: https://www.azquotes.com/quote/40644

各种金融操作都有不同程度的风险,做市也不例外。

虽然想象和预测未来收益并幻想成为下一个沃伦·巴菲特似乎更令人兴奋,但投资现实中不那么光鲜的部分,也是 arguably 最重要的部分,就是要努力弄清楚可能出现什么问题以及如何减少由此造成的损失。

关于风险和风险管理有很多要讨论的内容,但今天我们将专注于与做市相关的一个主要风险:库存风险。

以下是我们在今天文章中要涵盖的内容:

  • 什么是库存价值?

  • 什么是库存风险?

  • 如何使用 Hummingbot 减轻库存风险

一如既往,欢迎加入我们的 Discord 上的 #trader-chat 与社区讨论如何改进您的做市策略。

什么是库存风险?

作为做市商,您的主要角色是为其他市场参与者提供流动性。

您正在向其他交易者提供服务,向所有人提供买卖资产的服务,同时通过您的买入和卖出报价(低价买入、高价卖出的订单)之间的价差来获得收益。

为了能够提供这项服务,做市商必须持有一定数量的资产作为库存,以便创建订单和进行交易,而这些库存有其相关的价值。

库存价值

任何市场参与者都知道,资产的价格在不断变化,所有交易者都必须有一种方法来跟踪他们是否在盈利。

跟踪表现的一个简单方法是比较交易者拥有的资产总价值。

例如,假设您目前拥有 0.46820424 BTC 和 14.6426 ETH:

第一天库存

在第一天,您的资产当前价值为 $10,000。尽管您实际上并不拥有任何美元,只拥有 BTC 和 ETH,但您有能力以当前市场价格将您的 BTC 和 ETH 兑换为$10,000。

库存价值可能由于市场价格变化而波动,因为资产相对于基准资产的价值可能会发生变化

如果您没有交易(HODL!),在第二天您仍然会拥有与初始投资组合相同的 BTC 和 ETH 数量。

第二天库存

然而,由于这些资产的美元价格发生了变化,库存价值 已降至 $9,761.38。BTC 价值上涨,而 ETH 价值下跌。

库存价值是投资组合中所有持有的资产的当前价值,量化为选定的基准或参考资产(例如美元)。

选择基准参考资产以确定价值因投资者而异。例如,来自美国的投资者可能使用美元,而欧洲的投资者可能选择欧元。这是因为,至少目前,他们的大部分成本(食物、房租)仍以美元(或欧元)计价,而法定货币仍然是他们资产和购买力的基准。

交易中的库存风险

做市商的主要目标是随着时间推移增加其总库存价值。更常见和普遍的投资方法是尝试购买在未来会增值的资产。这种投资是“方向性”投资,购买“便宜”的资产并赌定资产价格最终会上涨。

相比之下,做市商通过获取递增的买卖价差并随着时间积累来试图增加投资组合价值。做市商会不断同时提供买入和卖出资产的报价,其买入价格略低于其卖出价格。如果做市商能够完成一笔买入和卖出,他们就能够获取部分差价,即“买卖价差”。做市商能完成此买卖循环的次数越多,他们能够积累的利润就越多。

正如我在第一篇学院文章中提到的,对做市商来说最理想的情况是价格在无趋势状态下波动:

当价格在区间内交易时,市场做市商的买入和卖出订单被同等频率成交的可能性越大,做市商能够积累递增利润的可能性也越大。

当价格开始向一个方向趋时时麻烦就开始了。

例如,如果价格开始向下趋时,他的买入订单将开始被成交,但卖出订单却不会:

来源:我们的社区成员 @Christian Feldmann

这种情况的后果是,做市商会开始增加正在贬值的资产库存,导致总库存价值随着时间推移而减少。

最终,价格可能会回升到盈利水平,做市商将能够在有利可图的价格卖出其库存。但问题是,如果这种情况持续下去且价格继续下跌,所有做市商库存将被锁定在一边。

在某个时刻,做市商将不得不在停止操作等待更好价格或开始以亏损卖出库存以维持运营之间做出选择。

这类似于零售店经理开始增加库存,以更好的价格从供应商那里购买更多产品,但他的客户对购买他的产品不太感兴趣。

尽管做市商创建了买入和卖出订单,但无法保证两边订单都会被成交。在上面的例子中,买入订单不断被成交,但卖出订单从未成交。这也使做市商面临持有库存量波动的风险。例如,做市商可能积累价值下降的资产;相反,做市商可能最终卖出正在增值的资产。

库存风险是做市商无法为其库存找到买家的概率,导致在恰好错误的时机持有更多资产的风险,例如在价格下跌时积累资产或在价格上涨时过早卖出。

使用 hummingbot 管理库存风险

库存风险是做市的主要风险。这就是为什么 Hummingbot 允许大量策略自定义以减轻库存风险,我们的团队继续在这一方面开发更多功能。

这种灵活性使做市商能够以许多不同方式减轻其运营风险,并做出符合其主要策略的调整。

以下是一些如何控制库存风险的示例:

History 命令

history 命令显示历史交易以及自机器人启动以来总资产数量变化的摘要。

这是一种可视化每边库存变化多少,并与总值进行比较的好方法。

库存偏斜

使用config inventory_skew_enabled,机器人将在每个新订单上更改order_amount,以重新平衡总库存规模。

可以通过命令config inventory_target_base_pct定义库存中每种资产的目标比例,以及使用config inventory_range_multiplier定义库存与此比例的最大偏差程度。

Inventory Image

如上所示,库存中的 BTC 多于 USDT,并且机器人卖出多于买入。

此参数可用作库存保护,例如,如果做市商发现某个方向正在形成趋势:如果 BTC 价格上涨,做市商可以开始积累更多 BTC,将config inventory_target_base_pct设置为 70。

此外,如果交易非美元对(例如 ETH-BTC),这特别有用,交易者可以评估与美元配对的每种资产的价值,并调整库存倾斜,如果你认为其中一种资产未来价值会更高。

Inventory Image

库存倾斜就像一个持续的钟摆平衡行为;一旦交易者积累了更多某种资产,Hummingbot 就会调整订单规模(较小的买入,较大的卖出)以尝试回到目标持有量,反之亦然。

库存倾斜旨在最小化库存金额大幅波动的风险。尝试维持目标比例(如 50%)有助于确保做市商能够继续报价买卖双方并捕获买卖差价。

已成交订单延迟

通过filled_order_delay参数,做市商能够在前一个订单成交后设置机器人创建后续新订单的延迟时间。

例如,当 filled_order_delay = 300 时,机器人创建的订单成交后,下一对订单将在 300 秒后才创建。

这有助于管理价格趋势期间。例如,在下图中,在价格下跌趋势的情况下,一旦订单刷新,买单就会不断成交。

Inventory Image

如果这种情况重复并继续下去,做市商可能会在短短几个订单刷新周期内快速积累大量资产。在上面的示例中,交易者已买入资产 5 次。

通过在已成交订单和下单之间引入延迟,这分散了订单并减少了资产潜在积累,为价格趋势稳定留出一些时间。

Inventory Image

如上所示,由于期间 1 的买单已成交,机器人在期间 2、3 和 4 没有下单。所以在这种下跌价格趋势中,机器人只购买了两次(期间 1 和 5),而如果没有启用已成交订单延迟,机器人会在所有五个期间都购买。

挂单

挂单是一个功能,指示 Hummingbot 将同时创建的买入和相应卖出订单视为一对。如果一侧成交,机器人会保持配对另一侧未成交,为该侧最终成交创造机会和可能性:

Inventory Image

在上面的示例中,期间 1 的买单已成交。但由于启用了挂单模式,在刷新周期(期间 2)期间不会取消期间 1 的原始卖单,而是保持未成交。同时,机器人继续创建新订单的操作(参见期间 2 到 5)。在此示例中,价格改变了方向,最终在某个时间点,挂单卖单在期间 5 左右成交。

这种策略的好处是创造了配对"完成"和平衡的可能性。在上面的示例中,挂单允许交易者最终匹配买入和卖出,同时锁定买卖差价。

Ping Pong

乒乓策略是另一种试图保持买卖平衡的策略。它通过仅在已成交订单的相反方向创建订单来实现。例如:

Inventory Image

由于第 1 期的买单已被成交,机器人停止下买单,只下卖单(第 2-4 期)。只有当卖单最终被成交(第 4 期)时,机器人才会恢复同时创建买卖订单(第 5 期)。

调整单边价差以跟随价格趋势

通常情况下,做市商应用相同的bid_spreadask_spread。这在横盘市场中效果很好,因为价格会在区间内波动,库存自然会趋向于 50/50 的比例,做市商可以从价差中获利。

但如上所述,在趋势市场中这会变得有问题,因为库存可能会开始积累在价值较低的资产一侧。

减轻这种情况的一个选择是在一侧收窄价差,以增加这些订单被优先成交的概率。

示例:

做市商马克在 BTC-USDT 上开始操作时,bid_spread = 0.5,ask_spread = 0.5。但是价格开始上涨,因此他将参数更改为 bid_spread = 0.1 和 ask_spread = 0.9。

这样,他的总价差仍然相同(1%),但他的买入报价现在有更高的机会在卖出报价之前被成交。

脚本

Hummingbot 有一个内置脚本功能,您可以创建自己的自定义策略,机器人将根据您想要的任何策略调整参数。

您只需要了解如何用 Python 编程,创建一个与 Hummingbot 代码库集成的.py 文件,然后通过 config script_enabled 命令激活脚本(您可以在这里找到更多关于脚本的信息。

您甚至可以创建一个复制自动做市逻辑的脚本,就像这位 reddit 用户要求的那样

我们的开发团队正在对脚本模块进行大量改进,因为这是 Hummingbot 用户能够实现自定义策略的主要方式。

总结

如今成为交易员真的很容易。

但成为一名优秀的交易员,那就是另一回事了。

在我研究金融市场的这些年后,我意识到好的交易员与差的交易员之间最主要的区别在于他们对风险了解多少以及如何管理风险。

一个好的策略不仅关乎找到最好的赚钱方式,还关乎当市场与你的计划背道而驰时知道该做什么。

了解与每种交易操作相关的风险对于找到可持续和盈利的策略至关重要。

与做市相关的最大风险是库存风险。了解和学习缓解它的方法应该是任何希望在任何市场上作为做市商运营的人的优先事项。

本文涵盖了关于该主题的解释,以及使用 hummingbot 管理这一风险的一些实用方法,但这确实是一个非常重要的主题,有很多关于它的研究论文,比如应对库存风险:做市问题的解决方案具有不对称信息和库存风险的做市,最终,我们将在不久的将来更多地讨论这个话题。

此外,随着自动做市商协议(如 Uniswap 的流动性池)、流动性挖矿以及与去中心化金融(DeFi)相关的所有事物的近期兴起,如果您打算成为被动做市商,理解这些风险真的很重要。

所以,请关注我们的博客,因为很快我们将发布一篇比较这些协议与传统订单簿做市之间关键差异的文章。

下周见。

加入我们的社区

如果你想了解更多,请确保关注我们的博客更新,每周都有新文章。

在等待下一篇文章的同时,记得加入我们的Discord 服务器,这是我们社区讨论做市套利以及使用 Hummingbot 改进交易策略的所有可能方式的地方。

此外,如果您希望我们在 Hummingbot 学院上讨论任何特定主题,请在 Discord 上联系我们的团队,或发送邮件至 academy @hummingbot.io

很快再见,祝大家交易顺利!

下周见!