Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
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.
soutien et résistance
voici les indicateurs
https://www.mql5.com/en/forum/general
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
Renommé super indicateur de signaux (repeint de la même façon) symphonie_market_emotion_indikator.mq4
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.