大数跨境
0
0

漩涡指标(The Vortex Indicator)及利用它进行交易系统设计

漩涡指标(The Vortex Indicator)及利用它进行交易系统设计 我爱程序化
2025-10-02
3
导读:寻找一个可靠的技术指标来交易市场方向的变化似乎是一个永无止境的追求。理想情况下,这样的指标应该是准时的;既不滞后于市场,也不过于敏感。

寻找一个可靠的技术指标来交易市场方向的变化似乎是一个永无止境的追求。理想情况下,这样的指标应该是准时的;既不滞后于市场,也不过于敏感。涡旋指标是作为一种新的方向运动指标开发的,部分灵感来自 J. Welles Wilder 的方向运动指标。它是一个简单而有效的指标,可用于开发引人入胜的交易理念。

在对技术工具进行深入研究后,我们得出结论,定向移动指标(DMI)的概念是识别市场趋势方向或重大价格变动的最准确方法。威尔斯-怀尔德(J. Welles Wilder)在 1978 年出版的经典著作《技术交易系统新概念》(New Concepts In Technical Trading Systems)中对 DMI 概念进行了最佳定义和描述。他的工作成果就是现在著名且高效的指标,这也是我们漩涡指标诞生的灵感来源。

为了更好地理解涡旋指标,我们必须描述方向性运动。其原理是,价格柱之间的个别关系提供了趋势或市场方向的线索。怀尔德是这样总结的 “方向性运动是今天的范围中超出昨天范围的最大部分"。

正方向运动是指价格柱高于前一根价格柱高点的部分。负向波动是指价格柱中低于前一低点的部分。这两个数值中较小的数值为零。较大的数值用来表示市场是向上(正向)还是向下(负向)移动。如果是内部柱形图(如果最高点和最低点都不高于或低于前一个柱形图),则正方向和负方向都赋值为零。

结果将是一串看似随机的连续零值或正数,被放置在两列中,分别分配给正向和负向运动。但是,如果在 14、21 或 55 个周期后将这两串数字相加,较大的数值会显示整体趋势。如果这个过程继续下去,结果就会在图表上显示为代表正向和负向运动的两条线。在趋势发生变化时,这两条线会相交和交叉,并随着趋势强度的增加而发散得越来越大。这就是怀尔德 DMI 的基础。

来自大自然的灵感

涡旋指标对方向性运动的另一种看法的灵感来自一个完全不同的来源。被誉为 “内爆技术之父 ”的维克多-肖伯格(1885-1958 年)是一位奥地利林学家、实验家和发明家。他试图开发出能够通过形状、外形和运动模仿自然过程力量的能源生产机器。他的工作基础来自于对大自然的研究,以及对河流和溪流中水的流体漩涡的分析,以及后来对管道和涡轮机的分析。

利用这些概念,我们提出了河流中的水流和旋涡运动可以模仿市场的想法。多年来,交易者对市场运动进行了有趣的比较和类比。我们面临的挑战是如何将这一理念转化到市场中。

图 1:典型的涡流

图 1 显示了一个风格独特的水流旋涡。我们直观地看到,市场中也存在类似的涡流,影响着市场的流动(图 2)。只需将低点与连续高点以及高点与连续低点连接起来,我们就能看到市场中的漩涡形态(图 3)。

图 2:市场中的漩涡流

这似乎是一个微不足道的联系,但它却成为这一发现的创新火花。基于计算连续低点与高点、高点与低点之间距离的简单方法,涡旋指标应运而生(图 4)。从昨日低点到今日高点的距离越大,上升(或正向)涡旋越强。同样,昨天的高点与今天的低点之间的距离越大,向下(或负面)的涡旋运动就越强。与 DMI 一样,如果将一连串上升和下降涡旋关系相加,这些关系就会变得更有意义。

图 3:市场中的涡旋模式。将低点与连续高点、高点与连续低点连接起来,可以看到市场中的涡旋模式。

我们如何处理内栏?请记住,内柱是指今天的最高点低于昨天,而最低点高于昨天。怀尔德认为,这样的一天代表零方向运动,因此将向上和向下运动的数值都定为零。对于涡旋指标而言,向上和向下运动的计算值都包含在计算中。

图 4:涡旋指标。从昨日低点到今日高点的距离越大,上升(或正向)涡旋越强。同样,昨天的最高点与今天的最低点之间的距离越大,向下(或负面)的涡旋就越强。

这是涡旋指标与怀尔德 DMI 的主要区别:在指标计算的任何阶段,都不会用数值代替零。请参阅第 25 页的边栏 “Excel 中的涡旋指标”,了解有关该指标的计算和构造的简单说明。

解释

在图 5 中,我们绘制了原油的 14 期每日涡旋指标。我们之所以选择 14 天的参数,是因为怀尔德在其原著中使用了与 DMI 相同的参数。注意两条线(+VI 和 -VI)相互收敛和发散,有时相交,有时相交。解释很简单: 当 +VI 较大且高于 -VI 时,市场呈上升趋势。同样,如果 -VI 变大且高于 +VI,则市场趋势向下。交叉点是最重要的潜在趋势变化点。与图 6 中的原油价格图表相比,请注意,随着趋势的加强,这些线越来越发散,而随着趋势的减弱,这些线又越来越收敛。

图 5:14 段原油日线涡旋指标。+VI 和 -VI 相互收敛和发散,有时会相互交叉。当 +V 大于 -V 时,市场呈上升趋势。当 -V 大于 +V 时,市场趋势向下。交叉点是潜在的趋势变化点。

所有技术工具都会显示明确的趋势。在这方面,所有技术指标总是正确的。任何指标的重要性和准确性都要在趋势方向发生变化时才能得到检验。所有技术指标在指示出真正方向之前,必然会出现一些错误信号。关键是要找到一个能发出最少错误信号,同时又不会太滞后于市场的指标。漩涡指标能有效识别任何市场趋势的开始、存在或延续。该指标可以多种方式使用:与其他指标结合使用,作为趋势变化的确认,或作为更大系统的一部分。它也可以单独使用,如 Wilder 对 DMI 的建议。关键是要关注 +VI 和 -VI 的交叉点。当 +VI14 在 -VI14 上方交叉时,多头头寸就会启动,同样,如果 -VI14 在 +VI14 上方交叉,空头头寸也会启动。

涡旋指标可用于任何市场、参数或时间框架。它既可用于短至 15 分钟或小时的时间框架,也可用于较长的时间框架,如日线图或周线图。包括涡旋在内的大多数技术指标在较长的时间框架内效果更好。周线图或月线图等较长的时间框架可用来建立较大的宏观趋势。从这个意义上说,涡旋是短线交易者和长线基金经理的理想工具。同样,可以选择任何参数,无论是 13、21、34 还是 55。

请注意,我们建议使用斐波那契数字。这些数字并不神奇,它们只是代表了一组间隔方便的数字,为测试提供了良好的基础。同样,我们倾向于使用较长的参数,因为它们更稳健、更准确。不过,交易者可以根据自己的偏好来决定最适合自己的时间框架和参数。如果选择较短的时间框架(如 5 分钟),我们建议将其与较长的参数相结合,例如 34 或 55。较长的时间框架和较长的参数会导致较少的错误信号,但与任何指标一样,需要付出的代价是延迟进入。

与任何指标或系统一样,我们建议您尽量不要过多地进行曲线拟合;更重要的是坚持使用一个时间框架和参数。请记住,交易系统的开发就是以牺牲一种利益换取另一种利益。

交易理念

为了提高 +VI 和 -VI 交叉点的准确性,我们建议您尝试使用设置技巧来过滤和限制虚假交易。Wilder 提出了一种可有效用于涡流的 DMI 交易设置。

在交叉点或交叉日,当天的极端最高点或极端最低点应成为您的进场点,可以做多或做空。您不能在收盘时建仓;您必须留出一个 “良好直至取消”(GTC)的进场点,在显示交叉的日线柱的高点做多,或在低点做空。如果现有多头头寸,而漩涡指标显示为空头,则低点将成为您离场做空的点位。如果没有出现这种情况,则继续做多。指标可能会转回多头,为您省去虚假止损和进场。我们将在交易示例中详细解释这一点。

即使 -VI 持续低于 +VI 数个无趋势条形图,您做空的点仍然是交叉的第一个原始条形图。无论是做多还是做空,推迟以更昂贵的价格入场似乎都令人费解。然而,与其他指标一样,漩涡并不总是准确的,这种方法会让你避免大量的错误信号。此外,您可能已经持有多头头寸。过滤掉错误的空头信号对您有利,反之亦然。

在无趋势的横盘市场中,可能会出现很多这样的交叉,但使用同样的交易设置可以帮助你过滤掉这些虚假交易。值得注意的是,使用这种技术可以改进大多数系统或方法,尽管要付出延迟进场的代价。

顶部回落和获利

Wilder 建议从一个交叉点到下一个交叉点交易 DMI,类似于波段系统。这意味着新的多头入场同时也是空头的止损点,反之亦然。这可能不是最有效的方法,除非您有非常长远的投资眼光。如果不在经纪人处预留止损位,在市场快速波动或发生不利事件时,您可能会面临高风险。此外,我们建议您使用追踪止损策略,让您能够充分获利。

通过使用源自市场的追踪止损,您的利润大小由市场本身决定。您可以尝试使用从真实区间、平均真实区间或其适应性排列中得出的追踪止损策略。不建议使用固定百分比止损或基于任意美元数字的止损,因为每个市场都有不同的特点和波动率。

交易示例

作为一个例子,我们使用 2008 年 NYMEX 原油期货(轻质甜油)。我们使用日线图作为时间框架和 14 期参数构建了一个涡旋指标。

观察 2008 年的柱状图(第 24 页,图 6),有三个明显的机会。首先,年初有一个短暂的做空机会,随后进入 7 月份的是一个浅角度的牛市。读者可能会同意,任何浅角度市场都是最难交易、最令人沮丧的市场之一。最后,熊市持续到年底,9 月份更是出人意料地飙升至 130 美元。同期的漩涡图显示,只要红色 -VI 线高于蓝色 +VI 线,就有做空的机会,反之亦然。任何指标都会出现一些错误的转折点,尤其是在今年上半年的浅角度牛市期间。

图 6:原油。当趋势增强时,注意 +VI 和 -VI 线日益发散。随着趋势减弱,+VI 线和 -VI 线收敛。

我们将重点举三个例子来说明不同的交易情况(图 7)。在示例 1 中(图 8),2008 年 1 月 15 日,涡旋指标转为空头信号。交叉信号出现当日,盘中最低价为 90.98,市场收盘价为 91.90。程序是向经纪人发出在 90.98 点做空的指令。这在第二天

次日触发。通过使用追踪止损策略,这可能是一笔有利可图的交易。

图 7:三个示例,三种交易情况

在示例 2(图 9)中,2008 年 2 月 11 日发出了做多信号,最高点为 94.72。通过留下在 94.72 点买入的 GTC 订单,三天后这一价位才出现交易。2 月 12 日和 13 日的市场未能突破这一水平。在这些日子里,我们学会了不调整或降低最初的入市点。

图 8:示例 1。2008 年 1 月 15 日,漩涡转为空头信号。交叉当日,盘中最低价为 90.98,市场收盘价为 91.90。您可以向经纪人下单,在 90.98 点做空。

下一个转折点在示例 3(图 10)中显示,以说明如何过滤虚假信号。2008 年 3 月 20 日,14 天漩涡显示了一个做空信号的转折点。该时段的低点是 98.65。如果您仍在之前的信号中做多,这个点将成为止损反转点。

图 9:示例 2。2008 年 2 月 11 日发出做多信号。高点在 94.72。请注意,如果您在 94.72 点发出 “有效直至取消 ”的买入指令,您的交易只能在三天后成交。

然而,在接下来的两天里,市场低点仅为 99.95 和 99.13,然后漩涡指标再次转为多头信号。在这种情况下,您的做空订单从未成交。取消订单,继续做多。

图 10:示例 3。2008 年 3 月 20 日,14 天涡旋显示出空头信号的转折点。低点位于 98.65。但是,由于价格没有达到 98.65,空头从未被触发。因此,您可以取消订单,继续做多。

在 2008 年 7 月 17 日以来的长期熊市中(图 11),可以用同样的方法过滤两次虚假买入交叉,包括那次不规则的飙升至 130 美元。因此,我们建议使用追踪止损来限制损失或锁定利润,即使在这种明确的熊市中也是如此。虽然在这一趋势中,您有时仍可能会止损,但在大多数情况下都会获利。

图 11:错误信号。2008 年 7 月至 2008 年 12 月期间,出现了两次虚假买入交叉信号。

这些信号的过滤方法与图 10 相同。

如果你确实被止损,你需要尝试重新进入同一趋势的技巧,因为漩涡指标在交易时段结束时仍可能显示原趋势的延续。我们建议使用与之前所述相同的方法进入新的交易。

在被止损的条形图的低点或高点留下重新进场订单。保持该订单不变,直到其成交,或直到涡旋指标显示向相反方向波动。在这种情况下,只需取消订单,然后在相反的高点或低点输入新的订单。

旋转漩涡

将涡旋指标作为新交易理念的基础取决于交易者的创造力。在实施您的想法之前,请务必记住对您的方法进行回溯测试,并始终保持您的交易方法尽可能简单。

Indicator:  Vortex

inputs:        Length14 ) ;
variables:        VMPlus0 ),        VMMinus0 ),        VMPlusSum0 ),        VMMinusSum0 ),        TR0 ),        TRSum0 ),        VIPlusSumRge0 ),        VIMinusSumRge0 ) ;
VMPlus = AbsValue( High - Low[1] ) ;VMMinus = AbsValue( Low - High[1] ) ;VMPlusSum = Summation( VMPlus, Length ) ;VMMinusSum = Summation( VMMinus, Length ) ;TR = TrueRange ;TRSum = Summation( TR, Length ) ;
if TRSum <> 0  then        begin        VIPlusSumRge = VMPlusSum / TRSum ;        VIMinusSumRge = VMMinusSum / TRSum ;        end ;
Plot1( VIPlusSumRge, "VI+Sum/Rge", Green ) ;Plot2( VIMinusSumRge, "VI-Sum/Rge", Red ) ;

Strategy:  Vortex

inputs:        Length14 ),        StopFactor2 ) ; { number of true ranges }
variables:        VMPlus0 ),        VMMinus0 ),        VMPlusSum0 ),        VMMinusSum0 ),        TR0 ),        TRSum0 ),        VIPlusSumRge0 ),        VIMinusSumRge0 ),        SignalTradeNum0 ),        BuySignal( false ),        ShortSignal( false ),        StopPrice0 ) ;
VMPlus = AbsValue( High - Low[1] ) ;VMMinus = AbsValue( Low - High[1] ) ;VMPlusSum = Summation( VMPlus, Length ) ;VMMinusSum = Summation( VMMinus, Length ) ;TR = TrueRange ;TRSum = Summation( TR, Length ) ;
if TRSum <> 0  then        begin        VIPlusSumRge = VMPlusSum / TRSum ;        VIMinusSumRge = VMMinusSum / TRSum ;        end ;
if VIPlusSumRge crosses over VIMinusSumRge then        begin        SignalTradeNum = TotalTrades ;        BuySignal = true ;        ShortSignal = false ;        StopPrice = High ;        endelse if VIPlusSumRge crosses under VIMinusSumRge then        begin        SignalTradeNum = TotalTrades ;        BuySignal = false ;        ShortSignal = true ;        StopPrice = Low ;        end ;
if BuySignal and TotalTrades = SignalTradeNum andMarketPosition <> 1 then        Buy next bar StopPrice stop ;
if ShortSignal and TotalTrades = SignalTradeNum andMarketPosition <> -1 then        SellShort next bar at StopPrice stop ;
SetStopShare ;SetDollarTrailing( TR * StopFactor ) ;
关注我们微信及群,第一时间获取最新策略解析及程式码

关注微信:

加入群:每天接收新策略新思路


关注公众号:每天经典策略不错过!

通过下面方式支持我们:

1、关注管理员微信、我们公众号及入群。

2、想用multicharts平台做程序化可以联系我们购买它们年度会员或绑定实盘进行程序化,我们有最具性价比的手续费政策和年度会员购买优惠折扣政策。

3、使用我们自研平台“鼎元C++全自动化”平台进行期货量化交易,执行期货公司特惠佣金费率,享受免平台费服务,【执行无平台费,不加手续费政策】,众多策略模板范例可供参考、优化与升级。我们还提供更多的教程服务与视频培训,欢迎咨询。

4、通过我们开立证券股票账户,执行人性化佣金政策,欢迎咨询。

5、我们的工作与研究离不开大家的支持。感谢大家!

图片


【声明】内容源于网络
0
0
我爱程序化
期货程序化介绍、平台、策略及源码研究与编程。20年策略研究,15年实战经验。
内容 292
粉丝 0
我爱程序化 期货程序化介绍、平台、策略及源码研究与编程。20年策略研究,15年实战经验。
总阅读626
粉丝0
内容292