仓位管理:单品种仓位限制、总仓位限制、杠杆倍数控制

仓位管理这东西,说白了就是给资金上“紧箍咒”。

我见过太多做市商,策略回测漂亮得很,一上线就爆仓。为什么?仓位没管住。你想想看,做市商赚的是微薄的价差和返佣,一次黑天鹅就能把几个月的利润全吞掉。所以,仓位管理不是“要不要做”的问题,而是“怎么做得更细”的问题。

单品种仓位限制:别把鸡蛋放在一个篮子里

单品种仓位限制,是最基础的一道防线。我习惯把它拆成两个维度:绝对限制相对限制

  • 绝对限制:每个品种最多能开多少张合约,或者多少名义本金。比如,BTC永续合约最多开100张,ETH最多开500张。这个数值是硬上限,谁都不能超。
  • 相对限制:单品种占用资金不能超过总资金的某个比例。我个人习惯设15%-20%。如果总资金100万,那单个品种最多占用20万。

核心逻辑:单品种限制是为了防止“一个品种崩了,整个账户跟着崩”。

我在项目中遇到过一件事。有个同事做ETH-USDT的做市,觉得行情稳,把仓位干到了总资金的40%。结果ETH一天跌了12%,他的账户直接触发强平线。后来复盘,如果当时设了15%的单品种限制,根本不会出这种事。

我的建议:单品种限制要动态调整。流动性好的品种(比如BTC、ETH),限制可以稍微松一点;流动性差的品种(比如一些小币种),限制要严。我曾经把某个山寨币的仓位限制设在5%,结果那币一天跌了30%,还好只亏了总资金的1.5%。

总仓位限制:给整个账户上“天花板”

总仓位限制,就是所有品种加起来,最多能占用多少资金。这个指标比单品种限制更宏观。

我常用的公式很简单:

总仓位限制 = 总资金 × 最大仓位比例

这个比例怎么定?看你的风险偏好和策略类型。

策略类型 建议最大仓位比例 说明
保守型做市 30% - 50% 主要赚返佣,价差波动小
激进型做市 60% - 80% 吃价差为主,风险敞口大
混合策略 40% - 60% 兼顾返佣和价差

嗯,这里要注意:总仓位限制不是一成不变的。市场波动率上升时,我会主动降低总仓位。比如VIX指数飙升的时候,我习惯把总仓位从60%降到40%。

避坑指南:我曾经犯过一个错——总仓位限制只设了比例,没设绝对值。结果资金从100万涨到500万,60%的仓位就是300万,风险敞口大了3倍。后来我加了绝对值限制:总仓位最多不超过200万。比例和绝对值,两个都要设。

杠杆倍数控制:别让杠杆成为“催命符”

杠杆倍数,是仓位管理的放大器。做市商一般用3-5倍杠杆,我见过有人用10倍甚至20倍。说实话,没必要。

为什么?做市商的利润来源是价差和返佣,不是方向性赌注。你用高杠杆,稍微一个波动就爆仓,还怎么做市?

我个人的经验是:

  • 主流币做市:杠杆倍数控制在3倍以内。BTC、ETH波动大,3倍已经够用了。
  • 稳定币做市:可以放宽到5倍。USDT、USDC这些波动小,但也要注意脱钩风险。
  • 小币种做市:杠杆倍数不超过2倍。流动性差,滑点大,高杠杆就是找死。

核心公式:实际杠杆 = 总名义仓位 / 总资金。比如你有100万资金,开了300万的仓位,实际杠杆就是3倍。

我记得有一次,一个团队用5倍杠杆做ETH做市,结果ETH一天内插针10%。他们的仓位直接爆了一半。后来他们改成3倍杠杆,同样的行情,账户只回撤了5%。你想想看,差别有多大。

我的习惯:杠杆倍数要和止损挂钩。比如3倍杠杆,止损设在3%-5%。如果杠杆提到5倍,止损就要缩到2%-3%。杠杆越高,容错空间越小。

三者如何联动?

单品种限制、总仓位限制、杠杆倍数,这三者不是孤立的。它们是一个整体。

我画了一张图,帮你理解它们的关系:

仓位管理三要素联动关系 总资金(100万) 总仓位限制:60%(60万) 单品种限制:15%(15万) 杠杆倍数:3倍 最大名义仓位:60万 × 3倍 = 180万

从这张图你能看出来:总资金决定了总仓位上限,总仓位上限又限制了单品种的规模,而杠杆倍数则把名义仓位放大。三者缺一不可。

我习惯在系统里写一个检查函数,每次下单前都跑一遍:

def check_position_limits(symbol, order_qty, current_positions, total_equity):
    # 1. 检查单品种限制
    single_limit = total_equity * 0.15  # 15%
    if order_qty * current_price > single_limit:
        return False, "单品种仓位超限"
    
    # 2. 检查总仓位限制
    total_limit = total_equity * 0.60  # 60%
    total_used = sum(pos['qty'] * pos['price'] for pos in current_positions)
    if total_used + order_qty * current_price > total_limit:
        return False, "总仓位超限"
    
    # 3. 检查杠杆倍数
    leverage = (total_used + order_qty * current_price) / total_equity
    if leverage > 3.0:
        return False, "杠杆倍数超限"
    
    return True, "通过"

注意:这个检查函数要放在交易系统的最前端,任何下单指令都必须经过它。我曾经见过有人把检查放在下单之后,结果仓位超了才报警——那还有什么用?

总结一下

仓位管理,说白了就是三件事:

  • 单品种限制:防止一个品种拖垮整个账户
  • 总仓位限制:控制整体风险敞口
  • 杠杆倍数:别让杠杆放大风险

这三件事做好了,你的做市商系统至少能扛住80%的极端行情。剩下的20%,靠的是止损和应急预案——那是下一章的内容了。

记住:仓位管理不是为了赚更多钱,而是为了活得久。做市商这个行业,活得久比赚得快重要得多。

专注资料整理