大数跨境
0
0

动态区间(Dynamic Zones)主题研究及交易系统(附部分源码)

动态区间(Dynamic Zones)主题研究及交易系统(附部分源码) 我爱程序化
2025-09-20
0
导读:大多数指标使用一个固定的区域作为买入和卖出信号。这里有一个基于区域的概念,它对指标的过去水平有反应。

大多数指标使用一个固定的区域作为买入和卖出信号。这里有一个基于区域的概念,它对指标的过去水平有反应。

主动投资的一种方法是采用震荡指标来利用可交易的市场趋势。这种投资风格遵循一种非常简单的逻辑形式。只有当振荡器远远高于或低于传统交易水平时才进入市场。然而,这些震荡器驱动的系统缺乏随市场发展的能力,因为它们使用固定的买入和卖出区域。交易者通常在牛市中使用一套买入和卖出区域,而在熊市中使用完全不同的区域。这就是问题所在。

一旦交易者开始将他们的市场观点引入交易方程式,通过改变区域,他们就否定了系统的机械性质。我们的目标是让系统自动定义自己的买入和卖出区域,从而在任何市场--牛市或熊市--进行有利的交易。动态区域为任何震荡器驱动的系统提供了一个解决固定买入和卖出区域问题的方案。

一个指标的极端水平可以用统计方法进行量化。这些极端水平在一定时期内被计算出来,作为交易系统的买入和卖出区域。对指标的每个值重复这一统计过程,就会产生成为动态区域的值。这些区域的计算方式是,指标值上升到动态区域以上或下降到动态区域以下的概率,等于交易者设定的特定概率输入。

为了更好地理解动态区域,让我们首先从数学上描述它们,然后解释它们的用途。动态区域的定义。

找到V,使之。

对于动态区域的买入。P{X <= V}=P1

对于动态区域的卖出。P{X >= V}=P2

其中P1和P2是交易员设定的概率,X是选定时期的指标值,V代表动态区域的价值。

概率输入P1和P2可以由交易员调整,以包含交易员希望的更多或更少的数据。概率越小,动态区域上下的数据值就越少。这就意味着买入和卖出区域之间的范围更广。如果P1和P2使用10%的概率,那么在构建区域时只使用那些构成指标顶部10%和底部10%的数据值。在这些数值中,80%将落在这两个极端水平之间。因为动态区域水平被穿透的频率很低,当这种情况发生时,交易者知道市场已经真正进入超买或超卖区域。

计算动态区域

动态区域的算法是一系列的步骤。首先,决定回望期t的值。接下来,决定买入区的概率Pbuy和卖出区的概率Psell的值。

对于i=1,到最后一个回溯期,建立回溯期i的价格分布f(x),然后找到Vi1值,使回溯期i的价格小于或等于Vi1的概率等于Pbuy。找出Vi2的值,使得在回溯期i中价格大于或等于Vi2的概率等于Psell。所有时期的Vi1的序列给出了买入区。所有时期的Vi2的序列给出了卖出区。

在算法描述中,我们有。"建立回溯期i期间的价格分布f(x)"。这里的分布是经验性的--即一个给定的x值在回望期内出现了多少次。问题是要找到这样的x,即价格大于或等于x的概率将等于用户选择的概率。概率是分布曲线下的面积。任务是找到这样的x值,使x右边的分布曲线下的面积将等于用户选择的概率。这个x就是动态区域。

举例说明

假设在一个长度为80的回溯期i中,我们计算了以下价格出现的次数。1,1次;3,3次;6,7次;9,16次;11,24次;13,13次;15,8次;19,4次;20,3次和21,1次。这就是频率f(x)。

假设选择的概率是0.1。如果我们用0.1乘以80,等于8,然后寻找代表频率等于8的点的价格,把后三个频率(4,3和1)相加就可以得到8。由此我们得出结论,在这种情况下,x=19的值将是概率为0.1的区域。这个过程对买入区和卖出区的数据都是独立进行的。

图1:标准普尔500指数的买入和卖出区域。图1用九天的相对强弱指标说明了标准普尔500指数市场的买入和卖出区域。动态区域上方和下方的区域构成了10%的上限和下限。这些区域似乎随着市场的变化而变化,因为它们在构建时使用的是70天的滚动指标值。

图1使用九天的相对强度指标(RSI)说明了标准普尔500指数市场的买入和卖出区域。动态区域上方和下方的区域构成了10%的上限和下限。这些区域似乎随着市场的变化而变化,因为它们在构建时使用了70天的滚动指标值。

对于一个交易实例

假设我们的九天RSI系统在过去几年中使用公认的30/70的固定买入和卖出区域一直在盈利。该系统在RSI越过30水平时买入市场,在越过70水平时卖出。该系统100%的时间都保持在市场中。使用这些设定的参数,RSI在牛市中表现良好,但在熊市中会崩溃。该系统的暂时失败可能不完全是由于指标本身;相反,它可能是由该系统严格的买入和卖出区域造成的。在这种情况下,应该改变这些区域,以适应下降的市场。在熊市中,20/70的买入和卖出区域可能更有效地发挥作用。

动态区域的作用是市场自动调整自己,在牛市时增加,在熊市时减少。构建RSI的参数保持不变,但区域调整以更好地反映当前的交易环境。这是通过在计算区域时使用指标值的滚动平均值来完成的。毕竟,关键是要让一个机械系统做出自己的决定。

指标比较

动态区域背后的原则可以用于任何基于震荡器的交易系统。作为一个例子,用26年的时间(1/5/70-11/27/96)来交易标普500现金指数。我们的样本九天相对强度指标将被用来构建我们的动态区域。我们的系统将使用70天的回溯期,买入和卖出区域的概率都是10%。固定区域将使用传统的30/70水平。(这些系统的设计仅用于比较,不建议用于实际交易)。

交易结果由Performance Summary Plus提供

图2显示了RSI系统,动态区域在上图,固定区域在下图。请注意,动态区域是如何调整以适应市场上的短期趋势的。这些自我调整的区域不仅提供了更有效的交易,而且提供了额外的交易机会。与动态区域指标相关的超买/超卖极端水平比固定区域更频繁地被穿透,允许更大的交易灵活性。

图2: RSI,动态和固定区域。图2显示了RSI系统,动态区域在上图,固定区域在下图。请注意,动态区域是如何调整以适应市场上普遍的短期趋势的。这些自我调整的区域不仅提供了更有效的交易,而且提供了额外的交易机会。与动态区域指标相关的超买/超卖极端水平比固定区域更频繁地被穿透,允许更大的交易灵活性。

任何试图交易市场的振荡器驱动的系统,无论是看涨、看跌还是中立,都应该从动态区域的使用中受益。这个交易系统的交易结果证实了这些发现。有能力调整自己的买入和卖出区域的指标,事实上应该优于那些使用固定区域的指标。为了改善交易结果,可以对使用动态区域的系统做进一步的改进。这些改进包括:两个区域的独立概率输入,各种退出信号和资金管理技术的使用。动态区域交易系统只受限于交易者的想象力。

真实世界的投资

让我们来看看一个实际的交易系统,并对动态区域进行测试。我们创建的DZ%R系统使用威廉姆斯的%R指标(参数1),通过加权移动平均线(参数2)进行平滑处理。该系统简单明了,在指标越过各自的极端区域时买入并退出标普500现金指数。

图3:股权曲线。下面是动态区%R的权益曲线。

在这个例子中,动态区域程序使用70天的回溯期(N)和12%的买入/卖出概率系数(StartPrB & StartPrS)来计算极端区域。实际的动态区域程序允许用户在时间和概率因素之外,使用总共五个独立的用户参数来创建指标。如果有必要,这些参数中的每一个都可以由TradeStation/SuperCharts进行优化。下面概述的具体系统可用于期权、期货甚至共同基金的交易。该系统是专门为识别标普500指数市场设定的高概率交易点而设计的。

图4: 动态区域,70天的回溯和概率。在这个例子中,动态区域程序使用70天的回溯期(N)和12%的买入/卖出概率(StartPrB &StartPrS)来计算极端区域。DZ%R交易系统的交易结果令人印象深刻,因为它只有42%的交易时间。它的一贯性是为SPX持仓交易者甚至是指数共同基金交易者设置的。该系统也可以作为其他短期交易系统的过滤器。

鉴于DZ%R交易系统只有42%的交易时间,其交易结果令人印象深刻。它的一贯性是为SPX持仓交易者甚至指数共同基金交易者设置的。该系统也可以作为其他短期交易系统的过滤器。

总体而言,这个系统的表现远远高于平均水平(图3)。现在通过回顾不同时期的交易结果来进一步考察该系统。我们将从关键业绩数字的年化细分开始。这些结果反映了在日历年内启动和关闭的交易。

接下来,我们将逐项分析系统在较长时期内的表现。在各种市场条件下,交易结果仍然非常一致。

这个特殊的威廉姆斯%R交易系统可以胜过同级别的任何基于指标的系统。动态区域背后的交易逻辑可以使任何基于震荡器的交易系统受益(图4)。

结论

动态区域为交易者提供了一个关于典型交易系统的不同视角。市场是不断变化的,如果振荡器驱动的交易系统要保持竞争力,它们必须学会与市场一起发展。

基于动态区域的交易系统实际上可以量化极端情况,从而改善交易过程。最重要的是,这些交易改进可以用来增加任何市场的盈利潜力。

程式码部分:

DZ %R System

Input: Par1(9),Par2(3),Par3(3),Par4(4),Par5(5),N(70),StartPrS (0.12),StartPrB(0.12);Vars: BuyZone(0), SellZone(0), Indicator(0);
SellZone=DZSell(Par1,Par2,Par3,Par4,Par5,StartPrS,N);BuyZone=DZBuy(Par1,Par2,Par3,Par4,Par5,StartPrB,N);
Indicator = WAverage(PercentR(Par1), Par2);
IF CurrentBar > 1 and Indicator crosses above BuyZone then Buy at market;IF CurrentBar > 1 and Indicator crosses below SellZone then ExitLong at market;
完整程式码参考:http://www.qhlt.cn/forum-994-1.html
关注我们微信及群,第一时间获取最新策略解析及程式码

关注微信:

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

图片


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

通过下面方式支持我们:

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

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

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

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

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

图片


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