信号过滤与风控:虚假信号识别与仓位管理
做跨市场套利,最怕什么?
不是行情判断错了,而是信号出来了,你冲进去,结果发现是假信号。我早年吃过这个亏,有一次在股指期货和ETF之间做套利,系统哐哐哐出了三个信号,我全仓杀入,结果呢?滑点吃掉了我所有利润,还倒亏。从那以后,我就在信号过滤和风控上下了狠功夫。
这一章,咱们就聊聊怎么把那些「看起来很美」的假信号筛掉,以及怎么管住自己的手和仓位。
虚假信号的三大元凶
虚假信号不是凭空产生的。我总结下来,主要有三个来源:
- 滑点:你看到的价差,和你实际成交的价差,不是一回事。尤其在流动性差的市场,滑点能让你怀疑人生。
- 网络延迟:你的数据比别人晚到100毫秒,等你看到信号,别人已经吃完了。你进去就是接盘的。
- 数据噪声:市场报价本身就有抖动,尤其是高频数据,一秒钟跳好几次,很多信号其实是随机波动。
怎么识别?我个人的习惯是,先做一层「信号可信度打分」。比如:
| 信号来源 | 滑点风险 | 延迟风险 | 可信度 |
|---|---|---|---|
| 同一交易所内跨品种 | 低 | 低 | 高 |
| 跨交易所同品种 | 中 | 高 | 中 |
| 跨市场跨品种 | 高 | 高 | 低 |
说白了,信号可信度越低,你的过滤就要越严格。
最小交易量过滤:别为了几块钱折腾
我见过有人设置套利策略,价差只要超过0.01个点就开仓。结果一天交易几百次,手续费和滑点加起来比利润还多。
所以,我建议加一个最小交易量过滤。什么意思?就是信号出来了,你先算一笔账:
def should_trade(signal, min_profit=0.02):
# 预估滑点成本
slippage_cost = signal.expected_slippage * 2 # 开仓+平仓
# 手续费
commission = signal.commission * 2
# 总成本
total_cost = slippage_cost + commission
# 净收益
net_profit = signal.expected_profit - total_cost
if net_profit < min_profit:
return False # 不划算,放弃
return True
嗯,这里要注意:min_profit 不是固定值。流动性好的市场可以设小一点,流动性差的市场要设大一点。我在做商品期货跨期套利时,这个值通常设在0.05%左右。
最大回撤控制:别让一次亏损毁掉所有
做套利的人容易有个错觉,觉得套利风险低,所以仓位放得很大。其实不然。跨市场套利最大的风险不是方向做反,而是价差长时间不回归。
我曾经遇到过一次,两个品种的价差偏离了正常范围,我按历史规律开仓了。结果呢?价差继续扩大,连续三天都没回来。那三天我账面浮亏了20%。虽然最后回来了,但那种煎熬,我不想再经历第二次。
所以,我现在的策略是:
- 单笔最大亏损:不超过总资金的1%
- 单日最大回撤:达到3%就停止交易,当天不再开新仓
- 连续亏损次数:连续3次亏损后,暂停交易,检查策略
这些参数怎么设?我建议用历史数据回测一下,看看最差情况下的回撤是多少,然后打个折扣。
仓位管理:别一把梭哈
仓位管理说白了就是:信号来了,你下多少手?
我见过两种极端:一种是信号一来就满仓干,另一种是信号来了只敢下1手。都不对。
我个人习惯用凯利公式的变体来做仓位管理。但凯利公式有个问题,它假设你知道胜率和赔率。实际交易中,这两个参数是动态变化的。
所以,我做了个简化版:
def position_size(signal, account_value, risk_per_trade=0.01):
# 基于信号强度分配仓位
signal_strength = signal.z_score # 用z-score衡量偏离程度
base_size = account_value * risk_per_trade
# 信号越强,仓位越大,但有上限
if signal_strength > 3.0:
multiplier = 1.0
elif signal_strength > 2.0:
multiplier = 0.7
elif signal_strength > 1.5:
multiplier = 0.4
else:
multiplier = 0.2
return base_size * multiplier
你想想看,这样做的好处是什么?信号弱的时候你只试仓,信号强的时候才加码。既不会错过机会,也不会一把亏光。
核心原则:仓位管理不是让你赚更多,而是让你活更久。
一个完整的过滤流程
把这些东西串起来,我画了个流程图,你看看就明白了:
小技巧:我建议把过滤逻辑做成可配置的。不同市场、不同品种,参数不一样。比如做股指期货套利,滑点容忍度可以设小一点;做商品期货跨品种套利,就要设大一点。
注意:过滤不是越严格越好。过滤太严,你会错过很多真实信号。我见过有人把过滤设得特别严,结果一年下来没做几笔交易,策略直接废了。找到那个平衡点,才是关键。
好了,这一章的内容就这些。信号过滤和风控,说白了就是用规则管住自己的贪婪和恐惧。你把这些规则写进代码里,让机器去执行,比你自己拍脑袋强得多。
公众号:蓝海资料掘金营,微信deep3321