Indicateurs d'élite :) - page 383

 

TepeFinans

Voilà

Je voudrais juste expliquer pourquoi le nom est "générique" : je n'ai pas utilisé l'indicateur "par défaut" qui est fourni par metatrader mais j'utilise une version qui permet de lisser les valeurs et les signaux sur différentes périodes. Le lissage utilisé à la fois pour les valeurs et le signal est la moyenne mobile triangulaire (la moyenne mobile triangulaire "normale", pas celle centrée, donc il n'y a pas de recalcul) et est réglé par défaut pour être le même que l'indicateur intégré mais vous permet également d'expérimenter avec différentes longueurs de lissage.

Je joins un indicateur simple ainsi qu'une version avec mtf, alertes et lignes de divergence également. Joindre la "version simple" afin que cette version soit simplement comparable à l'indicateur intégré par défaut. Aussi, lors de la recherche de divergences, il pourrait être une bonne idée de désactiver le lissage des rvi (mettre la période de lissage à 1) car de cette façon le décalage de la valeur "raw rvi" est minimal et de cette façon l'identification des pics est beaucoup plus précise qu'en mode lissé, mais attention, il s'agit alors d'un "raw rvi" et non d'un rvi (voici une comparaison des divergences d'un rvi normal (en haut) et d'un "raw rvi" (en bas) - comme on peut le voir, le raw fait le travail de manière plus précise en ce qui concerne la divergence et de cette manière, la version "générique" devient un peu plus utile)

Salutations

Mladen

TepeFinans:
Bonjour Mladen

Indice de Vigueur Relative

Divergence

? ??
Dossiers :
 

Bonjour Mladen

Merci

mladen:
TepeFinans

Voilà

Je voudrais juste expliquer pourquoi le nom est "générique" : je n'ai pas utilisé l'indicateur "par défaut" qui est fourni par metatrader mais j'utilise une version qui permet le lissage des valeurs et des signaux sur différentes périodes. Le lissage utilisé à la fois pour les valeurs et le signal est la moyenne mobile triangulaire (la moyenne mobile triangulaire "normale", pas celle centrée, donc il n'y a pas de recalcul) et est réglé par défaut pour être le même que l'indicateur intégré mais vous permet également d'expérimenter avec différentes longueurs de lissage.

Je joins un indicateur simple ainsi qu'une version avec mtf, alertes et lignes de divergence également. Joindre la "version simple" afin que cette version soit simplement comparable à l'indicateur intégré par défaut. Aussi, lors de la recherche de divergences, il pourrait être une bonne idée de désactiver le lissage des rvi (mettre la période de lissage à 1) car de cette façon le décalage de la valeur "raw rvi" est minimal et de cette façon l'identification des pics est beaucoup plus précise qu'en mode lissé, mais attention, il s'agit alors d'un "raw rvi" et non d'un rvi (voici une comparaison des divergences d'un rvi normal (en haut) et d'un "raw rvi" (en bas) - comme on peut le voir, le raw fait le travail de manière plus précise en ce qui concerne la divergence et de cette manière, la version "générique" devient un peu plus utile)

salutations

Mladen
 

QQE avancé

Ceci est une tentative de rendre un indicateur déjà utile un peu plus utile


Choses ajoutées à QQE : possibilité de choisir et de lisser (filtrer) le prix avant d'être utilisé dans le calcul et possibilité d'utiliser autre chose que le rsi intégré de metatrader. Le rsi intégré à metatrader diffère du rsi original de Welles Wilder et j'ai décidé de définir le type de rsi par défaut utilisé dans le calcul du QQE : le rsi de Wilder, pour plus d'une raison. Comme d'habitude, les méthodes rsi peuvent être

0 - rsi "normal

1 - rsi de Wilder

2 - rsx

3 - rsi de Cuttler

De plus, même un pré-lissage très léger des prix donne des résultats plutôt intéressants : voici une comparaison d'un QQE "régulier" avec un QQE avancé avec le rsi de Wilder pré-lissé sur 3 périodes(MaPeriodset à 3) utilisé dans le calcul.

ou les mêmes paramètres de l'indicateur 1 heure sur un graphique de 15 minutes (de nos jours, lorsque les gens recherchent des oscillations, il semble qu'un regard sur quelque chose comme cela aurait pu aider à éviter certaines erreurs).

Dossiers :
qqe_adv_1.gif  24 kb
qqe_adv_2.gif  20 kb
 

Mladen, Demande de renseignements

cher Mladen,

Pourrais-tu convertir l'indicateur qqe en barre colorée ? Comme le précédent.C

Merci d'avance

A vous,

khaliddxd

 
mladen:
TepeFinans

Voilà

Je voudrais juste expliquer pourquoi le nom est "générique" : je n'ai pas utilisé l'indicateur "par défaut" qui est fourni par metatrader mais j'utilise une version qui permet de lisser les valeurs et les signaux sur différentes périodes. Le lissage utilisé à la fois pour les valeurs et le signal est la moyenne mobile triangulaire (la moyenne mobile triangulaire "normale", pas celle centrée, donc il n'y a pas de recalcul) et est réglé par défaut pour être le même que l'indicateur intégré mais vous permet également d'expérimenter avec différentes longueurs de lissage.

Je joins un indicateur simple ainsi qu'une version avec mtf, alertes et lignes de divergence également. Joindre la "version simple" afin que cette version soit simplement comparable à l'indicateur intégré par défaut. Aussi, lors de la recherche de divergences, il pourrait être une bonne idée de désactiver le lissage des rvi (mettre la période de lissage à 1) car de cette façon le décalage de la valeur "raw rvi" est minimal et de cette façon l'identification des pics est beaucoup plus précise qu'en mode lissé, mais attention, il s'agit alors d'un "raw rvi" et non d'un rvi (voici une comparaison des divergences d'un rvi normal (en haut) et d'un "raw rvi" (en bas) - comme on peut le voir, le raw fait le travail de manière plus précise en ce qui concerne la divergence et de cette manière, la version "générique" devient un peu plus utile)

salutations

Mladen

flèches, s'il vous plaît ? (idem pour le nouveau QQE de Mladen s'il vous plaît)

 

Demande d'un autre nouvel indice

Mladen,

Voici une demande pour un autre nouvel indicateur appelé Mogalef bands.

Ce code a été rendu public en mai de cette année lors d'une réunion de traders.

Il existe maintenant différentes versions sur les forums : Ninja, PRT, GraphAT (voir documents joints)etc.

mais la version GrapAT semble correcte

Pourriez-vous faire une traduction Mql4 de ce code, je pense que tout le monde l'appréciera...

N'hésitez pas à faire vos propres modifications si nécessaire.

Merci

devinci

****************************************************************

//=======================

// Mogalef Bands - GrapAT

//=======================

//1---- Weighted prices "Mogalef"

//

CP(0)=(High+Low+Open+2*Close)/5

//2---- linear regression Weighted prices P1 periods

//

If RangHisto>=P1 Then

somx = 0

somy = 0

somxx = 0

somxy = 0

For P1 Prices

somx = somx+RangPour

somy = somy+CP

somxx = somxx+RangPour*RangPour

somxy = somxy+RangPour*CP

EndFor

a = (P1*somxy-somx*somy)/(P1*somxx-somx*somx)

b = (somy-a*somx)/P1

MogRegLin = b + a*P1

EndIf

//3---Standard deviation of linear regression on P2 periods

//

If RangHisto>= P1+P2-1 Then

StanDev(0)=StandarDeviation(MogRegLin,P2)

EndIf

//4---- "Mogalef" Bands

//

If RangHisto>=P1+P2 Then

If MogRegLinMogB(1) // NO LAG if Lin Reg is within inside bands

Then

StanDev=StanDev(1)

MogM=MogM(1)

MogH=MogH(1)

MogB=MogB(1)

IfNot // shift/lag when computing new band values

MogM=MogRegLin

MogH=MogRegLin+P3*StanDev

MogB=MogRegLin-P3*StanDev

EndIf

EndIf

//end of code

**************************************************************************

other version:

{*********************************************************

Mogalef Bands easy language Multicharts

**********************************************************}

variables: var0(0), var1(0), HighBand(0), LowBand(0), Mediane(0);

var0 = LinearRegValue((Open+High+Low+(2*Close))/5,3,0);

var1 = StandardDev(var0,7,1);

if currentbar=8 then

begin

HighBand = var0 + 2*var1;

LowBand = var0 - 2*var1;

Mediane = var0;

end

else

if var0 HighBand then

begin

HighBand = var0 + 2*var1;

LowBand = var0 - 2*var1;

Mediane = var0;

end;

Plot1(HighBand,"HighBand");

Plot2(LowBand,"LowBand");

Plot3(Mediane,"Mediane");

*********************************************************

other version:

**************************

Mogalef Bands Ninja trader

**************************

#region Using declarations

using System;

using System.ComponentModel;

using System.Diagnostics;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Xml.Serialization;

using NinjaTrader.Cbi;

using NinjaTrader.Data;

using NinjaTrader.Gui.Chart;

#endregion

// This namespace holds all indicators and is required. Do not change it.

namespace NinjaTrader.Indicator

{

///

/// Enter the description of your new custom indicator here

///

[Description("Enter the description of your new custom indicator here")]

public class MogalefBands : Indicator

{

#region Variables

// Wizard generated variables

// User defined variables (add any user defined variables below)

private DataSeries CPSerie, ESerie, FSerie;

private double nMedian = 0, nHigh = 0, nLow = 0;

private int LinRegPeriode = 3, StdDevPeriode = 7;

#endregion

///

/// This method is used to configure the indicator and is called once before any bar data is loaded.

///

protected override void Initialize()

{

Add(new Plot(Color.FromKnownColor(KnownColor.Orange), PlotStyle.Line, "MMedian"));

Add(new Plot(Color.FromKnownColor(KnownColor.Gray), PlotStyle.Line, "MHigh"));

Add(new Plot(Color.FromKnownColor(KnownColor.Gray), PlotStyle.Line, "MLow"));

Overlay = true;

CPSerie = new DataSeries( this );

ESerie = new DataSeries( this );

FSerie = new DataSeries( this );

}

///

/// Called on each bar update event (incoming tick)

///

protected override void OnBarUpdate()

{

// Use this method for calculating your indicator values. Assign a value to each

// plot below by replacing 'Close[0]' with your own formula.

if (CurrentBar < 8)

{

CPSerie.Set((Open[0] + High[0] + Low[0] + (2*Close[0]))/5);

nMedian = CPSerie[0];

nHigh = 0;

nLow = 0;

return;

}

CPSerie.Set((Open[0] + High[0] + Low[0] + (2*Close[0]))/5);

if (CurrentBar > 8 + StdDevPeriode)

{

FSerie.Set(LinReg(CPSerie,LinRegPeriode)[0]);

ESerie.Set(StdDev(FSerie,StdDevPeriode)[0]);

}

else

{

FSerie.Set(CPSerie[0]);

ESerie.Set(0);

}

if (FSerie[0] nHigh)

{

nMedian = FSerie[0];

nHigh = nMedian + (2*ESerie[0]);

nLow = nMedian - (2*ESerie[0]);

}

MMedian.Set(nMedian);

MHigh.Set(nHigh);

MLow.Set(nLow);

}

#region Properties

// this line prevents the data series from being displayed in the indicator properties dialog, do not remove

[XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

public DataSeries MMedian

{

get { return Values[0]; }

}

// this line prevents the data series from being displayed in the indicator properties dialog, do not remove

[XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

public DataSeries MHigh

{

get { return Values[1]; }

}

// this line prevents the data series from being displayed in the indicator properties dialog, do not remove

[XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

public DataSeries MLow

{

get { return Values[2]; }

}

[Description("")]

[Category("Parameters")]

[Gui.Design.DisplayName("LinReg periode")]

public int LinRegPERIODE

{

get { return LinRegPeriode; }

set { LinRegPeriode = Math.Max(1, value); }

}

[Description("")]

[Category("Parameters")]

[Gui.Design.DisplayName("StdDev periode")]

public int StdDevPERIODE

{

get { return StdDevPeriode; }

set { StdDevPeriode = Math.Max(1, value); }

}

#endregion

}

}

******************************************************************

******************************************************************
Dossiers :
example1.png  37 kb
 

devinci

Voilà J'ai utilisé les paramètres par défaut qu'ils utilisent et ajouté le prix qu'ils utilisent (le (High+Low+Open+2*Close)/5 qui n'existe pas dans metatrader) Utilisez 8 dans le paramètre BandsPrice pour obtenir ce prix.

PS : J'ai édité votre post afin de le rendre "visuellement plus court". Rien d'autre n'a été modifié. J'espère que cela ne vous dérange pas

Salutations

Mladen

devinci:
Mladen,

Voici une demande pour un autre nouvel indicateur appelé bandes Mogalef.

Ce code a été rendu public en mai de cette année lors d'une réunion de traders.

Il y a différentes versions sur les forums pour cet indicateur maintenant : Ninja, PRT, GraphAT (voir documents joints)etc.

mais la version GrapAT semble correcte

Pourriez-vous faire une traduction Mql4 de ce code, je pense que tout le monde l'appréciera...

N'hésitez pas à faire vos propres modifications si nécessaire.

Merci

devinci

****************************************************************

//=======================

// Mogalef Bands - GrapAT

//=======================

//1---- Weighted prices "Mogalef"

//

CP(0)=(High+Low+Open+2*Close)/5

//2---- linear regression Weighted prices P1 periods

//

If RangHisto>=P1 Then

somx = 0

somy = 0

somxx = 0

somxy = 0

For P1 Prices

somx = somx+RangPour

somy = somy+CP

somxx = somxx+RangPour*RangPour

somxy = somxy+RangPour*CP

EndFor

a = (P1*somxy-somx*somy)/(P1*somxx-somx*somx)

b = (somy-a*somx)/P1

MogRegLin = b + a*P1

EndIf

//3---Standard deviation of linear regression on P2 periods

//

If RangHisto>= P1+P2-1 Then

StanDev(0)=StandarDeviation(MogRegLin,P2)

EndIf

//4---- "Mogalef" Bands

//

If RangHisto>=P1+P2 Then

If MogRegLinMogB(1) // NO LAG if Lin Reg is within inside bands

Then

StanDev=StanDev(1)

MogM=MogM(1)

MogH=MogH(1)

MogB=MogB(1)

IfNot // shift/lag when computing new band values

MogM=MogRegLin

MogH=MogRegLin+P3*StanDev

MogB=MogRegLin-P3*StanDev

EndIf

EndIf

//end of code

**************************************************************************

other version:

{*********************************************************

Mogalef Bands easy language Multicharts

**********************************************************}

variables: var0(0), var1(0), HighBand(0), LowBand(0), Mediane(0);

var0 = LinearRegValue((Open+High+Low+(2*Close))/5,3,0);

var1 = StandardDev(var0,7,1);

if currentbar=8 then

begin

HighBand = var0 + 2*var1;

LowBand = var0 - 2*var1;

Mediane = var0;

end

else

if var0 HighBand then

begin

HighBand = var0 + 2*var1;

LowBand = var0 - 2*var1;

Mediane = var0;

end;

Plot1(HighBand,"HighBand");

Plot2(LowBand,"LowBand");

Plot3(Mediane,"Mediane");

*********************************************************

other version:

**************************

Mogalef Bands Ninja trader

**************************

#region Using declarations

using System;

using System.ComponentModel;

using System.Diagnostics;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.Xml.Serialization;

using NinjaTrader.Cbi;

using NinjaTrader.Data;

using NinjaTrader.Gui.Chart;

#endregion

// This namespace holds all indicators and is required. Do not change it.

namespace NinjaTrader.Indicator

{

///

/// Enter the description of your new custom indicator here

///

[Description("Enter the description of your new custom indicator here")]

public class MogalefBands : Indicator

{

#region Variables

// Wizard generated variables

// User defined variables (add any user defined variables below)

private DataSeries CPSerie, ESerie, FSerie;

private double nMedian = 0, nHigh = 0, nLow = 0;

private int LinRegPeriode = 3, StdDevPeriode = 7;

#endregion

///

/// This method is used to configure the indicator and is called once before any bar data is loaded.

///

protected override void Initialize()

{

Add(new Plot(Color.FromKnownColor(KnownColor.Orange), PlotStyle.Line, "MMedian"));

Add(new Plot(Color.FromKnownColor(KnownColor.Gray), PlotStyle.Line, "MHigh"));

Add(new Plot(Color.FromKnownColor(KnownColor.Gray), PlotStyle.Line, "MLow"));

Overlay = true;

CPSerie = new DataSeries( this );

ESerie = new DataSeries( this );

FSerie = new DataSeries( this );

}

///

/// Called on each bar update event (incoming tick)

///

protected override void OnBarUpdate()

{

// Use this method for calculating your indicator values. Assign a value to each

// plot below by replacing 'Close[0]' with your own formula.

if (CurrentBar < 8)

{

CPSerie.Set((Open[0] + High[0] + Low[0] + (2*Close[0]))/5);

nMedian = CPSerie[0];

nHigh = 0;

nLow = 0;

return;

}

CPSerie.Set((Open[0] + High[0] + Low[0] + (2*Close[0]))/5);

if (CurrentBar > 8 + StdDevPeriode)

{

FSerie.Set(LinReg(CPSerie,LinRegPeriode)[0]);

ESerie.Set(StdDev(FSerie,StdDevPeriode)[0]);

}

else

{

FSerie.Set(CPSerie[0]);

ESerie.Set(0);

}

if (FSerie[0] nHigh)

{

nMedian = FSerie[0];

nHigh = nMedian + (2*ESerie[0]);

nLow = nMedian - (2*ESerie[0]);

}

MMedian.Set(nMedian);

MHigh.Set(nHigh);

MLow.Set(nLow);

}

#region Properties

// this line prevents the data series from being displayed in the indicator properties dialog, do not remove

[XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

public DataSeries MMedian

{

get { return Values[0]; }

}

// this line prevents the data series from being displayed in the indicator properties dialog, do not remove

[XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

public DataSeries MHigh

{

get { return Values[1]; }

}

// this line prevents the data series from being displayed in the indicator properties dialog, do not remove

[XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove

public DataSeries MLow

{

get { return Values[2]; }

}

[Description("")]

[Category("Parameters")]

[Gui.Design.DisplayName("LinReg periode")]

public int LinRegPERIODE

{

get { return LinRegPeriode; }

set { LinRegPeriode = Math.Max(1, value); }

}

[Description("")]

[Category("Parameters")]

[Gui.Design.DisplayName("StdDev periode")]

public int StdDevPERIODE

{

get { return StdDevPeriode; }

set { StdDevPeriode = Math.Max(1, value); }

}

#endregion

}

}

******************************************************************

******************************************************************
Dossiers :
 

Bandes Mogalef

Mladen,

Merci beaucoup, c'est parfait.

Bonne journée à tous

devinci

 

Et maintenant un histo si possible s'il vous plaît

Bonjour Mladen,

Pouvez-vous s'il vous plaît faire à partir de 2 QQE avancés dans différents cadres temporels le même histogramme que vous avez fait auparavant avec le QQE simple (avec des barres rouges, vertes et grises).

Merci d'avance

 

Bandes Mogalef

BTW Belle description des Mogalef Bands et de leur utilisation ici http://www.whselfinvest.com/en/trading_strategies_26_Mogalef_Bands.php Enjoy.