有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
答案 0 :(得分:1)
即使在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
鉴于量化金融遗产,来自RSI模型的作者J. Welles Wilder,定义说:
相对强弱指数(RSI)是一种动量振荡器,用于衡量价格变动的速度和变化。 RSI在0到100之间振荡。
事实证明,任何混合苹果和橙子的尝试都会导致主要的混乱。取苹果==布林带(具有明确的PriceDOMAIN维度[CCY2])并试图将其混合(使用{ADD | SUB}操作)与橙子== RSI(无维度相对/百分比指标)产生无法解释的结果(具有隐藏的叠加+缩放不确定性)。
让我们暂时 XAUUSD 。它的布林带值,考虑到任何合理的西格玛(StDev)倍数,RSI将始终处于低频段......因此这种构造将具有零信息值,如下: /> RSI-<0..100> << BollingerBandLOWER-( 1257.000 - ( N * sigma ) )
强>
因此,应修改模型,以便内置一些定量融资支持。将苹果与橙子混合在商业意义上无济于事。