Il y aura un code dans 5 minutes. Gardez à l'esprit que le RSI utilise le lissage de Wilder, qui est identique au lissage exponentiel mais avec une période plus longue, de sorte qu'il peut y avoir un décalage notable.
Qu'y a-t-il à préparer ? Nous jetons le tampon principal du RSI et mettons les deux tampons existants à sa place :
//+------------------------------------------------------------------+//| RSI.mq4 |//| Copyright 2005-2014, MetaQuotes Software Corp. |//| https://www.mql4.com |//+------------------------------------------------------------------+#property copyright"2005-2014, MetaQuotes Software Corp."#property link"https://www.mql4.com"#property description"Relative Strength Index"#property strict#property indicator_separate_window#property indicator_buffers2#property indicator_color1 clrBlue#property indicator_color2 clrRed//--- input parametersinputint InpRSIPeriod=14; // RSI Period//--- buffersdouble ExtPosBuffer[];
double ExtNegBuffer[];
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit(void)
{
string short_name;
//--- 2 additional buffers are used for counting.SetIndexBuffer(0,ExtPosBuffer);
SetIndexBuffer(1,ExtNegBuffer);
//--- indicator lineSetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
//--- name for DataWindow and indicator subwindow label
short_name="RSI("+string(InpRSIPeriod)+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
//--- check for inputif(InpRSIPeriod<2)
{
Print("Incorrect value for input variable InpRSIPeriod = ",InpRSIPeriod);
return(INIT_FAILED);
}
//---SetIndexDrawBegin(0,InpRSIPeriod);
//--- initialization donereturn(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Relative Strength Index |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
int i,pos;
double diff;
//---if(Bars<=InpRSIPeriod || InpRSIPeriod<2)
return(0);
//--- counting from 0 to rates_totalArraySetAsSeries(ExtPosBuffer,false);
ArraySetAsSeries(ExtNegBuffer,false);
ArraySetAsSeries(close,false);
//--- preliminary calculations
pos=prev_calculated-1;
if(pos<=InpRSIPeriod)
{
//--- first RSIPeriod values of the indicator are not calculated
ExtPosBuffer[0]=0.0;
ExtNegBuffer[0]=0.0;
double sump=0.0;
double sumn=0.0;
for(i=1; i<=InpRSIPeriod; i++)
{
ExtPosBuffer[i]=0.0;
ExtNegBuffer[i]=0.0;
diff=close[i]-close[i-1];
if(diff>0)
sump+=diff;
else
sumn-=diff;
}
//--- calculate first visible value
ExtPosBuffer[InpRSIPeriod] = sump / InpRSIPeriod;
ExtNegBuffer[InpRSIPeriod] = sumn / InpRSIPeriod;
//--- prepare the position value for main calculation
pos=InpRSIPeriod+1;
}
//--- the main loop of calculationsfor(i=pos; i<rates_total && !IsStopped(); i++)
{
diff=close[i]-close[i-1];
ExtPosBuffer[i]=(ExtPosBuffer[i-1]*(InpRSIPeriod-1)+(diff>0.0?diff:0.0))/InpRSIPeriod;
ExtNegBuffer[i]=(ExtNegBuffer[i-1]*(InpRSIPeriod-1)+(diff<0.0?-diff:0.0))/InpRSIPeriod;
}
//---return(rates_total);
}
//+------------------------------------------------------------------+
Il n'y a pas de lissage. Et le calcul est différent dans la mesure où la force des ours inclut le doji. C'est là toute la différence. Le DA en tient compte.
Il y aura un code dans 5 minutes. Gardez à l'esprit que le RSI utilise le lissage de Wilder, qui est identique à l'exponentiel mais avec une période plus longue, de sorte qu'il peut y avoir un décalage notable.
c_x - comme pour le RSI, mais la division n'est pas par période, mais par le nombre réel d'incréments.
Méthodelisse - lisse :
s_wilder - Méthode Wilder
s_ema - lissage exponentiel.
Gardez à l'esprit que les composantes RSI sont lissées par Wilder, tandis que les composantes ADX sont lissées par la méthode exponentielle classique (c'est-à-dire que la période 14 pour le RSI correspond à la période 27 pour l'ADX).
Puissance - la façon dont la ligne finale est calculée :
f_off - non affiché pour mieux voir les composants
f_rsi - comme pour le RSI
f_adx - comme ADX.
Pour information : la ligne finale du RSI n'est pas lissée, l'ADX l'est.
***
Vous pouvez obtenir RSI et ADX et divers hybrides par cet indicateur à travers les paramètres.
Pour avoir un RSI :
Composants - c_rsi
Doux - s_wilder
Puissance - f_rsi ;
Pour obtenir l'ADX :
Composants - c_adx
Doux - s_ema
Puissance - f_adx
Alimentation - activer/désactiver pour garder les composants hors du chemin.
***
Le modèle avec deux indicateurs comme dans l'image de ce post est également joint.
Yousufkhodja Sultonov: Il n'y a pas de lissage en DA et il n'est pas nécessaire. Qu'en pensez-vous ?
Il est possible de ne pas lisser comme dans le RSI, mais les composants eux-mêmes, c 'est une moyenne simple. Il est possible d'affiner mon indicateur universel ci-dessus pour activer/désactiver le lissage. Mais conceptuellement, rien ne change.
D'ailleurs, vous feriez mieux de le montrer avant de parler. Pourquoi vous me demandez si sévèrement, et vous bla bla bla
Où est l'histoire ? 5 minutes pour écrire un billet, c'est beaucoup ?
Ce que je voulais dire, c'est ceci : "Gardez à l'esprit que le RSI utilise le lissage de Wilder, c'est la même chose que l'exponentiel mais avec une période plus grande, il peut y avoir un décalage notable de ce fait. "
Toute convention avec des périodes plus ou moins longues, un lissage exponentiel ou régulier - à quoi cela sert-il ? DA prend le taureau par les cornes et l'ours par les pattes et les pieds.
Dmitry Fedoseev: Il est possible de ne pas lisser comme dans le RSI, mais les composants eux-mêmes, il s'agit d'une moyenne simple. Il est possible d'affiner mon indicateur universel ci-dessus pour activer/désactiver le lissage. Mais conceptuellement, rien ne change.
Dmitry Fedoseev: Il est possible de ne pas lisser comme dans le RSI, mais les composants eux-mêmes, c'est une moyenne simple. Vous pouvez affiner mon indicateur universel ci-dessus pour activer/désactiver le lissage. Mais conceptuellement, rien ne change.
Vous essayez d'argumenter avec des formules avec quelqu'un qui parle le langage de la poésie.
Il y aura un code dans 5 minutes. Gardez à l'esprit que le RSI utilise le lissage de Wilder, qui est identique au lissage exponentiel mais avec une période plus longue, de sorte qu'il peut y avoir un décalage notable.
Qu'y a-t-il à préparer ? Nous jetons le tampon principal du RSI et mettons les deux tampons existants à sa place :
Il n'y a pas de lissage. Et le calcul est différent dans la mesure où la force des ours inclut le doji. C'est là toute la différence. Le DA en tient compte.Il y aura un code dans 5 minutes. Gardez à l'esprit que le RSI utilise le lissage de Wilder, qui est identique à l'exponentiel mais avec une période plus longue, de sorte qu'il peut y avoir un décalage notable.
Vous trouverez ci-joint un indicateur.
Paramètres :
période - période en bars ;
Composants - option de calcul des composants :
Méthodelisse - lisse :
Puissance - la façon dont la ligne finale est calculée :
Pour information : la ligne finale du RSI n'est pas lissée, l'ADX l'est.
***
Vous pouvez obtenir RSI et ADX et divers hybrides par cet indicateur à travers les paramètres.
Pour avoir un RSI :
Pour obtenir l'ADX :
Alimentation - activer/désactiver pour garder les composants hors du chemin.
***
Le modèle avec deux indicateurs comme dans l'image de ce post est également joint.
Vous faites marche arrière maintenant ?
Où est l'histoire ? Cinq minutes pour écrire un billet, c'est beaucoup ?
...
Il n'y a pas d'anticrénelage sur .....Qu'est-ce que c'est ? -
C'est plus lissant. C'est essentiellement identique à l'exponentielle, mais plus lent.Où est l'histoire ? 5 minutes pour écrire un billet, c'est beaucoup ?
Il n'y a pas de lissage en DA et il n'est pas nécessaire. Qu'en pensez-vous ?
Il est possible de ne pas lisser comme dans le RSI, mais les composants eux-mêmes, c 'est une moyenne simple. Il est possible d'affiner mon indicateur universel ci-dessus pour activer/désactiver le lissage. Mais conceptuellement, rien ne change.
D'ailleurs, vous feriez mieux de le montrer avant de parler. Pourquoi vous me demandez si sévèrement, et vous bla bla bla
Où est l'histoire ? 5 minutes pour écrire un billet, c'est beaucoup ?
Toute convention avec des périodes plus ou moins longues, un lissage exponentiel ou régulier - à quoi cela sert-il ? DA prend le taureau par les cornes et l'ours par les pattes et les pieds.
Il est possible de ne pas lisser comme dans le RSI, mais les composants eux-mêmes, il s'agit d'une moyenne simple. Il est possible d'affiner mon indicateur universel ci-dessus pour activer/désactiver le lissage. Mais conceptuellement, rien ne change.
Il est possible de ne pas lisser comme dans le RSI, mais les composants eux-mêmes, c'est une moyenne simple. Vous pouvez affiner mon indicateur universel ci-dessus pour activer/désactiver le lissage. Mais conceptuellement, rien ne change.
Vous essayez d'argumenter avec des formules avec quelqu'un qui parle le langage de la poésie.