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

Eviter la rénitialisation de Icustom pour un tick

  • MrManhattan

    Salut tout le monde,
    J'ai une petite question pour nos amis experts codeurs...

    Je viens tout juste de commencer un nouvel EA, qui fait appel à plusieurs icustom fonctions (3), dont les indicateurs sont assez lourds.
    Je voudrai donc trouver un moyen de ne pas les réinitialiser à chaque tick, en sachant que l'EA doit être précis donc je ne peux pas me contenter d'un rappel à chaque bar...
    En espérant que quelqu'un me vienne a l'aide ... Haha

    Merci
    Fred
  • liva

    Salut,

    Je ne vois qu' une solution, compter les ticks et checker les valeurs de tes indics tous les X ticks ...
  • greg3395

    par exemple , si tu veut faire appelle a la fonction iCustom() , une fois tous les heures
    bha , tu peu utiliser la fonction iTime()

    par exemple

    int bloquage; // tout au début du programme avec les variable extern
    int horaire;// tout au début du programme avec les variable extern

    ....

    horaire = iTime(Symbol(),Period(),0);

    if(bloquage == horaire) //rien ne se passe
    {
    }
    else //sinon
    {
    RSI = iCustom(NULL,0,"RSI",14,0,0);
    bloquage = iTime(Symbol(),Period(),0);
    }

    en espèrent que c'est la bonne réponse lol
    Modifié le 2013-03-11 10:46:47 par greg3395
  • MrManhattan

    Merci de votre aide !

    Je n'ai pas essayé vos méthodes car j'ai besoin de la valeur de ces indic pour chaque ticks...
    Un peu prise de tête...haha
    Mais j'ai trouvé une solution que je peux partager ici !

    La fonction icustom ne se ré initialise pas a chaque tick s l'on inclus pas ses paramètres dans la fonction.
    Elle ira uniquement chercher les valeurs à chaque tick comme pourrai le faire n'importe quel fonction.
    Cette méthode fonctionne en demo en tout cas. Je ne connais pas la raison exacte donc si quelqu'un le sait ce sera un bonus...

    Exemple

    Au lieu de la fonction habituelle :

    Code
    Fonction = icustom(NULL;0; "ma fonction";parametre1;...;buffer;shift);

    Entrez uniquement

    Code
    Fonction = icustom(NULL;0; "ma fonction";buffer;shift);

    Et ça fonctionne tout aussi bien...

    N'hésitez pas à me corriger si je viens de dire une énorme erreur...

    Fred
  • Altore — en réponse à MrManhattan dans son message #72008

    bonjour MrManhattan et tous

    je m'excuse de jouer un peu les troubles fetes mais j'ai codé pas mal d'EA avec les iCustom et donc pour moi ce que tu
    demande est tout simplement impossible car les fonctions tournent en boucle et si tu as reglé ton EA sur chaque tick il analyse tes
    indicateurs a chaque tick

    cependant la solution que tu propose est bonne car elle alege le poids des backtest puisque dans ce cas le iCustom prend les parrametres de l'indicateur par defaut et non avec un parrametre que tu choisi toi meme mais saches que meme avec cette solution l'EA analyse les indicateurs a chaque tick

    alors ce que tu dois faire c'est rentré dans le programme de l'indicateur et remplacer les valeurs par defaut par des valeurs qui conviendront le mieux a ta strategie

    bonne journée et bon trade a tous

    Altore
  • MrManhattan

    Salut tout le monde !

    Toutes mes excuses, je me suis mal exprimé dans mon premier post, et en effet ce que je demandais était impossible !
    Quand je dis réinitialiser, je voulais dire en fait que les indics étaient complètement retirés et rechargés à chaque tick.

    D'où le problème et la perte de temps.
    Mais en effet la solution que j'ai trouvé va chercher les valeurs à chaque tick, ce dont j'avais besoin.

    Et comme l'a dit altore, si vous utilisez cette solution, allez changer les paramètres dans le code de l'indic, mais je vous conseil d'en faire une copie avec les paramètres originaux... Au cas ou.

    Désolé pour la confusion !