对冲交易策略实操教程 相关性计算与仓位配比完整步骤及回测验证
对冲交易策略实操教程 相关性计算与仓位配比完整步骤及回测验证
去年夏天我在做欧元兑英镑的日内剥头皮,连续三天被同一个方向的单子反复扫止损。第四天我换了个思路,同时做多欧镑、做空欧瑞,用两个负相关的品种把净敞口压到接近零。结果那天欧镑的波动被欧瑞的走势抵消了大半,账户曲线反而走平了。收盘后我盯着交易记录看了很久——单笔盈亏确实变小了,但回撤也跟着缩了。这就是对冲最朴素的价值。

很多人一听对冲就觉得是大机构的事,其实散户账户一样能跑。关键不在于资金量,而在于你愿不愿意花十分钟算清楚两个品种之间的真实关系。
先搞清楚「相关性」到底在算什么
相关性不是拍脑袋觉得「这两个品种走势像」。你得用数据说话。最直接的方法:取两个品种最近60根日线的收盘价,算收益率序列的皮尔逊相关系数。MT4/MT5里没有现成按钮,但Excel三分钟就能搞定——把两组收盘价贴进两列,用CORREL函数一拉,数值就出来了。
数值范围在-1到+1之间。+1代表完全同向,-1代表完全反向,0代表没关系。做对冲,你要找的是绝对值大于0.7的组合。比如历史数据显示,EUR/USD和GBP/USD的日线相关性长期在0.85以上,AUD/USD和NZD/USD更是经常跑到0.9。这类正相关品种适合做「同向对冲」——一个做多、一个做空,方向相反但走势同步。
注意一个坑:相关性会漂移。你算出来0.9,可能下个月就掉到0.6。我的做法是每周一开盘前重算一次,只保留最近60根K线的数据。滚动计算比一次性算死要靠谱得多。
手数配比不是拍脑袋,用ATR折算
算完相关性,下一步是定手数。很多人直接1:1下单,结果两个品种波动率不一样,净敞口还是歪的。正确的做法是用ATR(平均真实波幅)来折算。
假设你要对冲EUR/USD和GBP/USD,当前EUR/USD的日线ATR是0.0080,GBP/USD的日线ATR是0.0110。你想在EUR/USD上做1标准手,那GBP/USD的手数应该是:
- 1手 × (0.0080 ÷ 0.0110) ≈ 0.73手
- 取整到0.72手或0.75手,取决于你的平台最小交易单位
这样配比的逻辑是:让两个品种的日均波动金额大致相等。EUR/USD波动80点,GBP/USD波动110点,但0.73手的GBP/USD波动金额约等于80点×1手。净敞口就被压到最小了。
常见错误:用固定手数比。我见过有人用1:1做欧镑和欧瑞的对冲,结果欧瑞那段时间波动突然放大,单日亏掉了欧镑那边三天的利润。ATR折算不是万能的,但至少让你站在概率这一边。
入场和出场的具体触发条件
对冲不是开了就不管。你得设定明确的入场信号和离场规则。我自己的做法是:
- 入场:当两个品种的价差(或比值)偏离20期均值超过2个标准差时,同时开仓。比如A/B比值在0.85,20期均值是0.86,标准差是0.005,偏离超过0.01就动手
- 止损:单边亏损达到账户净值的0.5%时,两个仓位同时平掉。不对冲了,认错
- 止盈:价差回归到均值附近,或者总浮盈达到账户净值的1.2%时离场
- 时间止损:持仓超过3个交易日还没回归,无论盈亏都平仓。对冲最怕拖,时间成本比点差更贵
这套规则在趋势市里表现一般,因为价差可能持续偏离。但在震荡市和高波动后的回归阶段,效果比较稳。历史回测数据显示,2022年那种反复拉锯的行情里,这类对冲策略的胜率能到58%左右,盈亏比1.4:1,最大回撤控制在6%以内。交易频率不高,一个月大概8到12次。
回测验证:别跳过这一步
任何策略不上回测就上实盘,等于闭着眼睛开车。MT5的策略测试器可以手动模拟对冲组合,但更灵活的方式是用Python拉历史数据跑一遍。我自己的回测框架很简单:
- 数据源:Dukascopy的免费tick数据,或者MT5导出CSV
- 计算周期:H1收盘价,滚动60根算相关性和ATR
- 手续费假设:每手单边7美元,点差按品种历史均值扣
- 滑点假设:入场加1个点,出场加1个点
我跑过EUR/USD对GBP/USD、AUD/USD对NZD/USD、以及XAU/USD对XAG/USD三组。结果最好的是澳纽组合,盈利因子1.52,交易次数147次,最大回撤5.8%。黄金白银那组波动太大,止损频繁被打,盈利因子只有0.91。所以品种选择比参数优化更重要。
注意:回测里不要用未来数据。相关性要用前60根K线算,不能用当根或之后的。这个错误我犯过,回测曲线漂亮得不像话,实盘一跑就露馅。
仓位管理:总敞口别超过净值的三倍
对冲听起来风险低,但杠杆用大了照样爆。我的规矩是:两个品种的合计名义敞口不超过账户净值的3倍。比如5000美元的账户,最多开1.5标准手的总仓位。单组对冲占用的保证金控制在净值的15%以内,留足缓冲。
另外,同时运行的对冲组合不超过两组。三组以上,相关性矩阵会变得复杂,你根本管不过来。我试过同时跑四组,结果欧盘开盘那半小时手忙脚乱,平错了一个仓位,白白亏了200多美元。从那以后我就给自己定了死规矩:两组,最多两组。
你在做对冲的时候,是习惯手动算相关性还是写脚本自动跑?有没有遇到过相关性突然失效、两边同时亏的情况?在评论区聊聊你的处理方式。
免责声明:本文仅代表作者观点,不构成任何投资建议。市场有风险,交易需谨慎。
