Indicateur Super Signals - page 37

 
sennal999:
cela ne se charge pas dans la version 765.

Il est probablement protégé

 

. Isso não está carregando na compilação 765 [/ QUOTE]

On pourrait mettre cet indicateur (support et résistance) dans l'EMA, comme image ?

Ouvrir l'achat ou la vente quand il traverse les lignes de support ou de résistance.

Ouvrir la vente avec la moyenne mobile quand elle traverse la ligne des bandes de bollinger.

Dossiers :
 

soutien et résistance

Dossiers :
 
 

Bandes

//+------------------------------------------------------------------+

//| Bands.mq4 |

//| Copyright 2005-2014, MetaQuotes Software Corp. |

//| MQL4 : trading forex automatisé, testeur de stratégie et indicateurs personnalisés avec MetaTrader |

//+------------------------------------------------------------------+

#property copyright "2005-2014, MetaQuotes Software Corp."

#property link "http://www.mql4.com"

#property description "Bandes de Bollinger"

#property strict

#include

#property indicator_chart_window

#property indicator_buffers 3

#property indicateur_color1 LightSeaGreen

#property indicator_color2 LightSeaGreen

#property indicator_color3 LightSeaGreen

//--- paramètres de l'indicateur

input int InpBandsPeriod=20 ; // Période des Bandes

input int InpBandsShift=0 ; // Décalage des bandes

input double InpBandsDeviations=2.0 ; // Déviations des bandes

//--- tampons

double ExtMovingBuffer[] ;

double ExtUpperBuffer[] ;

double ExtLowerBuffer[] ;

double ExtStdDevBuffer[] ;

//+------------------------------------------------------------------+

//| Fonction d'initialisation de l'indicateur personnalisé |

//+------------------------------------------------------------------+

int OnInit(void)

{

//--- 1 tampon supplémentaire utilisé pour le comptage.

IndicatorBuffers(4) ;

IndicatorDigits(Digits) ;

//--- ligne centrale

SetIndexStyle(0,DRAW_LINE) ;

SetIndexBuffer(0,ExtMovingBuffer) ;

SetIndexShift(0,InpBandsShift) ;

SetIndexLabel(0, "Bands SMA") ;

//--- bande supérieure

SetIndexStyle(1,DRAW_LINE) ;

SetIndexBuffer(1,ExtUpperBuffer) ;

SetIndexShift(1,InpBandsShift) ;

SetIndexLabel(1, "Bands Upper") ;

//--- bande inférieure

SetIndexStyle(2,DRAW_LINE) ;

SetIndexBuffer(2,ExtLowerBuffer) ;

SetIndexShift(2,InpBandsShift) ;

SetIndexLabel(2, "Bands Lower") ;

//--- tampon de travail

SetIndexBuffer(3,ExtStdDevBuffer) ;

//--- vérifier le paramètre d'entrée

if(InpBandsPeriod<=0)

{

Print("Mauvais paramètre d'entrée Bands Period=",InpBandsPeriod) ;

return(INIT_FAILED) ;

}

//---

SetIndexDrawBegin(0,InpBandsPeriod+InpBandsShift) ;

SetIndexDrawBegin(1,InpBandsPeriod+InpBandsShift) ;

SetIndexDrawBegin(2,InpBandsPeriod+InpBandsShift) ;

//--- initialisation terminée

return(INIT_SUCCEEDED) ;

}

//+------------------------------------------------------------------+

//| Bandes de Bollinger |

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,

const int prev_calculated,

const datetime &time[],

const double &open[],

const double &high[],

const double &low[],

const double &close[],

const long &tick_volume[],

const long &volume[],

const int &spread[])

{

int i,pos ;

//---

if(rates_total<=InpBandsPeriod || InpBandsPeriod<=0)

return(0) ;

//--- comptage de 0 à rates_total

ArraySetAsSeries(ExtMovingBuffer,false) ;

ArraySetAsSeries(ExtUpperBuffer,false) ;

ArraySetAsSeries(ExtLowerBuffer,false) ;

ArraySetAsSeries(ExtStdDevBuffer,false) ;

ArraySetAsSeries(close,false) ;

//--- zéro initial

if(prev_calculated<1)

{

for(i=0 ; i<InpBandsPeriod ; i++)

{

ExtMovingBuffer=EMPTY_VALUE ;

ExtUpperBuffer=EMPTY_VALUE ;

ExtLowerBuffer=EMPTY_VALUE ;

}

}

//--- début du calcul

si(prev_calculé>1)

pos=prev_calculated-1 ;

sinon

pos=0 ;

//--- cycle principal

for(i=pos ; i<rates_total && !IsStopped() ; i++)

{

//--- ligne centrale

ExtMovingBuffer=SimpleMA(i,InpBandsPeriod,close) ;

//--- calcule et écrit StdDev

ExtStdDevBuffer=StdDev_Func(i,close,ExtMovingBuffer,InpBandsPeriod) ;

//--- ligne supérieure

ExtUpperBuffer=ExtMovingBuffer+InpBandsDeviations*ExtStdDevBuffer ;

//--- ligne inférieure

ExtLowerBuffer=ExtMovingBuffer-InpBandsDeviations*ExtStdDevBuffer ;

//---

}

//---- OnCalculate terminé. Retourne le nouveau prev_calculé.

return(rates_total) ;

}

//+------------------------------------------------------------------+

//| Calculer l'écart type |

//+------------------------------------------------------------------+

double StdDev_Func(int position,const double &price[],const double &MAprice[],int period)

{

//--- variables

double StdDev_dTmp=0.0 ;

//--- vérification de la position

si(position>=période)

{

//--- calcule la StdDev

for(int i=0 ; i<period ; i++)

StdDev_dTmp+=MathPow(price[position-i]-MAprice[position],2) ;

StdDev_dTmp=MathSqrt(StdDev_dTmp/période) ;

}

//--- retourne la valeur calculée

return(StdDev_dTmp) ;

}

//+------------------------------------------------------------------+

 

MovingAverages.mqh n'est pas très fiable.

 

Signal de point vrai true_point_signal.mq4

Dossiers :
 

Renommé super indicateur de signaux (repeint de la même façon) symphonie_market_emotion_indikator.mq4

 
increase:
J'utilise cet indicateur depuis un certain temps et je l'aime bien.

Bonjour MrTools/Mladen, pourriez-vous s'il vous plaît ajouter des alertes avec des flèches sur les croisements d'indicateurs/lignes de signaux?

Merci

 

Bonjour,

Voici une autre version des indicateurs - une fusion des indicateurs d'alertes et de canaux de la v3. Les alertes peuvent également envoyer des notifications.

Peut-être trouverez-vous cela utile

Best, V.

Dossiers :
Raison: