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

Assistance pour débugage EA

  • Gui205

    Bonjour,

    Depuis quelque temps j'ai commencé à réaliser mon propre EA, celui çi est quasiment bientôt fini, il me reste encore un dernier problème à régler.

    "2013.05.30 15:16:24 1985.02.21 00:00 Timing EURUSD,M5: zero divide"

    Je sais d'où proviens cette erreur mais je ne parviens pas à la contourner, ou bien tout simplement la résoudre.

    Y a t'il quelqu'un parmi vous qui serais prêt à me venir en aide ?

    Cordialement Gui205.
  • JJFlash

    Salut !
    Déjà je t'invite à te présenter à tout le monde ici => http://www.forexagone.com/forum/presentation-traders/

    Ensuite pour ton erreur, elle s'affiche où ? A la compilation, ou dans le journal quand tu fais les backtest ?
  • Gui205

    Présentation faite :).

    Lors du back test
  • JJFlash

    Ok il fait quoi ton expert advisor ? c'est quoi cette date qu'il t'affiche ? C'est quand sa veut prendre un trad ?
  • Gui205

    Non en faite lorsque je back test l'ea me dis qu'un valeur de mon indicateur personnel effectue un division par 0 ( Et donc que la valeur retourner sera donc vide ) c'est qui fait planter mon EA

    Mon EA se base sur un indicateur perso basé sur le Belkhayate Timing il en est légèrement différent mais le principe reste globalement le même, ainsi que le RSI

    Shéma résumé :

    Code
    avg = ( Mobile Arevage High + Mobile Arevage Low ) / 2 avg1 = ( Mobile Arevage High - Mobile Arevage Low ) / 5
    Jusqu'ici c'est bon, mais c'est ici que ça se complique :

    Code
    H=(High[pos]-avg)/avg1; L=(Low[pos]-avg)/avg1;
    Je récupère ces 2 valeurs pour les mettres dans un buffer :

    Code
    PrH[pos]=H; <=== buffer 0 PrL[pos]=L; <=== buffer 1

    J'utilise ces 2 buffers dans mon EA à mon avis le problème viens que l'un des avg dois à un moment renvoyer 0
    Modifié le 2013-05-30 18:58:53 par AliX
  • JJFlash

    Et bien c'est facile à vérifier, fait un Print() de tes avg, et regarde à quelle moment il fait 0.
  • Gui205

    Oui mais le problème c'est comment l'empêcher de faire 0 justement :P
  • JJFlash

    Tu peux mettre un if. Si la valeur est 0, tu la remplaces par une autre valeur qui te conviendra. Ou alors si sa fait 0 tu ne fais pas du tout le calcul ^^ Je peux pas te dire vraiment vu que je sais pas comment fonctionne ton EA. Mais voila, l'astuce je pense, c'est de mettre un if pour traiter le cas où avg1 = 0
  • Gui205

    C'est bon, j'ai réussi à régler mon problème j'ai utilisé les varibles PRICE_HIGH et PRICE_LOW dans les mobiles arevage plutôt que les définir en variable externe.

    Merci beaucoup pour tes réponses rapide JJFlash :).