如何使用IMAonArray()将3个RSI指标“绑定”到一个布林带?

时间:2017-05-21 22:53:15

标签: quantitative-finance algorithmic-trading mql4 metatrader4

有3个RSI指标,每个都有自己的期间 我想将所有3对一的布林带捆绑在一起 告诉我如何更好地做到这一点?

 for(i=limit; i>=0; i--) {
     ma=iMAOnArray(RSI,0,bb_period,0,0,i);         // midle
     stdev=iStdDevOnArray(RSI,0,bb_period,0,0,i); // dev
     BBUP[i]=ma+bb_dev*stdev;                    // up
     BBDOWN[i]=ma-bb_dev*stdev;                 // down
     Buff4[i]=0;
     Buff5[i]=0;
 }

 if(limit<Bars-1) limit++;
 for(i=limit; i>0; i--) {
      if(PrevSignal >= 0) {
         if(   RSI[i]    <  BBDOWN[i]
            && RSI[i+1]  <  BBUP[i+1]
            && RSI2[i]   <  BBDOWN[i]
            && RSI2[i+1] <  BBUP[i+1]
            && RSI3[i]   <  BBDOWN[i]
            && RSI3[i+1] <  BBUP[i+1]
               ) {
               Buff4[i]  = Low[i]-5*MarketInfo(Symbol(),MODE_POINT); // MathMin(BBDOWN[i],WPR[i]);  // Low[i]-5*MarketInfo(Symbol(),MODE_POINT);
               PrevSignal = -1;
         }
      }
 }

我希望当所有3个RSI都低于BB时,那么信号 https://i.stack.imgur.com/fKff7.jpg enter image description here

1 个答案:

答案 0 :(得分:1)

代码AS-IS的设计开销可以减少4倍:

即使在O / P定义目标之前(如何将三个值合并为一个),人们可能已经检测到代码块在[i]中同步步进/对齐 - 索引,而不是窥视未来,不干涉其他人的价值(主要是不确定的),因此是多余的,所以人们可以安全地从这些中节省很多共享&#34;开销:

int    i;
double ma,
       stdev;
for(i=limit; i>=0; i--) { RSI[ i] = iRSI( Symbol(), Period(), rsi_period,   PRICE_CLOSE, i );
                          RSI2[i] = iRSI( Symbol(), Period(), rsi_period_2, PRICE_CLOSE, i );
                          RSI3[i] = iRSI( Symbol(), Period(), rsi_period_3, PRICE_CLOSE, i );

                       /* the "last" for(){...} code-block body is not included,
                          until the calculus of how to tie three vectors
                          into a common Bollinger Band is defined by O/P,
                          but
                          could fit in this common "stream"-processing too
                          */

                          }

O / P代码非常 changed - may check the revisions

Nota bene:ad-hoc提供的更新

鉴于量化金融遗产,来自RSI模型的作者J. Welles Wilder,定义说:

  

相对强弱指数(RSI)是一种动量振荡器,用于衡量价格变动的速度和变化。 RSI在0到100之间振荡。

事实证明,任何混合苹果和橙子的尝试都会导致主要的混乱。取苹果==布林带(具有明确的PriceDOMAIN维度[CCY2])并试图将其混合(使用{ADD | SUB}操作)与橙子== RSI(无维度相对/百分比指标)产生无法解释的结果(具有隐藏的叠加+缩放不确定性)。

仍然怀疑?

让我们暂时 XAUUSD 。它的布林带值,考虑到任何合理的西格玛(StDev)倍数,RSI将始终处于低频段......因此这种构造将具有零信息值,如下: /> RSI-<0..100> << BollingerBandLOWER-( 1257.000 - ( N * sigma ) )

因此,应修改模型,以便内置一些定量融资支持。将苹果与橙子混合在商业意义上无济于事。