Aide au codage - page 450

 

Salut King mladen monsieur,

Dans ce fichier, j'ai besoin d'une modification, bougie actuelle haut / bas engulf bougie précédente ouverture fermeture corps, une étape en cours bar vous l'avez déjà ajouté, ce qui montre que vous savez déjà, vous êtes génie, tout le monde sait.

salutations

Dossiers :
audusdh15.png  28 kb
 
keansajeweki:
Bonjour Mladen. Pouvez-vous s'il vous plaît regarder cette menace, car lorsque je l'insère dans mon MT4 et que je redémarre, je n'ai pas de fichier ex. Il s'agit de l'USC Murrey Math Oscillator V2.

Veuillez joindre le fichier exact que vous utilisez afin que quelqu'un puisse y jeter un coup d'œil.

 
hanic:
Salut King mladen monsieur,

Dans ce fichier, j'ai besoin d'une modification, la bougie actuelle haut / bas engulf bougie précédente ouverture fermeture corps. une étape en cours de barre vous avez déjà ajouté, ce qui montre que vous savez déjà, vous êtes un génie, tout le monde sait.

Salutations

Le haut de cette bougie n'a pas englouti les hauts des 3 barres précédentes (regardez de plus près le haut de cette barre et comparez-le au haut des 2 barres précédentes).

De plus, vous ne pouvez pas comparer des pommes et des poires : si l'on compare l'ouverture/la fermeture (le corps), alors le haut et le bas de la barre actuelle ne sont pas utilisés mais aussi l'ouverture/la fermeture (le corps). Si vous utilisez high./low, alors les highs/lows des barres comparées sont également utilisés.

 

Texte du Pivot Point Confluence

J'ai trouvé un bel indicateur MT4 Pivot Point Confluence mais il n'affiche pas de texte ni de chiffres comme sur l'image ci-dessous. Il ne dessine que des lignes mais j'aime aussi voir du texte et des chiffres.

Dossiers :
 
keansajeweki:
Bonjour Mladen. Pouvez-vous s'il vous plaît regarder cette menace, car lorsque je l'insère dans mon MT4 et que je redémarre, je n'ai pas de fichier ex. Il s'agit de l'oscillateur mathématique USC Murrey V2.

keansajeweki

C'est le code du tradingView (pas le code metatrader).

Quelqu'un l'a posté comme mq4 mais cela n'a rien à voir avec metatrader.

 

Est-ce que quelqu'un pourrait corriger ce problème pour qu'il fonctionne avec un courtier à 6 chiffres ?

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

//| 70/50VolBreakout.mq4 |

//| Keris2112 |

//| |

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

#property copyright "Keris2112"

#property link ""

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 DodgerBlue

#property indicator_color2 Red

#property indicator_color3 Sienna

#property indicator_color4 Lime

#property indicator_width1 5

#property indicator_width2 3

#property indicator_width3 5

#property indicator_width4 3

extern int EntryPercent = 70 ;

extern int StopPercent = 50 ;

int i=1, shift ;

double PrevRange ;

double LongEntry ;

double LongStop ;

double ShortEntry ;

double ShortStop ;

bool result ;

//---- tampons

double ExtMapBuffer1[] ;

double ExtMapBuffer2[] ;

double ExtMapBuffer3[] ;

double ExtMapBuffer4[] ;

double ExtMapBuffer5[] ;

bool isNewDay(int _shift)

{

//----

result=false ;

if ( (TimeHour(Time[_shift])==0) && (TimeMinute(Time[_shift])==0) ) result=true ;

//----

return(result) ;

}

void GetRS1ofDay(int _shift)

{

int prevDay=TimeDay(Time[_shift+1]) ;

//----

i=1 ;

while (TimeDay(Time[_shift+i])==prevDay) i++ ;

i-- ;

PrevRange=High - Low[Lowest(NULL,0,MODE_LOW,i,_shift+1)] ;

LongEntry = Open[_shift] + (PrevRange * (EntryPercent*0.01)) ;

LongStop = LongEntry - (PrevRange * (StopPercent*0.01)) ;

ShortEntry = Open[_shift] - (PrevRange * (EntryPercent*0.01)) ;

ShortStop = ShortEntry + (PrevRange * (StopPercent*0.01)) ;

ExtMapBuffer1[_shift] = LongEntry ;

ExtMapBuffer2[_shift] = LongStop ;

ExtMapBuffer3[_shift] = ShortEntry ;

ExtMapBuffer4[_shift] = ShortStop ;

Commentaire(

"Plage précédente : ",PrevRange*1/Point," pips",

"\n",(EntryPercent),"% de la plage précédente : ",MathRound((EntryPercent*PrevRange*(0.01/Point)))," pips",

"\n",(StopPercent),"% de la fourchette précédente : ",MathRound((StopPercent*PrevRange*(0.01/Point)))," pips",

"\nOpen : ",Open[_shift],

"\NEnter BuyStop at : ",ExtMapBuffer1[_shift]," avec StopLoss à : ",ExtMapBuffer2[_shift],

"\NEnter SellStop at : ",ExtMapBuffer3[_shift]," avec un StopLoss à : ",ExtMapBuffer4[_shift]) ;

}

void CopyLevels1Day(int _shift)

{

ExtMapBuffer1[_shift]=ExtMapBuffer1[_shift+1] ;

ExtMapBuffer2[_shift]=ExtMapBuffer2[_shift+1] ;

ExtMapBuffer3[_shift]=ExtMapBuffer3[_shift+1] ;

ExtMapBuffer4[_shift]=ExtMapBuffer4[_shift+1] ;

ExtMapBuffer5[_shift]=ExtMapBuffer5[_shift] ;

}

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

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

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

int init()

{

//---- indicateurs

IndicatorBuffers(4) ;

SetIndexStyle(0,DRAW_ARROW) ;

SetIndexArrow(0,160) ;

SetIndexBuffer(0,ExtMapBuffer1) ;

SetIndexEmptyValue(0,0.0) ;

SetIndexLabel(0,0) ;

SetIndexStyle(1,DRAW_ARROW) ;

SetIndexArrow(1,160) ;

SetIndexBuffer(1,ExtMapBuffer2) ;

SetIndexEmptyValue(1,0.0) ;

SetIndexLabel(1,0) ;

SetIndexStyle(2,DRAW_ARROW) ;

SetIndexArrow(2,160) ;

SetIndexBuffer(2,ExtMapBuffer3) ;

SetIndexEmptyValue(2,0.0) ;

SetIndexLabel(2,0) ;

SetIndexStyle(3,DRAW_ARROW) ;

SetIndexArrow(3,160) ;

SetIndexBuffer(3,ExtMapBuffer4) ;

SetIndexEmptyValue(3,0.0) ;

SetIndexLabel(3,0) ;

SetIndexBuffer(0,ExtMapBuffer5) ;

//----

return(0) ;

}

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

//| Fonction de désinitialisation de l'indicateur Custor |

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

int deinit()

{

//----

//----

return(0) ;

}

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

//| Fonction d'itération de l'indicateur personnalisée |

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

int start()

{

int limite,firstDay ;

int counted_bars=IndicatorCounted() ;

si (counted_bars<0) return(0) ;

si (counted_bars==0)

{

limit=Bars-1 ;

i=1 ;

firstDay=TimeDay(Time[limit]) ;

while (TimeDay(Time[limit-i])==firstDay) i++ ;

limit=limit-i-PERIOD_D1/Period() ;

}

if (counted_bars>0) limit=Bars-counted_bars ;

//----

si (Period()>PERIOD_D1) retour ;

for (shift=limit;shift>=0;shift--)

{

if (isNewDay(shift)) GetRS1ofDay(shift) ; else CopyLevels1Day(shift) ;

}

//----

return(0) ;

}

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

 

Bonjour Mladen - comme toujours merci pour votre réponse - est-ce que cela fait partie de vos compétences de construire un tel indicateur ?

mladen:
D'après mes recherches, il n'existe pas d'indicateur de ce type.
 
angrysky:
Quelqu'un pourrait-il réparer ce problème pour qu'il fonctionne avec un courtier à 6 chiffres ?

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

//| 70/50VolBreakout.mq4 |

//| Keris2112 |

//| |

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

#property copyright "Keris2112"

#property link ""

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 DodgerBlue

#property indicator_color2 Red

#property indicator_color3 Sienna

#property indicator_color4 Lime

#property indicator_width1 5

#property indicator_width2 3

#property indicator_width3 5

#property indicator_width4 3

extern int EntryPercent = 70 ;

extern int StopPercent = 50 ;

int i=1, shift ;

double PrevRange ;

double LongEntry ;

double LongStop ;

double ShortEntry ;

double ShortStop ;

bool result ;

//---- tampons

double ExtMapBuffer1[] ;

double ExtMapBuffer2[] ;

double ExtMapBuffer3[] ;

double ExtMapBuffer4[] ;

double ExtMapBuffer5[] ;

bool isNewDay(int _shift)

{

//----

result=false ;

if ( (TimeHour(Time[_shift])==0) && (TimeMinute(Time[_shift])==0) ) result=true ;

//----

return(result) ;

}

void GetRS1ofDay(int _shift)

{

int prevDay=TimeDay(Time[_shift+1]) ;

//----

i=1 ;

while (TimeDay(Time[_shift+i])==prevDay) i++ ;

i-- ;

PrevRange=High - Low[Lowest(NULL,0,MODE_LOW,i,_shift+1)] ;

LongEntry = Open[_shift] + (PrevRange * (EntryPercent*0.01)) ;

LongStop = LongEntry - (PrevRange * (StopPercent*0.01)) ;

ShortEntry = Open[_shift] - (PrevRange * (EntryPercent*0.01)) ;

ShortStop = ShortEntry + (PrevRange * (StopPercent*0.01)) ;

ExtMapBuffer1[_shift] = LongEntry ;

ExtMapBuffer2[_shift] = LongStop ;

ExtMapBuffer3[_shift] = ShortEntry ;

ExtMapBuffer4[_shift] = ShortStop ;

Commentaire(

"Plage précédente : ",PrevRange*1/Point," pips",

"\n",(EntryPercent),"% de la plage précédente : ",MathRound((EntryPercent*PrevRange*(0.01/Point)))," pips",

"\n",(StopPercent),"% de la fourchette précédente : ",MathRound((StopPercent*PrevRange*(0.01/Point)))," pips",

"\nOpen : ",Open[_shift],

"\NEnter BuyStop at : ",ExtMapBuffer1[_shift]," avec StopLoss à : ",ExtMapBuffer2[_shift],

"\NEnter SellStop at : ",ExtMapBuffer3[_shift]," avec un StopLoss à : ",ExtMapBuffer4[_shift]) ;

}

void CopyLevels1Day(int _shift)

{

ExtMapBuffer1[_shift]=ExtMapBuffer1[_shift+1] ;

ExtMapBuffer2[_shift]=ExtMapBuffer2[_shift+1] ;

ExtMapBuffer3[_shift]=ExtMapBuffer3[_shift+1] ;

ExtMapBuffer4[_shift]=ExtMapBuffer4[_shift+1] ;

ExtMapBuffer5[_shift]=ExtMapBuffer5[_shift] ;

}

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

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

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

int init()

{

//---- indicateurs

IndicatorBuffers(4) ;

SetIndexStyle(0,DRAW_ARROW) ;

SetIndexArrow(0,160) ;

SetIndexBuffer(0,ExtMapBuffer1) ;

SetIndexEmptyValue(0,0.0) ;

SetIndexLabel(0,0) ;

SetIndexStyle(1,DRAW_ARROW) ;

SetIndexArrow(1,160) ;

SetIndexBuffer(1,ExtMapBuffer2) ;

SetIndexEmptyValue(1,0.0) ;

SetIndexLabel(1,0) ;

SetIndexStyle(2,DRAW_ARROW) ;

SetIndexArrow(2,160) ;

SetIndexBuffer(2,ExtMapBuffer3) ;

SetIndexEmptyValue(2,0.0) ;

SetIndexLabel(2,0) ;

SetIndexStyle(3,DRAW_ARROW) ;

SetIndexArrow(3,160) ;

SetIndexBuffer(3,ExtMapBuffer4) ;

SetIndexEmptyValue(3,0.0) ;

SetIndexLabel(3,0) ;

SetIndexBuffer(0,ExtMapBuffer5) ;

//----

return(0) ;

}

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

//| Fonction de désinitialisation de l'indicateur Custor |

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

int deinit()

{

//----

//----

return(0) ;

}

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

//| Fonction d'itération de l'indicateur personnalisée |

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

int start()

{

int limite,firstDay ;

int counted_bars=IndicatorCounted() ;

si (counted_bars<0) return(0) ;

si (counted_bars==0)

{

limit=Bars-1 ;

i=1 ;

firstDay=TimeDay(Time[limit]) ;

while (TimeDay(Time[limit-i])==firstDay) i++ ;

limit=limit-i-PERIOD_D1/Period() ;

}

if (counted_bars>0) limit=Bars-counted_bars ;

//----

si (Period()>PERIOD_D1) retour ;

for (shift=limit;shift>=0;shift--)

{

if (isNewDay(shift)) GetRS1ofDay(shift) ; else CopyLevels1Day(shift) ;

}

//----

return(0) ;

}

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

Cela semble fonctionner

Quel est le problème que vous rencontrez ?

Dossiers :
test.gif  71 kb
 

Bonjour Monsieur,

Lorsque nous comparons une équation, c'est-à-dire le bas ou le haut de la bougie précédente, plus grand ou plus petit que la bougie précédente, metatrader ne permet pas de le faire ?

Dans le modèle belthold cette formule est utilisée, dans ce c >h1.

Est-ce vrai que nous ne pouvons pas comparer le haut et le bas avec les corps d'ouverture et de fermeture ? Je suppose que dans de nombreux cas, dans de nombreux modèles de chandeliers, le haut et le bas sont comparés aux corps des bougies.

salutations

Dossiers :
mdsir.png  16 kb
belthold.png  20 kb
 
triip:
J'ai trouvé un bel indicateur MT4 Pivot Point Confluence mais il n'affiche pas les étiquettes de texte et les chiffres comme sur l'image ci-dessous. Il ne dessine que des lignes mais j'aime aussi voir du texte et des chiffres.

Je ne sais pas quelle version a été utilisée pour afficher comme cela, mais il ne s'affiche pas comme cela dans l'ancienne version de metatrader non plus (j'ai essayé dans la build 432 aussi, et il affiche exactement la même chose que dans les nouvelles builds)