第1章:仓位管理模型——等比例仓位、固定金额仓位、马丁格尔策略、反马丁格尔策略
大家好,我是你们的老朋友。今天咱们来聊聊仓位管理。
说实话,我见过太多交易者,技术分析一套一套的,策略回测曲线漂亮得不行。结果一上实盘,三个月就爆仓了。为什么?仓位管理没做好。你想想看,一个胜率60%的策略,如果每次都是全仓干,连续三次亏损就没了80%本金。这谁扛得住?
所以这一章,我打算把四种最经典的仓位模型掰开揉碎了讲清楚。等比例仓位、固定金额仓位、马丁格尔、反马丁格尔。每种我都会给出Python代码,还会聊聊我踩过的坑。
核心观点:仓位管理不是「怎么下注」,而是「怎么活着」。活得久,才能赚得多。
1.1 等比例仓位模型
等比例仓位,说白了就是每次开仓都拿出总资金的一个固定比例。比如你有100万,每次用2%开仓,那就是2万。赚了,总资金变成110万,下次开仓就是2.2万。亏了,总资金变成90万,下次开仓就是1.8万。
这个模型的好处是——自动适应资金规模。资金大了,仓位自然变大;资金小了,仓位自动收缩。我个人习惯用这个模型做趋势跟踪策略,因为它天然带有「截断亏损,让利润奔跑」的属性。
来看代码:
def fixed_ratio_position(capital, ratio=0.02):
"""
等比例仓位计算
:param capital: 当前总资金
:param ratio: 每笔交易风险比例,默认2%
:return: 本次开仓金额
"""
position = capital * ratio
return position
# 示例
capital = 1000000 # 100万
position = fixed_ratio_position(capital, 0.02)
print(f"本次开仓金额: {position:.2f}") # 输出: 20000.00
嗯,这里要注意。比例选多少合适?我个人建议,对于股票或期货,单笔风险不要超过总资金的2%。对于加密货币这种高波动品种,1%都算高的。我曾经见过有人用5%的比例做比特币,结果连续三次止损,本金直接缩水14%。
小技巧:如果你做的是高频交易,可以把比例降到0.5%以下。高频交易拼的是胜率,不是单笔收益。
1.2 固定金额仓位模型
固定金额仓位,就是每次开仓都用一个固定的金额。比如每次都是2万,不管总资金是100万还是200万。这个模型简单粗暴,适合新手入门。
但有个问题——资金增长后,固定金额的相对风险会越来越小。比如你从100万做到200万,每次还是2万,那风险比例就从2%降到了1%。这其实是在浪费资金效率。
反过来,如果资金缩水,固定金额的风险比例会变大。比如从100万亏到50万,每次还是2万,风险比例就变成了4%。这很危险。
def fixed_amount_position(fixed_amount=20000):
"""
固定金额仓位计算
:param fixed_amount: 固定开仓金额
:return: 本次开仓金额
"""
return fixed_amount
# 示例
position = fixed_amount_position(20000)
print(f"本次开仓金额: {position:.2f}") # 输出: 20000.00
我在项目中遇到过一位学员,他用固定金额模型做外汇,每次1000美元。账户从1万做到3万,他还是每次1000美元。我问他为什么不加仓?他说「习惯了」。这就是典型的路径依赖。固定金额模型适合小资金起步,但资金做大后一定要切换到等比例模型。
警告:固定金额仓位在连续亏损时,实际风险比例会急剧上升。建议设置一个「最大亏损次数」阈值,比如连续亏损5次后,强制降低固定金额。
1.3 马丁格尔策略
马丁格尔策略,很多人一听就摇头。其实它没那么可怕,关键看你怎么用。
核心逻辑很简单:每次亏损后,下次加倍下注。直到盈利一次,把之前所有亏损全部赚回来,然后回到初始仓位。
举个例子:第一次亏1000,第二次亏2000,第三次亏4000,第四次盈利8000。总亏损是1000+2000+4000=7000,盈利8000,净赚1000。
听起来很完美对吧?但问题来了——如果连续亏损10次呢?第10次的下注金额是初始的512倍。你有那么多钱吗?
def martingale_position(base_amount, loss_count, max_multiplier=10):
"""
马丁格尔仓位计算
:param base_amount: 基础仓位
:param loss_count: 连续亏损次数
:param max_multiplier: 最大倍数限制,防止爆仓
:return: 本次开仓金额
"""
multiplier = min(2 ** loss_count, max_multiplier)
position = base_amount * multiplier
return position
# 示例
base = 1000
for losses in range(5):
pos = martingale_position(base, losses)
print(f"连续亏损{losses}次后,开仓金额: {pos:.2f}")
我曾经在模拟盘上测试过马丁格尔策略,用欧元兑美元,胜率55%。结果呢?连续7次亏损后,仓位已经变成了初始的128倍。虽然第8次盈利了,但回撤幅度高达40%。
所以我的建议是:马丁格尔策略可以用,但必须加两个限制——最大倍数限制和最大亏损次数限制。比如最多翻10倍,连续亏损5次就停止。
核心要点:马丁格尔策略的本质是「用资金换胜率」。它适合高胜率、低盈亏比的策略,比如网格交易。
1.4 反马丁格尔策略
反马丁格尔,就是马丁格尔的反面。每次盈利后加仓,每次亏损后减仓。说白了就是「顺势加仓,逆势减仓」。
这个策略的逻辑很符合人性——赚钱了,说明方向对了,那就多投点。亏钱了,说明方向错了,那就少投点。但问题也在这里:如果遇到一波大趋势,你会赚得盆满钵满。但如果遇到震荡行情,你会反复止损,慢慢亏光。
def anti_martingale_position(base_amount, win_count, max_multiplier=5):
"""
反马丁格尔仓位计算
:param base_amount: 基础仓位
:param win_count: 连续盈利次数
:param max_multiplier: 最大倍数限制
:return: 本次开仓金额
"""
multiplier = min(2 ** win_count, max_multiplier)
position = base_amount * multiplier
return position
# 示例
base = 1000
for wins in range(5):
pos = anti_martingale_position(base, wins)
print(f"连续盈利{wins}次后,开仓金额: {pos:.2f}")
我个人比较喜欢反马丁格尔策略。为什么?因为它符合「截断亏损,让利润奔跑」的原则。但要注意,这个策略对入场信号的精度要求很高。如果你经常被假突破骗进去,那反马丁格尔会让你亏得很快。
避坑指南:我曾经用反马丁格尔做A股趋势跟踪,结果遇到2015年股灾,连续熔断。虽然策略本身没问题,但流动性枯竭导致无法及时减仓。所以,反马丁格尔一定要配合止损和流动性管理。
1.5 四种模型对比
好了,四种模型都讲完了。咱们来做个对比,方便你选择适合自己的。
| 模型 | 核心逻辑 | 适合场景 | 最大风险 | 我的评分 |
|---|---|---|---|---|
| 等比例仓位 | 固定比例开仓 | 趋势跟踪、长线投资 | 回撤可控 | ⭐⭐⭐⭐⭐ |
| 固定金额仓位 | 固定金额开仓 | 新手入门、小资金 | 资金缩水后风险放大 | ⭐⭐⭐ |
| 马丁格尔 | 亏损后加倍 | 高胜率策略、网格交易 | 连续亏损导致爆仓 | ⭐⭐ |
| 反马丁格尔 | 盈利后加仓 | 趋势策略、高盈亏比 | 震荡行情反复止损 | ⭐⭐⭐⭐ |
你想想看,如果你是做趋势跟踪的,等比例仓位和反马丁格尔都是不错的选择。如果你是做高频的,固定金额可能更简单。至于马丁格尔,除非你有无限资金,否则我建议谨慎使用。
1.6 知识体系图
下面这张图,是我自己整理的仓位管理知识体系。你可以把它当作一个「决策地图」来用。
这张图把四种模型的核心逻辑和适用场景都标出来了。你可以把它当作一个快速参考。每次开仓前,问自己一句:我现在用的是哪种模型?它适合当前的市场环境吗?
1.7 我的建议
说了这么多,最后给点实在的建议。
- 如果你是新手:先从固定金额仓位开始,熟悉交易流程。等资金做到一定规模,再切换到等比例仓位。
- 如果你是趋势交易者:等比例仓位 + 反马丁格尔加仓,这是黄金组合。
- 如果你是网格交易者:马丁格尔可以用,但一定要设最大倍数和最大亏损次数。
- 无论你是谁:永远不要用马丁格尔做趋势策略。我见过太多人这么干,结果都是爆仓。
最后一句:仓位管理不是数学题,是生存哲学。你不需要最完美的模型,你需要的是能坚持执行的模型。
公众号:蓝海资料掘金营,微信deep3321