Skip to content

68%胜率、收益翻两番的TradingView太空概念策略,为什么我不敢直接上实盘?

作 者:老余捞鱼

原创不易,转载请标明出处及原作者。

文中示例仅用于技术讨论,不构成任何操作建议。
量化策略开发应以学习和技术交流为目的。
本号不荐股、不卖课、不承诺收益。
市场有风险,请合法合规投资。

本文约 3000 字 | 预计阅读 5-8 分钟,后有代码下载,建议先收藏。

· · ·

前阵子逛 TradingView 的脚本市场,看到一个指标名叫 “TraderLifestyle Space Concept Pro”,太空概念,名字挺唬人。

逻辑倒不复杂。它看三样东西:价格、20 周期简单移动平均线(20 SMA)、200 周期简单移动平均线(200 SMA)。关键变量是这三者之间的“间距”。

趋势强的时候,价格远远甩开 200 SMA,间距拉大。横盘震荡的时候,三者拧在一起,间距压到极小。

指标把这个间距量化成 “Spread Rank”。本质很简单:当前间距在过去 100 个周期里排第几。数字高说明间距宽,数字低说明间距窄。

▲ K线主图上的买卖信号(绿三角=买、红倒三角=卖)与 Spread Rank 副图

它产两种信号:

第一种是突破信号。Spread Rank 掉到多个月低点,间距被压缩到极致之后,一根大区间 K 线把价格踹出这个紧窄范围。逻辑跟弹簧一样:压到底的时候,弹出来的第一下力道最足。

第二种是反转信号。Spread Rank 冲到多个月极端值,价格远远偏离均线之后,第一次出现拐头迹象。逻辑同样直白:弹簧拉太长,回弹是大概率事件。

仓位管理也不复杂。先止盈 50%,剩下的挂逐 K 线跟踪止损。原版指标还有个追加规则:盈利仓位首次出现延续信号时加码。但规则没说加多少,回测里只记录事件,不调仓位。这个缺口后面会细说。

我干了一件自己常做的事:把这套主观逻辑一字不改地翻成 Python 代码,用 PSEC(Prospect Capital Corporation,一家 BDC 公司)跑了 22 年的日线回测。

借这篇文章,把策略逻辑、数据和四个问题一起拆给你看。

一、回测逻辑

好,逻辑说完了,上数据。我设置的参数可以用“老实”来形容:

  • 标的:PSEC,2004 年 7 月到 2026 年 7 月
  • K 线:日线
  • 初始资金:10 万美元
  • 佣金:0.1%,滑点:0.2%
  • 执行方式:当日收盘确认信号,次日开盘成交
  • 交易总笔数:102 笔,横跨约 22 年

我没有事后挑标的,PSEC是从一批扫描结果里选出来的,选它纯粹因为交易笔数够多,能讲出点统计意义。不是因为它跑得最好。

如果是事后挑跑得最漂亮的那只票看图说话,谁都会。

二、回测数据

回测跑完,完整绩效数据长这样:

▲ 完整回测绩效指标一览
回测区间2004.7 ~ 2026.7(5529天)终值$312,379
总收益率212.38%持有不动基准收益85.56%
胜率68.32%总交易数102笔
盈利因子1.58期望值$2,126/笔
平均盈利交易+9.05%平均亏损交易-5.19%
平均盈利持仓62.5天平均亏损持仓18.9天
最佳单笔+86.58%最差单笔-11.89%
最大回撤-50.75%回撤恢复时间1512天(4.1年)
夏普比率0.40Calmar比率0.15
Sortino比率0.59Omega比率1.10
▲ 上:权益曲线(紫色线)与回撤区域(红色阴影);下:逐笔交易盈亏散点图

先看好的一面。

相对持有不动跑出了 2.5 倍的超额收益,三分之二以上的交易赚钱。盈亏比接近 1.8:1,平均一笔赚 9% 亏 5%。一个主观看图工具,从没被设计来跑回测,能交出这种数据,已经有点意外了。

同期买入持有PSEC的收益是85.56%,策略跑出了2.5倍超额。

但真正该盯着看的,在下面。

三、四个让人冷静的理由


第一,回撤太深,也太久。

50.75% 的回撤不是小波动。投 10 万,最惨的时候净值剩不到 5 万。而且在水下泡了四年多才浮起来。

这不是数学问题而是人性问题,回测里的收益率是机器跑出来的。真实世界里的交易者,没人能在亏了两年、亏了 40% 的时候心平气和地告诉自己:策略还没失效。绝大多数人会在谷底割掉,然后眼睁睁看着曲线反弹。

一个策略的回测收益如果来自一段没有活人能扛过去的回撤期,那个收益数字就跟彩票中奖者聊自己的“选号策略”差不多。统计学上存在,现实里不可复制。

第二,夏普和 Calmar 不怎么样。

夏普 0.40、Calmar 0.15,到底是什么水平?

夏普衡量每承担一单位波动换来的超额收益。0.40 不算差到离谱,但离系统性的稳定优势还远。经验上看,夏普过 0.5 才值得多看两眼,过 1.0 才算真正的强优势。0.40 的意思很简单:收益率里的噪音跟信号差不多一样多。

Calmar 0.15 更直观。它等于年化收益除以最大回撤。你冒了亏一半本金的风险,每年就多赚了那么点。任何正经的配置框架都不会让这种风险回报比通过。

这两个数字放在一起说的话很明确:策略确实在这个窗口、这只票上赚到了钱。但赚的过程充满了波动和不确定性。优势和噪音的边界是模糊的。

第三,一只票加一段历史,什么都说不清。

PSEC 自己历史上经历了 2008-2009 的大崩盘、2020 年后的修复行情。任何策略在经历过这些特定事件的标的上跑出好成绩,都有可能是命运的巧合,不是逻辑的必然。

一次回测跑出一条漂亮曲线,不叫发现了规律。叫获得了一个需要进一步验证的猜想。两者的区别,是爱好者跟从业者的那条分界线。

第四,原版指标的追加规则被故意跳过了。

Space Concept Pro 的原始脚本里有个追加逻辑:盈利仓位首次出现延续信号时触发加码。但脚本没写加多少。

我选择不给它编数字。只记录事件,不动仓位。

实盘用这个指标的人大概率会执行追加。意味着真实的权益曲线会比回测显示得更颠簸。回测里勉强能接受的那段回撤,加了仓之后可能是另一条更陡的曲线。

四、碰实盘之前,建议至少做五件事

针对上面四个理由,我设计了五项验证:

  1. 全多标的扫描。一只票上的优势,换十只票可能消失。需要跑一个完整的标的池:同行业、跨行业、大盘、小盘。看这个逻辑的优势是广泛分布的,还是只出现在极少数名字上。20 只票里只在 2 只上有效,那基本是运气。
  2. 滚动前向验证。22 年回测里跑得好的参数,可能是对这 22 年特定路径做了过度拟合。正确做法是锁定参数,12 个月训练,接下来 6 个月验证,逐年滚动。看样本外表现还能不能站住。参数在样本内越精细,在样本外越容易塌。
  3. 蒙特卡罗重采样。102 笔交易的顺序换一下会怎样?212% 的收益有多少来自信号质量,有多少来自这 102 笔交易恰好按有利的顺序发生了?把交易序列随机打乱一万次,看收益分布的形态。如果重采样的中位数收益率大幅低于原始序列,答案就很清楚了。
  4. 追加行为真实核算。原版指标的追加逻辑必须建模。哪怕假设每次追加固定比例(比如初始仓位的 50%),至少要搞清楚这个行为对权益曲线的影响方向和量级。故意跳过一个真实存在的规则,回测结果就没有现实意义。
  5. 跨市场机制的压力测试。2008 年式高波动熊市、2020 年 3 月流动性急跌、一段真正多年的横盘市。策略在这三种环境下分别表现如何?只在趋势市中赚钱、横盘市连续亏钱的策略,必须搭市场机制过滤器才能考虑上线。不搭的话,回测里的曲线到了实盘会被横盘吃光。

五、回测的正确姿势

Space Concept 这个案例让我想起一个反复出现的模式。

交易社区里最流行的一类内容就是:“我发现了一个胜率 XX% 的指标”。贴一张 K 线图,画几条线,标几个买卖点,然后说:你看全对。

这种东西传播性极强。信号清晰,结果明确,给人一种“我也能做到”的感觉。

但真正的回测,目的不是找证据证明策略有效。是找证据证明它无效。

把策略逻辑写成代码,严格设定滑点和执行延迟,用尽可能多的标的数据去跑。然后盯着回撤深度和恢复时间,盯着夏普和 Calmar,盯着样本外表现。在所有角度都试过证伪它之后,它还能站住,那个优势才值得认真对待。

Colab地址:

https://colab.research.google.com/drive/1PiXtE_37Qokmmc6qs0nhROds9ieoH1ek

代码下载地址:

http://www.laoyulaoyu.com/code/SpaceCPro.zip

Space Concept 本身好不好用不是重点,重点是这套验证框架是通用的:无论你对哪个指标、哪只票做回测,方法论是一样的。

这才是量化策略该有的样子。


#TradingView指标 #量化回测 #策略验证 #SpaceConcept #夏普比率 #最大回撤 #Python回测 #PSEC #交易系统 #蒙特卡罗

Published inAI&Invest专栏

Be First to Comment

    发表回复