处理不同市场状况的技巧¶
by Owen Hobbs
在许多方面,市场可以类似于海洋的波浪。两者都有峰值、底部,最终都会回到中点或海平面。一个人应对波浪的方法很大程度上取决于影响它们的天气或市场状况。在本文中,我们将讨论一些 Hummingbot 用户在应对各种市场状况(如区间震荡、上涨趋势和下跌趋势)时可以采用的策略。
区间震荡市场¶
区间震荡,或通常被称为'横盘'市场,是指价格在较高价格和较低价格之间来回波动。这种在低价格和高价格之间的持续波动为做市商提供了绝佳的进入机会,以获取两者之间的价差。区间震荡市场增加了做市商的买价和卖价订单被成交的概率,并且可以反复成交。做市商完成买卖"循环"(低价买入,高价卖出)的次数越多,能够获取的价差和利润就越多。
计算价差¶
作为如何在区间震荡市场生成买价和卖价价差的一个例子,可以简单地测量他们试图捕获的底部区域到顶部区域的差异。默认情况下,hummingbot 将其订单放置在每侧的 mid_price 偏移处,因此我们需要将此数字除以一半以获得平均的 bid_spread 和 ask_spread。
例如,假设我们确定市场在 0.995 和 1.005 之间震荡;因此产生了我们想要捕获的 1%的价差。通过将价差百分比除以一半,我们得到 0.5%;这是我们可以在买价和卖价价差上应用的一般值。由于默认情况下价差作为对 mid_price 的偏移放置,下面的第二张图片说明了这些订单在挂单簿上的样子。
订单层级¶
通过整合更高级的功能,如order_levels和order_level_spread,可以以更宽的价差放置额外订单,以尝试捕获超过第一订单级别的更波动的时刻。order_level_amount参数可以增加或减少第一级别后的后续订单规模。可以根据个人风险承受能力使用。例如,一个人可能愿意在较紧的价差下购买 100 个资产,但愿意在较宽的价差下额外购买 150 个资产,因为这样风险较小。
另一方面,通过减少原始价差并设置 2 个额外的 order_levels,可以实现捕获价差、波动性,并可能增加交易量。不幸的是,这些更紧的价差伴随着增加的风险承受能力。查看示例配置
趋势市场¶
与区间震荡市场类似,趋势市场通常在高低点之间波动。趋势市场的例外在于价格走势在一段时间内要么创造更高的高点,要么创造更低的低点。这使它们被归入上涨趋势或下跌趋势市场这两类之一。
对冲价差¶
由于趋势市场不再测试相同的高低点,在趋势市场中建立 hummingbot 价差往往更加复杂。例如,如果我们在趋势市场中采用同样间隔均匀的价差策略,一边的订单很可能会比另一边更频繁地成交。这可能会限制捕获价差的有效性,对冲库存风险,并且总体上耗费资金。
进一步解释,处于上升趋势的市场往往在卖方压力大于买方压力。如果卖方压力更大,做市商更倾向于继续卖出资产而非补充库存。同时,处于下降趋势的市场往往在买方压力更大,可能增加供应但成交的卖单有限。
因此,如果有人试图在趋势市场中捕捉价差,可以简单地根据该侧的买卖压力来调整价差。例如,如果市场处于上升趋势,可以将卖单的价差设置得比买单更高。由于在上升趋势市场中卖单更有可能被成交,设定更高的卖出价格有助于抵消和缓解这种不平衡。相反的情况则适用于下降趋势条件。
订单延迟¶
默认情况下,订单成交后,Hummingbot 会立即在订单簿上替换订单。这在某些情况下是有用的,但在波动时期,这可能导致库存快速偏向某一边。
增加 filled_order_delay 参数会在订单成交和下一笔订单放置之间设置延迟。通过增加 filled_order_delay 参数,可以降低在某一边成交过多订单的风险。
例如,当前市场处于下降趋势;我们假设我们使用更紧密的价差施加更多卖出压力。如果市场突然开始向上修正,它会迅速成交我们的卖单。
如果启用了 filled_order_delay,这将在每个订单之间设置时间延迟,限制订单数量和增加的库存量。请参见下面代表此场景的示例配置和图片:
不幸的是,对于做市商来说,没有一种可以一键启用的全胜策略。市场在不断改变方向、波动性、订单深度等。因此,未来的和当前的做市商需要继续根据当前的市场状况调整配置。不过目标是,通过足够的经验,人们将获得快速适应不断变化的市场的知识。