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

ERREUR 130 sous MQL4

  • zartan

    onjour à tous ....

    je débute sur MT4/MQL4 et j'ai programmé un EA qui bien sûr essaye ... de passer des ordres
    La création de l'ordre se passe bien mais le modification des SL ou TP me retourne un erreur 130 qui indique un pb de stop loss ou take Profit
    est-il posible de connaitre les limites des SL et TK ,par MQL4 bien sûr, imposés par le broker ??

    merci de votre aide .
  • EroTiXx

    error 130 == ERR_INVALID_STOP

    Faut bien vérifié que ton SL soit en 3, 4 ou 5 décimal ( selon le broker )

    Un petit exemple :
    (OrderModify(Ticket,OrderOpenPrice(),NormalizeDouble(stoploss,Digits), NormalizeDouble(takeprofit,Digits)

    Mais avant faut mettre cela :
    if (Digits==3 || Digits==5)
    points = Point*10;
    else
    points = Point;

    Ensuite tu déclare ton stoploss de cette façon :
    double stoploss= Ask - 10 * points;

    NormalizeDouble sert à ce que ton stoploss comporte bien le nombre de décimal nécessaire
    1.32528 = bon
    1.32528221754 = pas bon
    le Digits, fait en sort qu'il y est toujours le bon nombre de décimal, selon la devise.
  • zartan

    Merci pour ta réponse et la vitesse de celle-ci [

    oui mail le dow jones par exemple est sur 0 digits non ?

    sinon j'ai pigé le principe ...

    merci encore
  • EroTiXx

    Ouais, mais normalement c'est bon

    cela fonctionne sur le CAC40, donc pareil, pas de chiffre après la virgule, comme le DJ

    if (Digits==3 || Digits==5)
    points = Point*10;
    else
    points = Point;

    Pour le DJ, il va prendre le ELSE { points = Point }
    Car effectivement c'est 0 digits
    Bon c'est pas très bien mis en valeur, mais Point ( avec majuscule et sans "s" ) est une fonction mql4
    http://docs.mql4.com/predefined/variables/point

    Grossomodo tu va mettre stoploss=10; et sa va tout simplement mettre un SL de 10, sans faire de modification de digits ou autre
  • forexensemble — en réponse à zartan dans son message #82154

    @zartan,

    pour rappel, tu peux déterminer le nombre de digits de l'actif que tu trades sur MT4 en appelant la fonction MarketInfo.

    Exemple:
    Code
    int digits=MarketInfo(Symbol(),MODE_DIGITS);

    L'erreur 130 peut aussi signaler que ton stop est trop proche du prix du trade.
    Tu peux consulter la limite imposée par le Broker à l'aide du paramètre MODE_STOPLEVEL de la fonction MarketInfo.

    Si tu as besoin d'exemples plus détaillés, fais-le moi savoir.
    Modifié le 2013-09-27 20:40:59 par forexensemble