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

Récupérer la Valeur d'un indicateur pour un EA

  • AurelienG

    Bonjour a la communauté.

    Je commence à m'interesser a la programmation d'EAs pour le trading automatique et donc je dois forcement passer par le langage MQL4. Ma question (aussi bête soit elle) est simple : Comment récuperer la valeur d'un indicateur sur le graphique pour l'integrer dans un EA.

    Je pose cette question car quand je conçois (je n'ai pas dit "programmé";) j'ai la forte impression d'avoir a réinventer la roue en me recodant l'indicateur, chose pas forcement utile étant donné que l'indicateur existe déjà.

    Quelles sont les moyens a disposition ? Quelles sont vos méthodes ?

    Merci pour vos réponses.
  • JJFlash

    Salut !

    Bon alors moi ma méthode (et je pense que c'est la plus optimal), c'est d'allé chopé dans le code de ton indicateur technique ce qui calcul la valeur que tu recherches. C'est se que j'ai fait pour l'expert advisor xSuoerDonchian, c'est un peu chiant à faire, mais c'est peut être la meilleur façon de faire, ci ce n'est la seul ^^
  • greg3395

    salut Aurelien
    voila un ebook pour apprendre le MQL4:
    http://fr.scribd.com/doc/36612104/19888540-MQL4-Pour-Les-Nuls

    avec un peu de courage , tu pourra créer n'importe quel EA.
  • JJFlash

    Salut greg, ton lien nous dirige bien vers une page qui ressemble à un sommaire. Mais quand on clique pour voir une rubrique, sa me met Page not Found
  • AurelienG

    @JJ : C'est la methode que j'utilise actuellement, c'est une methode simple car elle permet de s'approprier a la fois l'indic ET son mode de fonctionnement, donc riche en connaissance. Le souci c'est que pour un meme indicateur utilisé N fois, il faut se recopier N fois le code.

    @Greg : Ce livre reste une référence pour débuter en prog EA et ayant une solide base en prog je rentre dans le vif du sujet qu'a partir du chapitre 10 (je l'ai déja lu ;) ) mais rien au sujet de l'intégration de la valeur d'un indic dans un EA ou un fonction qui permettrait de récuperer la valeur recherchée (a moins d'avoir lu en biais). De ton coté comment procèdes tu ?

    Je suis bon pour devenir un adepte du copier/coller, a moins que d'autres réponses viennent étoffer le sujet

    Merci pour vos rep's :)
  • JJFlash — en réponse à AurelienG dans son message #75896

    AurelienG, le 11/05/2013 dit :
    Le souci c'est que pour un meme indicateur utilisé N fois, il faut se recopier N fois le code.


    Et non pas forcément ! faudrait que tu me décrive un peu le fonctionnement de l'expert advisor que tu veux coder, mais il existe des boucle "for" qui te permettra de faire fonctionner le code de ton indicateur technique plusieurs fois.
    Décrit un peu ce que tu veux que l'expert advisor fasse
  • AurelienG

    Oui je connais tres bien les boucles "for" qui servent a faire tourner une instruction un nombre délimité de fois : si ce n'est pas le cas, utiliser les boucles" while" (mais attention au boucles infinies ;) )

    Non je me suis un peu mal exprimé : Je voulais dire un indic utilisé dans N experts.

    La solution que je cherche est la suivante et tient en une phrase : "La correction de l'indic entraine la correction de la valeur de l'EA"
    On modifie le mode de calcul une fois dans l'indic, l'EA reste inchangé il récupérera la valeur corrigée de l'indic.

    En concret ca donne ca : Imagine un calcul des moyennes mobiles (restons simples ;) )
    - Tu modifies son calcul dans l'indic mais cela est inutile puisque le calcul des MM est dans l'EA
    - Conséquence : Corriger tous les EA's pour changer le mode de fonctionnement
    Alors qu'avec l'intégration d'un indic :
    - Tu modifies l'indic
    - L'EA fait appel a la valeur de l'indic recherchée et récupere la valeur concernée (et donc modifiée)

    En espérant être clair. :s
  • JJFlash

    Ah ! Alors si j'ai bien compris j'ai peut être une solution pour toi !
    C'est faire un fichier avec toute les fonctions que tu utilise dans le code de ton expert advisor. Ensuite tu appelles les fonctions dans ton programme start() comme si elles étaient dans le même fichier, sa doit marcher. Par contre y'a une petite ligne à écrire au début du code pour faire le lien avec le fichier où se trouve toute les fonctions.
    J'espère avoir été claire ^^
    Modifié le 2013-05-11 19:45:40 par JJFlash
  • AurelienG

    OUI ! C'est exactement ca !

    En fait je me basais que sur l'indic en lui même ce qu'il faut c'est :
    - Creer un EA avec les fonctions de calcul
    - Utiliser des directives de préprocesseur (terme barbare mieux connu sous le nom de "include";) pour faire appel aux fonctions de cet EA dans l'EA concerné.

    J'avais une idée orientée script mais les include s'utilisent de la même maniere..... avec moins de contraintes. Et je l'utilise tellement peu en MQL4 que j'étais complètement passé a coté.

    MERCI :D
    Modifié le 2013-05-11 19:55:48 par AurelienG : Complement de réponse
  • JJFlash

    Et bien de rien, sa fait toujours plaisir d'aider un collègue programmeur ^^
  • liva

    Vous vous embêtez pour rien !
    MQL embarque des fonctions pour appeller les indicateurs natifs : http://docs.mql4.com/indicators

    Ex :
    iRSI(NULL,0,21,PRICE_CLOSE,1); retourne la valeur du RSI21 sur la dernière bougie fermée
    iRSI(NULL,0,21,PRICE_CLOSE,2); retourne la valeur du RSI21 sur l' avant dernière bougie fermée
    iRSI(NULL,0,21,PRICE_CLOSE,0); retourne la valeur du RSI21 sur la bougie en cours

    Si tu veux intégrer un indicateur maison, tu peux l' intégrer via iCustom();
  • JJFlash

    C'est quoi ça iCustom() ?
    Je l'ai déjà vu pas mal de fois mais je ne sais pas se que sa fait
  • JJFlash

    Ah oui ok je vois, en effet, sa peut être pratique, faut voir comment sa fonctionne, mais sa a l'air un peu prise de tête au début.
    L'avantage avec le fichier à coté qui contient toute les fonction, c'est qu'on peut regrouper tout ce qui est d'utile dans un seul endroit, et qu'on garde uniquement ce qui est utile pour notre expert advisor.
    Merci pour l'info !
  • AurelienG

    En matant la doc sur iCustom, c'est vrai que l'on peu gagner pas mal de temps.

    Le souci c'est que j'utilise un indicateur assez complexe dans sa structure donc pour récupérer la valeur recherchée ca va pas être une mince affaire. Mais pour les indicateurs simples c'est parfait.

    Merci.
  • Wilaime49 — en réponse à JJFlash dans son message #75891

    salut ! moi je veux que mon EA prenne des positions selon les signaux de mon indicateur mais mais j'arrive pas faire un code correcte et le lié a mon indicateur svp aidez moi
  • arka3579 — en réponse à Wilaime49 dans son message #118438

    Tu me fais signe si on t'aide :)
    Je voudrais exactement la meme chose avec mon Tcci et mon vwap qui croise Ema.
    Partir de l 'indicateur pour qu'il prenne les positions automatiquement en fonction des signaux.
    Si kk1 sait expliquer plus en détail iCustom..
    A bientôt.
  • phvdweid

    Bonjour,
    je ne sais pas si vous le sujet indicateur à insérer dans EA est toujours d'actualité. Si oui je vous donne ci-après la ligne de code pour un indicateur personnalisé. Cette ligne est à modifier en fonction des paramètres de votre indicateur.

    Il s'agit de l'indicateur Solar Wind que vous trouvez sur internet en source mq4. Vous prenez la source et vous regardez le nombre de buffers qu'il a, ce sera le nombre de valeurs qu'il calcule.

    double GreenWind = iCustom(NULL, 0, "SolarWind",SolWindLength, 1,1);
    double RedWind = iCustom(NULL, 0, "SolarWind",SolWindLength, 2,1);

    Explication
    --------------
    GreenWind = variable qui reçoit la valeur de la barre verte
    RedWind=..... de la barre rouge
    NULL=n'importe quelle paire de devise
    0=n'importe quel timeframe
    "SolarWind"=nom de l'indicateur
    SolWindLength=nombre de barres servant au calcul
    1=buffer no 2 (à noter que les buffeers sont toujours numérotés à partir de 0) ---> 0,1,2....
    1=valeur de la barre précédente

    Conclusion : vous installez l'indicateur sur votre graphique et vous allez comprendre pourquoi je parle de barres rouges et vertes

    Si vous avez besoin que je vous fasse un EA, contactez-moi au +41792133801 whatsapp
    Philippe