![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Bonjour Mladen, vous avez fait la version de cet indicateur. Je voudrais demander de faire ici séparément la moyenne mobile, comme sur l'exemple d'un autre indicateur si c'est possible. Merci.
Air92
Ce n'est pas possible (déjà 8 tampons de dessin utilisés - metatrader 4 ne permet pas plus de 8 tampons de dessin)
Air92 Ce n'est pas possible (déjà 8 tampons de dessin utilisés - metatrader 4 ne permet pas plus de 8 tampons de dessin)
Ok, Mladen, j'ai compris, merci.
Bonjour Mladen,
Pourriez-vous s'il vous plaît convertir ce MACD MTF indi en un EA, acheter quand le macd est vert sur 3 tf, vendre quand 3 tf sont rouges. fermer le trade et ouvrir un nouveau sur la tendance inverse.
Paramètres nécessaires : trail, breakeven, sloss, entrée sur barre ouverte ou fermée, numéro magique et taille de lot. Sur les tf inférieurs, cela fonctionne bien ! Je vous remercie. Merci
Bonjour, j'ai trouvé quelque chose d'intéressant pour nous tous sur le forum.il y a ce logiciel qui peut aider à prédire la direction de la prochaine bougie.j'ai travaillé sur ce script mt4 pour y ajouter de la volatilité mais je n'ai pas pu.je veux aussi que l'alerte arrive à la clôture de la bougie actuelle et nous dise la direction de la prochaine bougie sur le point de se former.le principe n'est pas de moi, je l'ai copié de quelque part, le script fonctionne vraiment bien, je veux qu'un programmeur comme Codergurus et Mladin se penche sur ce script, il ne fonctionne pas vraiment bien maintenant, l'alerte continue à faucher et à repeindre.
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1 4
#property indicator_width2 4
extern bool Alerts = TRUE ;
double CrossUp[] ;
double CrossDown[] ;
bool CrossedUp = false ;
bool CrossedDown = false ;
int SignalLabeled = 0 ; // 0 : état initial ; 1 : haut ; 2 : bas.
int upalert=false,downalert=false ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//---- indicateurs
SetIndexStyle(0,DRAW_ARROW, EMPTY) ;
SetIndexArrow(0,233) ;
SetIndexBuffer(0,CrossUp) ;
SetIndexStyle(1,DRAW_ARROW, EMPTY) ;
SetIndexArrow(1,234) ;
SetIndexBuffer(1,CrossDown) ;
//----
return(0) ;
}
//+------------------------------------------------------------------+
//| Fonction personnalisée de désinitialisation de l'indicateur |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0) ;
}
//+------------------------------------------------------------------+
//| Fonction d'itération de l'indicateur personnalisée |
//+------------------------------------------------------------------+
int start(){
int limite,i,compteur ;
double pnow ;
double p1,p2,p3,p4,p5,p6,p7,p8,p9,p10;
double SOT,SOT1,SOT2,SOT3,SOT4,SOT5,SOT6,SOT7,SOT8,SOT9,SOT10 ;
double SOTAV10 ;
double SOTAV2 ;
double Range, AvgRange ;
int counted_bars=IndicatorCounted() ;
//---- vérifier les erreurs éventuelles
if(counted_bars<0) return(-1) ;
//---- dernière barre comptée sera recomptée
if(counted_bars>0) counted_bars-- ;
limit=Bars-counted_bars ;
for(i = 0 ; i <= limite ; i++) {
counter=i ;
Plage=0 ;
AvgRange=0 ;
pour (counter=i;counter<=i+12;counter++)
{
AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]) ;
}
Range=AvgRange/10 ;
// prix actuel Close et Open
double OpenPricenow = Open ;
double ClosePricenow = Close ;
double Volumenow = Volume ;
// bougie 1
double OpenPrice1 = Open ;
double ClosePrice1 = Close ;
double Volume1 = Volume ;
// bougie 2
double OpenPrice2 = Open ;
double ClosePrice2 = Close ;
double Volume2 = Volume ;
// bougie 3
double OpenPrice3 = Open ;
double ClosePrice3 = Close ;
double Volume3 = Volume ;
// bougie 4
double OpenPrice4 = Open ;
double ClosePrice4 = Close ;
double Volume4 = Volume ;
// bougie 5
double OpenPrice5 = Open ;
double ClosePrice5 = Close ;
double Volume5 = Volume ;
// bougie 6
double OpenPrice6 = Open ;
double ClosePrice6 = Close ;
double Volume6=Volume ;
// bougie 7
double OpenPrice7 = Open ;
double ClosePrice7 = Close ;
double Volume7 = Volume ;
// bougie 8
double OpenPrice8 =Open ;
double ClosePrice8 =Close ;
double Volume8 =Volume ;
// bougie 9
double OpenPrice9 = Open ;
double ClosePrice9 = Close ;
double Volume9 = Volume ;
// bougie 10
double OpenPrice10 =Open ;
double ClosePrice10=Close ;
double Volume10=Volume ;
pnow =(ClosePricenow - OpenPricenow) ;
SOT = (pnow / Volumenow)*10000 ;
p1 = (ClosePrice1 - OpenPrice1) ;
SOT1= (p1 / Volume1) *10000 ;
p2 = (ClosePrice2 - OpenPrice2) ;
SOT2 =(p2/ Volume2) *10000 ;
p3 =(ClosePrice3 - OpenPrice3) ;
SOT3 =(p3/Volume3)*10000 ;
p4=(ClosePrice4 - OpenPrice4) ;
SOT4=(p4/Volume4)*10000;
p5=(ClosePrice5 - OpenPrice5) ;
SOT5 =(p5/Volume5)*10000 ;
p6=(ClosePrice6 - OpenPrice6) ;
SOT6 =(p6/Volume6)*10000 ;
p7=(ClosePrice7 - OpenPrice7) ;
SOT7 =(p7 / Volume7)*10000 ;
p8 =(ClosePrice8 - OpenPrice8) ;
SOT8=(p8/Volume8)*10000;
p9 =(ClosePrice9-OpenPrice9) ;
SOT9 =(p9/Volume9)*10000 ;
p10 =(ClosePrice10 -OpenPrice10) ;
SOT10 = (p10/Volume10)*10000 ;
SOTAV10=(SOT1+SOT2+SOT3+SOT4+SOT5+SOT6+SOT7+SOT8+SOT9+SOT10/100*10);
SOTAV2 = (SOTAV10*2) ;
if ((SOT>SOTAV2)&&(ClosePrice1<OpenPrice1)&&(ClosePricenow<OpenPrice1)){
CrossedUp = true ;
CrossedDown= false ;
}
sinon
if((SOT>SOTAV2)&&(ClosePrice1>OpenPrice1)&&(ClosePricenow>OpenPricenow)){
CrossedUp = false ;
CrossedDown = true ;
}
if((CrossedUp==true)&&(SignalLabeled!=1)){
CrossUp=Low-Range*1.3 ;
if(i<=2 && Alerts && !upalert)
{
Alert (Symbol()," ",Period()," M Price UP ") ;
//SendMail("Acheter "+Symbole(),"") ;
upalert=true ;
downalert=false ;
}
SignalLabeled = 1 ;
}
if ((CrossedDown == true) && (SignalLabeled != 2)) {
CrossDown = High + Range*1.3 ;
if(i<=2 && Alerts && !downalert)
{
Alert (Symbol()," ",Period(), "M Price DOWN ") ;
//SendMail("Sell "+Symbol(),"") ;
downalert=true ;
upalert=false ;
}
SignalLabeled = 2 ;
}
}
return(0) ;
}
Voici le principe qui régit ce logiciel :
Speed of trade = (Price Change / Volume) par unité de temps. = (Open-Close)/volume du tick dans la période par défaut.
Si le SoT de la bougie actuelle est supérieur à deux fois le SoT moyen de la période sélectionnée, la prochaine bougie sera dans la même direction que la bougie actuelle. (Nos signaux peuvent être donnés à la clôture de la bougie actuelle).
Attention : Si la bougie actuelle est suivie de 2-3 bougies de même couleur, aucun signal ne doit être donné. A titre d'exemple : Date E/J(Open) E/J(High) E/J(Low) E/J(Close) Volume(E/J) Direction Changement de prix Vitesse 11/06/2012 03:56:00 102.456 102.456 102.429 102.429 96 DOWN -0.027 2.81 11/06/2012 03:57:00 102.429 102.429 102.398 102.413 158 DOWN -0.016 1.01 comme la vitesse est supérieure à 1.70 (moyenne de 14 bougies), il prédit que la prochaine bougie sera à la baisse. On peut faire en sorte que cet indicateur ressemble à un compteur de vitesse ou simplement faire apparaître le nombre avec le signal sur la bougie. Je pense que cela aidera beaucoup à prendre les bonnes décisions. La théorie derrière cela est que chaque hausse ou baisse a besoin d'une force ou d'une inertie plus grande que la force existante, donc dès que nous voyons ou capturons cette force supplémentaire, nous pouvons déterminer la direction de la prochaine bougie et les valeurs également.
......................................................................................................................
Bonjour, j'ai trouvé quelque chose d'intéressant pour nous tous dans le forum.il y a ce logiciel qui peut aider à prédire la direction de la prochaine bougie.j'ai travaillé sur ce script mt4 pour y ajouter de la volatilité mais je n'ai pas pu.je veux aussi faire l'alerte pour venir à la fermeture de la bougie actuelle et nous dire la direction de la prochaine bougie sur le point de se former.Le principe n'était pas le mien, je l'ai copié de quelque part, le script fonctionne vraiment, je veux qu'un programmeur comme Codergurus et Mladin se penche sur ce script, il ne fonctionne pas vraiment bien maintenant, l'alerte continue de faucher et de repeindre.
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1 4
#property indicator_width2 4
extern bool Alerts = TRUE ;
double CrossUp[] ;
double CrossDown[] ;
bool CrossedUp = false ;
bool CrossedDown = false ;
int SignalLabeled = 0 ; // 0 : état initial ; 1 : haut ; 2 : bas.
int upalert=false,downalert=false ;
//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int init()
{
//---- indicateurs
SetIndexStyle(0,DRAW_ARROW, EMPTY) ;
SetIndexArrow(0,233) ;
SetIndexBuffer(0,CrossUp) ;
SetIndexStyle(1,DRAW_ARROW, EMPTY) ;
SetIndexArrow(1,234) ;
SetIndexBuffer(1,CrossDown) ;
//----
return(0) ;
}
//+------------------------------------------------------------------+
//| Fonction personnalisée de désinitialisation de l'indicateur |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0) ;
}
//+------------------------------------------------------------------+
//| Fonction d'itération de l'indicateur personnalisée |
//+------------------------------------------------------------------+
int start(){
int limite,i,compteur ;
double pnow ;
double p1,p2,p3,p4,p5,p6,p7,p8,p9,p10;
double SOT,SOT1,SOT2,SOT3,SOT4,SOT5,SOT6,SOT7,SOT8,SOT9,SOT10 ;
double SOTAV10 ;
double SOTAV2 ;
double Range, AvgRange ;
int counted_bars=IndicatorCounted() ;
//---- vérifier les erreurs éventuelles
if(counted_bars<0) return(-1) ;
//---- dernière barre comptée sera recomptée
if(counted_bars>0) counted_bars-- ;
limit=Bars-counted_bars ;
for(i = 0 ; i <= limite ; i++) {
counter=i ;
Plage=0 ;
AvgRange=0 ;
pour (counter=i;counter<=i+12;counter++)
{
AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]) ;
}
Range=AvgRange/10 ;
// prix actuel Close et Open
double OpenPricenow = Open ;
double ClosePricenow = Close ;
double Volumenow = Volume ;
// bougie 1
double OpenPrice1 = Open ;
double ClosePrice1 = Close ;
double Volume1 = Volume ;
// bougie 2
double OpenPrice2 = Open ;
double ClosePrice2 = Close ;
double Volume2 = Volume ;
// bougie 3
double OpenPrice3 = Open ;
double ClosePrice3 = Close ;
double Volume3 = Volume ;
// bougie 4
double OpenPrice4 = Open ;
double ClosePrice4 = Close ;
double Volume4 = Volume ;
// bougie 5
double OpenPrice5 = Open ;
double ClosePrice5 = Close ;
double Volume5 = Volume ;
// bougie 6
double OpenPrice6 = Open ;
double ClosePrice6 = Close ;
double Volume6=Volume ;
// bougie 7
double OpenPrice7 = Open ;
double ClosePrice7 = Close ;
double Volume7 = Volume ;
// bougie 8
double OpenPrice8 =Open ;
double ClosePrice8 =Close ;
double Volume8 =Volume ;
// bougie 9
double OpenPrice9 = Open ;
double ClosePrice9 = Close ;
double Volume9 = Volume ;
// bougie 10
double OpenPrice10 =Open ;
double ClosePrice10=Close ;
double Volume10=Volume ;
pnow =(ClosePricenow - OpenPricenow) ;
SOT = (pnow / Volumenow)*10000 ;
p1 = (ClosePrice1 - OpenPrice1) ;
SOT1= (p1 / Volume1) *10000 ;
p2 = (ClosePrice2 - OpenPrice2) ;
SOT2 =(p2/ Volume2) *10000 ;
p3 =(ClosePrice3 - OpenPrice3) ;
SOT3 =(p3/Volume3)*10000 ;
p4=(ClosePrice4 - OpenPrice4) ;
SOT4=(p4/Volume4)*10000;
p5=(ClosePrice5 - OpenPrice5) ;
SOT5 =(p5/Volume5)*10000 ;
p6=(ClosePrice6 - OpenPrice6) ;
SOT6 =(p6/Volume6)*10000 ;
p7=(ClosePrice7 - OpenPrice7) ;
SOT7 =(p7 / Volume7)*10000 ;
p8 =(ClosePrice8 - OpenPrice8) ;
SOT8=(p8/Volume8)*10000;
p9 =(ClosePrice9-OpenPrice9) ;
SOT9 =(p9/Volume9)*10000 ;
p10 =(ClosePrice10 -OpenPrice10) ;
SOT10 = (p10/Volume10)*10000 ;
SOTAV10=(SOT1+SOT2+SOT3+SOT4+SOT5+SOT6+SOT7+SOT8+SOT9+SOT10/100*10);
SOTAV2 = (SOTAV10*2) ;
if ((SOT>SOTAV2)&&(ClosePrice1<OpenPrice1)&&(ClosePricenow<OpenPrice1)){
CrossedUp = true ;
CrossedDown= false ;
}
sinon
if((SOT>SOTAV2)&&(ClosePrice1>OpenPrice1)&&(ClosePricenow>OpenPricenow)){
CrossedUp = false ;
CrossedDown = true ;
}
if((CrossedUp==true)&&(SignalLabeled!=1)){
CrossUp=Low-Range*1.3 ;
if(i<=2 && Alerts && !upalert)
{
Alert (Symbol()," ",Period()," M Price UP ") ;
//SendMail("Acheter "+Symbole(),"") ;
upalert=true ;
downalert=false ;
}
SignalLabeled = 1 ;
}
if ((CrossedDown == true) && (SignalLabeled != 2)) {
CrossDown = High + Range*1.3 ;
if(i<=2 && Alerts && !downalert)
{
Alert (Symbol()," ",Period(), "M Price DOWN ") ;
//SendMail("Sell "+Symbol(),"") ;
downalert=true ;
upalert=false ;
}
SignalLabeled = 2 ;
}
}
return(0) ;
}
Voici le principe qui régit ce logiciel :
Vitesse de transaction = (Variation de prix / Volume) par unité de temps. = (Ouverture-Clôture)/volume du tick dans la période par défaut.
Si le SoT de la bougie actuelle est supérieur à deux fois le SoT moyen de la période sélectionnée, la prochaine bougie sera dans la même direction que la bougie actuelle. (Nos signaux peuvent être donnés à la clôture de la bougie actuelle).
Attention : Si la bougie actuelle est suivie de 2-3 bougies de même couleur, aucun signal ne doit être donné. A titre d'exemple : Date E/J(Open) E/J(High) E/J(Low) E/J(Close) Volume(E/J) Direction Changement de prix Vitesse 11/06/2012 03:56:00 102.456 102.456 102.429 102.429 96 DOWN -0.027 2.81 11/06/2012 03:57:00 102.429 102.429 102.398 102.413 158 DOWN -0.016 1.01 comme la vitesse est supérieure à 1.70 (moyenne de 14 bougies), il prédit que la prochaine bougie sera à la baisse. On peut faire en sorte que cet indicateur ressemble à un compteur de vitesse ou simplement faire apparaître le nombre avec le signal sur la bougie. Je pense que cela aidera beaucoup à prendre les bonnes décisions. La théorie derrière cela est que chaque hausse ou baisse a besoin d'une force ou d'une inertie plus grande que la force existante, donc dès que nous voyons ou capturons cette force supplémentaire, nous pouvons déterminer la direction de la prochaine bougie et les valeurs également.
......................................................................................................................Mastercash
Comme je le vois, il faudra faire des tests d'exécution avant de faire quoi que ce soit sur le code. Dès que le marché sera ouvert, nous verrons ce que nous pouvons faire.
Bonjour
Quelqu'un pourrait-il m'aider à ajouter du code à ce script.jarroo_level_picker.mq4
Ce script dessine une ligne sur l'ouverture ou la fermeture de la bougie selon qu'on la dépose sous ou sous la moitié de la bougie et j'aimerais qu'il dessine aussi une petite flèche sous ou sous cette bougie pour voir plus tard sur quelle bougie il a été utilisé.
Merci d'avance.
Bonjour
Quelqu'un pourrait-il m'aider à ajouter du code à ce script.jarroo_level_picker.mq4
Ce script dessine une ligne à l'ouverture ou à la fermeture de la bougie selon qu'on la dépose sous ou sous la moitié de la bougie et j'aimerais qu'il dessine aussi une petite flèche sous ou sous cette bougie pour voir plus tard sur quelle bougie il a été utilisé.
Merci d'avance.Andrewsurfer
Essayez cette version. Elle n'ajoute pas de flèche mais ajoute une barre de la même couleur que la ligne de la barre sur laquelle la bougie a été utilisée.
Andrewsurfer Essayez cette version. Elle n'ajoute pas de flèche mais une barre de la même couleur que la ligne de la barre dont la bougie a été utilisée.
Je suis désolé mais je ne vois aucun changement. Il n'y a toujours que la ligne bleue sans aucun autre signe.
Je suis désolé mais je ne vois aucun changement. Il n'y a toujours que la ligne bleue sans aucun autre signe.
Il y a une ligne supplémentaire (comme sur l'image) et elle est créée à la barre où vous déposez le script à l'endroit suivant
Il y a une ligne supplémentaire (comme sur l'image) et elle est créée à la barre où vous déposez le script à l'endroit suivant
J'avais des paramètres incorrects du graphique MT4 au premier plan et maintenant ça marche.
Merci beaucoup.![](https://c.mql5.com/forextsd/smiles/regular_smile.png)