Demandez ! - page 45

 
majlisb:
Bonjour, professionnel

Par exemple, dans une Ea, nous recevons un signal et nous voulons placer un ordre BUYSTOP/SellStop à la hauteur de la barre de signal,

Nous devons attendre l'ouverture d'une nouvelle barre pour trouver la hauteur de la barre de signal, comment pouvons-nous faire cela ? (tout article, post, EA, , , , )

Merci

Si vous comptez 3 barres pour le signal, comptez maintenant 4 barres simplement oui ? Codersguru a un bon article sur une autre méthode dans le site mql4.

 

J'ai une question à poser :

Cela peut nécessiter une programmation supplémentaire qui ne peut pas être faite sur MT. Je n'en suis pas sûr. En fait, j'ai un EA qui effectue à la fois des backtests et des forward tests dans MT avec les données d'Alpari. Sur les flux de données d'autres courtiers, il y a souvent un écart entre les transactions. Parfois, si une transaction est ouverte sur Alpari, elle peut ne pas l'être avec un autre courtier ou vice versa. Est-il possible d'écrire une sorte de script qui exécutera les transactions sur la plateforme de mon courtier juste après qu'une transaction ait été exécutée sur la plateforme d'Alpari ?

Par exemple, je reçois un signal pour acheter 2 lots de câble à 1.9450 sur Alpari. La transaction est exécutée. Ce même ordre est ensuite entré sur la plateforme de mon courtier en direct une fraction de seconde plus tard. Lorsqu'un stop ou un niveau t/p est atteint sur Alpari et que la transaction est fermée, cette même transaction est alors fermée sur la plateforme de mon courtier en direct.

Il ne s'agit pas d'un système de scalping, donc s'il y a un écart de 2 pip entre les deux prix, ce n'est pas grave. Quelqu'un sait-il si cela est possible et, si oui, comment dois-je m'y prendre ? Merci.

 

Aide avec MTF xpMA

Codersguru,

Pouvez-vous vérifier les capacités MTF de xpMA ?

Merci beaucoup,

Pippt

Veuillez consulter le post #364 à l'adresse

https://www.mql5.com/en/forum/173574

 

Question simple mais que je n'arrive pas à comprendre. Quelle est la fonction mathématique dans mql utilisée pour arrondir une valeur double ?

disons par exemple, que j'ai 0.69 et que je veux que le résultat soit .70. ou si la valeur est .63 et que le résultat serait .60.

les fonctions mathceiling() et mathfloor() ne font pas l'affaire.

 

Question pour les débutants

Bonjour à tous...

Grâce à CodersGuru et à son excellent cours, j'essaie d'apprendre MQL4 en convertissant un indicateur que j'ai écrit en MQL3.

en convertissant un indicateur que j'ai écrit en MQL3.

J'ai rencontré un problème et j'apprécierais un peu d'aide... si quelqu'un pouvait me dire ce que je fais de mal dans le code suivant.

Le problème se trouve dans les 2 instructions If... aux lignes 78 & 79

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

//| First_Indicator.mq4 |

//| Codersguru |

//| https://www.mql5.com/en/forum |

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

#property copyright "Codersguru"

#property link "https://www.forex-tsd.com"

#property indicator_chart_window

#property indicator_buffers 8

#property indicator_color1 Red

//---- tampons

double ExtMapBuffer1[] ;

//----------------- Déclarations de variables ----------------------+

int pos=0 ;

double Pivot_Point = 0 ;

double new_Pivot_Point =0 ;

double prev_Pivot_Point=0 ;

double Pivot_Factor=0 ;

double LastClose=0 ;

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

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

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

int init()

{

//---- indicateurs

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1) ;

SetIndexBuffer(0,ExtMapBuffer1) ;

string short_name = "Ligne Pivot" ;

IndicatorShortName(nom_court) ;

retour(1) ;

}

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

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

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

int deinit()

{

return(0) ;

}

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

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

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

int start()

{

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-- ;

int cnt=Bars-counted_bars ;

//---- boucle de calcul principale

while(cnt >= 0)

{

LastClose = Close[cnt] ;

If (LastClose > Pivot_Point) //Line 78

If(new_Pivot_Point > prev_Pivot_Point) //Line 79

{

prev_Pivot_Point = new_Pivot_Point ;

Pivot_Point = new_Pivot_Point ;

}

ExtMapBuffer1[cnt]= Pivot_Point ;

cnt-- ;

}

return(0) ;

}

Ce sont les messages du compilateur -

---------------------------------------------------------------

Si' - la fonction n'est pas définie .....(78,10)

Si' - point-virgule attendu .....(79,13)

Si - la fonction n'est pas définie ...(79, 13)

'{' - point-virgule attendu ....(80, 13)

----------------------------------------------------------------

Quoi que je fasse, je n'arrive pas à trouver la cause du problème... Je sais que c'est très simple, mais cela m'échappe...

Merci à tous ceux qui peuvent m'aider à résoudre cette question élémentaire....

Chef

P.S. Bonne année, santé et prospérité à tous.

 

MQL est sensible à la casse : utilisez "si" au lieu de "If".

 

WOW... c'était rapide....

MERCI beaucoup pour la réponse rapide... c'est résolu...

votre réponse est très appréciée... bonne année...

Chef

 

MathRound

BluePearl:
question simple mais je n'arrive pas à comprendre. quelle fonction mathématique dans mql est utilisée pour arrondir une valeur double ?

disons par exemple que j'ai 0.69 et que je veux que le résultat soit .70. ou si la valeur est .63 et que le résultat serait .60.

les fonctions mathceiling() et mathfloor() ne font pas l'affaire.

Il y a "MathRound(double x)" qui arrondit une valeur à l'entier le plus proche ; comme "MathFloor(x+0.5)", je suppose. Pour obtenir un arrondi à une décimale, vous pouvez utiliser une expression de décalage/décalage décimal comme "MathRound(x*10)/10".

 

Comment puis-je ajouter des flèches à la pièce jointe pour montrer le haut et le bas de la croix ?

Dossiers :
mtf_cross.mq4  5 kb
 

Histogramme

Eh bien, voici une autre question alors que je continue à apprendre comment convertir de MQL3 à MQL4....

Je voudrais peindre une section du graphique qui se trouve entre deux lignes, supérieure et inférieure. Je ne sais pas s'il existe une fonction permettant de peindre une section d'écran ou non, j'ai donc décidé d'essayer d'utiliser la fonction "Draw_Histogram" dans l'instruction SetIndexStyle(). Mais je ne comprends pas bien comment cela fonctionne. Lorsque je l'utilise, rien ne se passe.

ex :

SetIndexStyle(7,DRAW_HISTOGRAM,0,1) ;

ExtMapBuffer8[cnt]= (Pivot_Point-(Short_Line*Point)) ;

Print("Cnt = ",cnt," Histo = ",ExtMapBuffer8[cnt]," Calc = ",(Pivot_Point+(Short_Line*Point)) ;)

La sortie dans le journal produit le bon cnt, le bon calc mais la valeur Histo est nulle.

J'ai examiné le code dans l'indicateur MACD, en vain, et dans l'indicateur Heiken-Ashi, et je ne comprends pas comment cela fonctionne. L'indicateur Heiken-Ashi semble utiliser 4 buffers pour créer chaque bougie, mais je n'en suis pas certain.

Le MACD semble utiliser une ligne de base de zéro, à partir de laquelle la barre de l'histogramme est dessinée, y a-t-il une ligne de base à partir de laquelle il commence ? Si oui, comment l'établir ?

Quelqu'un pourrait-il m'expliquer comment fonctionne cette fonction, afin que je puisse apprendre à la coder correctement. S'il existe une fonction permettant de peindre une section d'écran spécifique, j'apprécierais également toute information à ce sujet.

Merci à tous pour votre aide....

Cordialement,

Chef