4、动态仓位调整:根据市场波动率(如ATR)动态调整单笔做市仓位大小
做市这行,最怕什么?
怕行情突然暴走,你还在按老规矩挂单。一单下去,直接穿仓。
我早年吃过这个亏。2018年BTC闪崩那会儿,我按固定仓位做市,结果波动率瞬间翻了三倍,单笔亏损直接吃掉了我一周的利润。从那以后,我养成了一个习惯——仓位必须跟着波动率走。
为什么波动率决定仓位大小?
说白了,波动率就是市场的「脾气」。
脾气好的时候,价格慢慢晃,你挂单风险小。脾气爆的时候,一根大阳线或大阴线,直接把你挂单吃掉。你想想看,同样的仓位,在低波动环境里可能只亏0.1%,在高波动环境里可能亏1%。
所以,波动率越高,单笔仓位就应该越小。这不是什么高深理论,这是生存法则。
核心原则:
- 波动率 × 仓位 = 风险敞口(这个值应该保持恒定)
- ATR越高,单笔挂单量越小
- ATR越低,单笔挂单量可以适当放大
ATR:我最常用的波动率指标
ATR(Average True Range)就是平均真实波幅。它不告诉你方向,只告诉你波动有多大。
我个人习惯用14周期的ATR。为什么是14?其实没什么玄学,就是行业默认值,用顺手了。
| 市场状态 | ATR值(相对) | 建议仓位调整 |
|---|---|---|
| 低波动 | ATR < 20日均值×0.7 | 仓位×1.2 ~ 1.5 |
| 正常波动 | ATR在均值±20%内 | 仓位不变 |
| 高波动 | ATR > 20日均值×1.3 | 仓位×0.5 ~ 0.7 |
| 极端波动 | ATR > 20日均值×2.0 | 暂停做市或仓位×0.2 |
我的经验:
别死盯着ATR的绝对值。不同币种、不同时间框架的ATR差异很大。我一般用ATR与20日均值的比值来做判断,这样更稳定。
动态仓位计算公式
这里给出一套我实际在用的公式。不复杂,但很实用。
# 基础参数
base_position = 1000 # 基础仓位(USDT等值)
atr_current = get_atr(symbol, period=14) # 当前ATR
atr_ma20 = sma(atr_current, period=20) # ATR的20日均值
# 波动率系数
volatility_ratio = atr_ma20 / atr_current
# 限制波动率系数的范围,防止极端值
volatility_ratio = max(0.3, min(3.0, volatility_ratio))
# 动态仓位
dynamic_position = base_position * volatility_ratio
# 最终仓位(还要考虑账户总资金限制)
max_position = account_equity * 0.02 # 单笔最大不超过总资金的2%
final_position = min(dynamic_position, max_position)
print(f"当前ATR: {atr_current:.2f}, ATR均值: {atr_ma20:.2f}")
print(f"波动率系数: {volatility_ratio:.2f}")
print(f"建议仓位: {final_position:.2f} USDT")
你看,逻辑其实很简单:ATR越高,分母越大,系数越小,仓位越小。
注意:
我曾经犯过一个错误——把波动率系数设成无限制。结果有一次ATR突然降到极低,系数飙到5倍,我差点把整个账户都挂进去了。所以一定要加上下限,这是保命用的。
做市场景下的特殊处理
做市和普通交易不一样。我们不是单方向开仓,而是双边挂单。
所以动态仓位调整要分两层:
- 总风险敞口:根据ATR调整双边挂单的总价值
- 单边挂单量:在总敞口内,分配买单和卖单的量
举个例子:
假设基础双边总敞口是10,000 USDT。ATR显示波动率偏高,系数0.6。那么总敞口降到6,000 USDT。买单和卖单各挂3,000 USDT。
如果波动率继续升高,我可能会把买单和卖单的比例也调一下——比如偏向某一侧。但这属于更高级的玩法了,今天先不展开。
SVG流程图:动态仓位调整逻辑
实战中的几个坑
嗯,这里要注意几个容易翻车的地方。
- ATR滞后性:ATR是历史数据算出来的。波动率突然飙升时,ATR还没跟上。我一般会加一个「波动率突变检测」——如果价格变动超过前一根K线的3倍ATR,立即减仓,不等ATR更新。
- 不同时间框架:做市一般看1分钟或5分钟ATR。但别忘了看一眼15分钟和1小时的ATR,防止大周期波动把小周期带崩。
- 流动性陷阱:有些小币种ATR很低,但流动性也差。这时候按公式算出来的仓位可能偏大,但实际根本挂不出去。我一般会再加一个「最大挂单量 = 最近1分钟平均成交量 × 5%」的限制。
一个小技巧:
我习惯在交易系统里加一个「波动率仪表盘」。实时显示当前ATR、均值、系数,以及建议仓位。颜色编码——绿色正常、黄色警告、红色危险。这样一眼就能看出该不该动手。
总结一下
动态仓位调整,说白了就是一句话:看菜吃饭,量体裁衣。
市场波动大,你就缩一缩。市场平静,你可以适当放大。别跟市场较劲,它脾气不好的时候,你躲远点就是了。
我见过太多人,明明波动率已经爆表了,还在那里按固定仓位猛干。结果呢?一波带走。做市不是比谁赚得快,是比谁活得久。