Mon compte
Déjà membre ? S'identifier
Non inscrit ? S'inscrire
 
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Leo
    Leo est déconnecté
    Membre lvl 5 Leo est sur la route de la réputation...
    Date d'inscription
    June 2008
    Localisation
    France
    Messages
    12
    Pouvoir de réputation
    6

    Demande aide MQL4 - Fonction OrderSend Demande aide MQL4 - Fonction OrderSend

    Bonsoir à tous,

    Je lance un appel aux programmeurs d'EA sous metatrader (MQL4)

    Je suis coincé sur une erreur sur la fonction OrderSend : invalid S/L or T/P

    Pouvez-vous jeter un oeil et me dire ce qui cloche ?

    J'ai même essayé d'entrer des cotations en dur sur les paramètres stoploss et takeprofit, mais j'ai toujours le même message d'erreur.

    Voici le code :





    Merci !

  2. #2
    Membre lvl 50 maje deviendra bientot célèbre...
    Date d'inscription
    June 2007
    Localisation
    Lac-st-Jean, Québec
    Messages
    66
    Pouvoir de réputation
    10

    ?? ??

    Citation Envoyé par Leo Voir le message
    Bonsoir à tous,

    Je lance un appel aux programmeurs d'EA sous Metatrader (MQL4)

    Je suis coincé sur une erreur sur la fonction OrderSend : invalid S/L or T/P

    Pouvez-vous jeter un oeil et me dire ce qui cloche ?

    J'ai même essayé d'entrer des cotations en dur sur les paramètres stoploss et takeprofit, mais j'ai toujours le même message d'erreur.

    Voici le code :





    Merci !
    Bonjour Leo, tu donne la définition de takeprofit, mais pas de limit ni de multi, ce peut être une de ces valeurs qui cloche, c'est peut être aussi le résultat de l'adition et multiplication qui donne une valeur non conforme au prix TP selon la devise.

    Essai : TakeP = NormalizeDouble(TakeProfit*Limit*multi,Digits)

    Là au moins la valeur aura le nombre de chiffre correct après la virgule, si ça ne fonctionne pas, soit la variable limit ou multi donne un calcul incorrecte.

    Bye

  3. #3
    Leo
    Leo est déconnecté
    Membre lvl 5 Leo est sur la route de la réputation...
    Date d'inscription
    June 2008
    Localisation
    France
    Messages
    12
    Pouvoir de réputation
    6

    Merci Maje de t'être penché sur la question !

    Limit est la résultante d'une fonction NormalizeDouble.

    Je pense avoir trouvé d'où ça venait : La réponse était dans la cotation du CFD tradé (CFD sur future mini-nasdaq100) : en effet, le tick du CFD est de 0,25 : La valeur de la limite de l'ordre étant calculée sur une moyenne mobile, il était impossible de placer un takeprofit à 1845,32 ! (j'avais déjà résolu le problème du nombre de décimales grâce à la fonction NormalizeDouble... mais pas fait attention à la valeur du tick !)

    Sais-tu s'il existe une fonction pour arrondir automatiquement à 0,25 près ?

    Avec mes remerciements

  4. #4
    Membre lvl 50 maje deviendra bientot célèbre...
    Date d'inscription
    June 2007
    Localisation
    Lac-st-Jean, Québec
    Messages
    66
    Pouvoir de réputation
    10

    Calcul Calcul

    Tu peut faire 2 possibilités simple.

    Petite routine style comparer les chiffre après la virgule
    if x<0,25 x=0
    if x <0.50 x=0.25
    if x<0.75 x=0.50
    x=0.75

    Ou encore faire une division des chiffre après la virgule et soustraire

    Bye

  5. #5
    Leo
    Leo est déconnecté
    Membre lvl 5 Leo est sur la route de la réputation...
    Date d'inscription
    June 2008
    Localisation
    France
    Messages
    12
    Pouvoir de réputation
    6

    Citation Envoyé par maje Voir le message
    Ou encore faire une division des chiffre après la virgule et soustraire
    Oui j'avais envisagé par la division
    Puis-je te demander un exemple chiffré ? on divise quoi par quoi et on soustrait quoi ?

    Encore merci.

  6. #6
    Membre lvl 50 maje deviendra bientot célèbre...
    Date d'inscription
    June 2007
    Localisation
    Lac-st-Jean, Québec
    Messages
    66
    Pouvoir de réputation
    10

    Exemple Exemple

    Supposon que le TakeP égal 100.35

    (NormalizeDouble(TakeP,2)-NormalizeDouble(TakeP,0) )
    -On obtient les chiffre après la virgule

    NormalizeDouble((NormalizeDouble(TakeP,2)-NormalizeDouble(TakeP,0) )/0.25,0)

    -On obtient le nombre de fois, entier, de 0.25


    (NormalizeDouble((NormalizeDouble(TakeP,2)-NormalizeDouble(TakeP,0) )/0.25,0)) * 0.25

    - Maintenant on a soit; 0.0 ; 0.25 ; 0.50 ou 0.75

    Reste à aditionner avec le NormalizeDouble(TakeP,0)

    Un peut long pour trouver le choix entre 4 valeur, donc la routine de comparaison dont j'ai parlé précédamment serait plus simple.

    Bye

  7. #7
    Leo
    Leo est déconnecté
    Membre lvl 5 Leo est sur la route de la réputation...
    Date d'inscription
    June 2008
    Localisation
    France
    Messages
    12
    Pouvoir de réputation
    6

    C'est super, merci beaucoup Maje !

    En fait, je vais opter pour la méthode de la division parce que je je veux pouvoir changer de produit tradé et donc de caractéristiques (autre valeur du tick...) en gardant le même EA générique.

    A+

  8. #8
    Membre lvl 5 pinklady1972 est sur la route de la réputation...
    Date d'inscription
    April 2008
    Messages
    24
    Pouvoir de réputation
    7

    Bonsoir à tous,

    Moi aussi j'aurai besoin d'aide, je ne sais pas programmer mais j'aimerais toutefois modifier un peu l'EA Macd Sample . C'est pourquoi je vous demanderais de bien vouloir me depanner.

    Je voudrais ajouter une fonction à cet EA, c'est à dire lui demander de trader d'une certaine manière quand le parametre takeprofit est à 0 .Je voudrais aussi rendre les parametres Macd 12/26/9 par défaut modifiables.Ce que je voudrais lui faire faire en plus de ce qu'il fait déjà:
    Entrée Long quand MACD ( FastEMA - SlowEMA ) > signal et TP quand Macd < signal.
    Entrée Short quand Macd < signal et TP quand Macd > signal.

    Je ne sais pas faire cela en MQL4.
    Si quelqu'un voulait bien jeter un oeil sur ce que j'ai fait...

    Par la même occasion, je voulais savoir s'il existe livre en français sur la
    programmation en mql4, parceque mon anglais est vraiment primitif...

    Par avance, merci.
    Fichiers attachés

Discussions similaires

  1. demande d'aide
    Par mouheb dans le forum Présentation des membres
    Réponses: 4
    Dernier message: 13/11/2007, 22h22
  2. TRADING DESK : demande très forte sur le marché monétaire et intervention des banques
    Par Realtime Forex dans le forum Analyses Forex professionnelles
    Réponses: 0
    Dernier message: 02/10/2007, 18h07

Ajouter aux Favoris | Plan du site | Archives | Forex | Contact