Rejoindre la communauté
banner_forum
Devenez membre de la plus grande
communauté francophone sur le Forex
Partagez, échangez et apprenez en gagnant des crédits sur votre compte de trading

Comment on fait en MQL pour ...

  • Lorka85

    merci fury, tu lit dans le code comme Champollion dans les hiéroglyphe, c'est beau a voir :)
    donc j'ai suprimer la variable periode de la ligne de code que tu a cité.
    et pour le SetIndexDrawBegin , une modif simple a faire ?
  • furynick

    C'est juste esthétique, pas la peine de t'embêter pour ça.
  • Lorka85

    bon j'ai enlever le period, mais le probleme est le graphe se met plus correctement a jour, je change de Timeframe, et je revient sur le précédent, et les donnés ne sont plus du tous les memes (limite inversé).

    dans l'absolut il ne repeint que d'une bar d'origine ?
  • furynick

    Si period = 20 il repeint de 20 barres.
  • NYKOES

    Salut, je cherche une portion de code simple pour détecter le cross d'une bougie avec une MA... depuis une heure sans succès. Si une âme charitable passe dans le coin :) Merci par avance.
  • furynick

    Code
    double maval = iMA(NULL, 0, period, 0, MODE_EMA, PRICE_CLOSE, 1); if (Open[1] < maval && Close[1] > maval) { // bullish cross } if (Open[1] > maval && Close[1] < maval) { // bearish cross }
  • NYKOES

    Je ne peux que m'incliner devant toi Ô grand Fury ! c'est tellement simple en plus, que j'en ai encore une fois honte .... ;)
  • antonin1021

    salut! :)

    comment fait t'on en MQL pour fermer une position quand le cours atteint le plus haut de la bougie précédente?

    cordialement!
  • NYKOES

    Oups non, en fait j'ai besoin de quelquechose de plus précis, j'ai besoin de savoir si le price de la bougie a touché une ligne de MA, comme sur le screenshot joint.
    NYKOES a joint une image
    G3654ED
  • furynick

    Ben c'est exactement ça Nykoes, si l'ouverture est d'un côté est que la fermeture est de l'autre côté de la MA c'est que le prix l'a touché.

    Dans ton exemple, la première barre sera détectée par la 2ème condition de mon code et la barre blanche qui la suit sera détectée par la 1ère condition.

    Ou alors je en comprends pas bien ce que tu veux.

    @Antonin :
    J'en conclu que tu souhaites fermer un ordre BUY
    Code
    if (Bid > High[1]) closeBuyOrder();

    Dans le cas d'un SELL (cours inférieur au plus bas de la bougie précédente)
    Code
    if (Ask < Low[1]) closeSellOrder();
  • antonin1021

    oui merci c'était bien pour un ordre BUY.
    mais closeBuyOrder c'est une fonction invalide donc j'ai mis orderclose() a la place.
    j'ai quand même un souci pour passer mais ordre car il m'ouvre plein de position je croie
  • furynick

    Il faut que tu utilises ma fonction de détection d'une nouvelle barre pour ne passer qu'un seul ordre au bon moment.
  • antonin1021

    merci beaucoup furynick. :)

    mais le savedVolume c'est quoi car pour la compilation il me dit variable non définit mais je ne sait pas quoi sa correspond :s
  • antonin1021

    En faite c'est bon j'ai mi double savedVolume dans les variables sa fonctionne :)
  • Lorka85

    bonjour,

    j'ai un petit soucis de logique mathématique "simple" je pense :)

    en fait je récupère les valeurs des points pivot journaliers, disons :

    resistance2= 1.43300
    resistance1= 1.43100
    pivotcentral = 1.42540
    support1= 1.42030
    support2= 1.41800

    imaginons que j'ai un signal BUY alors que le prix se situe entre pivotcentral et resitance1 a 1.42650, je veux donc que l'ea vise la resitance1 comme takeprofit qui est la résistance la plus proche au dessus du prix actuel.

    comment "calculer" dans cette liste les 2 valeurs qui entourent le plus proche (au dessus et au dessous) la valeur du prix actuel ? (en l’occurrence ça serait donc resitance1 a 1.43100 au dessus et pivotcentral en dessous a 1.42540 si le prix actuel est a 1.42650).

    merci :)

  • furynick

    Tu es obligé dans ce cas là de tester la fourchette à chaque couple comme par ex. (c'est la même réponse que celle de Nykoes en fait)
    Code
    if (price > pivotcentral && price < resistance1) { // code kivabien }
  • Lorka85

    ha bon ? on ne peu pas faire ça d'une autre maniere ?

    comme par exemple , pour connaitre la resitance la plus proche du haut en buy, eliminer toutes les valeurs inferieur au prix, et cellent qui restent, on fait une soustraction, et on garde que celle qui a le resultat de cette soustraction la plus basse ? (avec une boucle ou while je sais pas).
  • furynick

    C'est toi qui voit mais la condition if reste le plus simple.

    Après tu peux t'amuser à développer des dizaines de lignes de code pour faire la même chose en mieux (et en plus buggé) mais tu perdra beaucoup de temps à mon avis.
  • Lorka85

    ok fury je te fait confiance :)
  • Lorka85

    j'aimerais enlver 2 zero a une valeur double comme ceci :

    DoubleToStr(MarketInfo(Symbol(), MODE_ASK),5))
    donc ca ne garde que 5 chiffre après la virgule, mais c'est au format string !

    je ne peu pas assigner ça a une variable double genre
    Code
    double PriceAsk ; PriceAsk = DoubleToStr(MarketInfo(Symbol(), MODE_ASK),5);
    (ca me met que = is not valid) vous avez pas une astuce ?