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

Indicateur Fisher et demande d'alerte (Simple)

  • Lorka85

    bonjour a tous
    je vous fait partager cette indicateur Fisher avec histogramme pour voir la puissance de la tendance, qui donne de sublimes signaux en 20 périodes (sur tous les timeframes) - voir screenshots.

    http://www.megaupload.com/?d=SNQVNV0X

    J'en profite pour demandera furynick, furax, yorgo ou autre experts du forum, ou je pourrais mettre une alerte dans le code ?
    car il affiche un signal sur le chart principal au franchissement de niveau zéro, donc il faudrait mettre ce bout de code a proximité " Alert(Symbol()," - M",Period()," - SELL Alert";);" , mais le problème est que au chargement de l'indicateur ça affiche une mitrailleuse d'alerte pendant 15 secondes comme dans une boucle, pas top :'(

    if ( (Fish<0) && (Fish1>0))
    {
    if (Signals)
    {
    ObjectCreate("EXIT: "+DoubleToStr(i,0),OBJ_TEXT,0,Time[i],_price);
    ObjectSetText("EXIT: "+DoubleToStr(i,0),"EXIT AT "+DoubleToStr(_price,4),7,"Arial",White);
    //-----------------> mon alerte que j'ai incluse : Alert(Symbol()," - M",Period()," - SELL Alert";);
    }
    buy = 0;
    }
    if ((Fish>0) && (Fish1<0))
    {

    if (Signals)
    {
    ObjectCreate("EXIT: "+DoubleToStr(i,0),OBJ_TEXT,0,Time[i],_price);
    ObjectSetText("EXIT: "+DoubleToStr(i,0),"EXIT AT "+DoubleToStr(_price,4),7,"Arial",White);
    //-----------------> mon alerte que j'ai incluse : Alert(Symbol()," - M",Period()," - BUY Alert";);
    }
    sell = 0;
    }
    Merci beaucoups !
    Lorka85 a joint une image
    G2086FE
  • Maka1043

    Merci pour cet indicateur; je l'installe et je test ça !
  • Yorgo94

    Ne me demande pas çà à moi, en codage je suis plus que nul, pire encore je ne compte même pas mettre le nez dedans.
    Maintenant sur l'interprétation, et réaction d'un indic je peut donner un avis qui restera somme toutes faites unqiuement personnel...
  • Lorka85

    ok merci quand meme yorgo. perso je code juste pour modifier les couleurs, épaisseurs des lignes, etc, car certain indicateurs mal codés ne gardent pas ça en memoire au changement de timeframe, fermeture mt4, etc, donc assez limité aussi, mais la j'ai tendance a croire que ça doit pas être trop compliquer cette alerte pour un connaisseur :)

    maka tu nous donnera ton avis ;)
  • Djmisterjon

    Lorka85 , pour sauvegarder lepaiseur de tes ligne tu doi sauvegarder ton modele une foi appliquer.
    Ensuite , tu na qua appliquer le modele , au lieux des indicateur. Il garderon tout les paremetre enrigistrer dans ton modele.
  • Lorka85

    Merci du conseil Djmisterjon ;)

    bon je vous met une version plus récente de ce fisher car l'autre repaint de façon dégueulasse.
    http://www.megaupload.com/?d=VOZR6LST
  • furynick

    Normal que tu aies une floppée d'alertes, l'indicateur repeint.

    Pour éviter le plus gros (mais tu auras quand même plusieurs alertes d'affilé) tu peux ajouter cette condition avant ton alerte :
    if (i==0)
  • Lorka85

    merci fury je vais voir cela :)
  • furynick

    J'ai regardé un peu le code de cet indic ... et quelque chose me choque profondément !

    la boucle commence ainsi :
    i = 0;
    while(i<barras) {
    ....

    Le calcul est basé sur la valeur précédente dans la boucle. Or, en commençant la boucle à 0 on prend en considération le prix futur et non pas le prix passé ce qui est un non-sens des plus déroutants !!
    J'ai donc de gros doutes soit sur le raisonnement, soit sur la capacité de l'auteur à programmer en MQL.

    Ca explique aussi pourquoi l'indicateur repeint !!
  • Lorka85

    Fury, merci de l'attention porté a ma requette.
    a tu regarfer cela sur la derniere version de l'indicateur ? mon deuxieme lien ( http://www.megaupload.com/?d=VOZR6LST ) car le premier repeint avec 2 barres énorme, le deuxième ne repeint pas plus qu'un osma ou macd, et est plus raisonnable et surtout très pertinent quand au résultat.
  • furynick

    Il ne repeint pas tout car limité par par l'IndicatorCounted ... mais il repeint les deux dernières barres ce qui n'est pas viable et comme indiqué dans mon précédent message totalement ahurissant dans le principe (calcul basé sur le prix futur ... facile dans ce cas de donner de bonnes indications, après coup !).

    Où est-ce que tu as vu un MACD repeindre toi ??
  • furynick

    J'ai comparé deux version du Fisher, en bleu l'original qui repeint et qui utilises le prix futur dans son calcul, en rouge un Fisher qui ne repeint pas (à part la valeur en cours comme tout indicateur).

    On voit bien le gros gap au niveau du changement de période (passage du vendredi 22h00 au samedi 22h00), quel indicateur pourrait prévoir la chute du cours à la réouverture ? aucun !

    L'indicateur d'origine donne de bons signaux dans le passé car il prend en compte le cours futur dans son calcul ce qui n'est pas viable.
    Les techniques basées sur cet indicateur (la version originale en tous cas) sont donc nulles et non avenues car inexploitables en forward.
    furynick a joint une image
    G2140GB
  • Lorka85

    merci furynick de ta démonstration. vraiment.
    la macd repaint sur la bougie actuelle comme tous les indicateur :)
    Donc le premier fisher est inexploitable, c'est classé. merci de ton avis et recherches.

    Mais le fx fish12, donc le deuxième donnée, tu dit qu'il limite le repainting avec une rafistolage de IndicatorCounted ?
    Car j'ai comparé les deux fisher, celui de base dans mt4 qui affiche sous forme de barres verte et rouge (pas sous forme de ligne comme ton image) ,et ce fx fish12, il donnent les memes signaux en temps reel, le petit plus est l'histograme pour voir un peu une probable retourné que le fisher par défaut suivant la taille des barres.
    Si je te demande ça car ce fx fish12 est le coeur de ma stratégie actuelle, si j'ai des signaux dans son sens je prend position, sinon je les ignores.
  • furynick

    tous les indics fisher que j'ai pu voir sont identiques et du même auteur (Kiko Segui - webtecnic at terra.es) et ils sont tous basés sur le même calcul à savoir :
    Value = 0.33*2*((_price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;
    Value=MathMin(MathMax(Value,-0.999),0.999);
    Fish = 0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;

    Où Value1 et Fish1 sont les valeurs précédemment calculées. Or, comme indiqué ci-dessus, vu le sens de la boucle (de 0 à barras) c'est le prix futur qui est pris en compte par ces valeurs.
    Le fait que ta version ne repeigne que les deux dernières valeurs ne signifie pas que le calcul est bon, ça limite juste ce que j'appellerai l'escroquerie (le terme n'est pas tout à fait adapté mais là c'est le seul qui me vienne à l'esprit).

    Pour le côté courbe et non histogramme c'était à des fins d'illustration (2 histogrammes enchevêtrés sont assez difficiles à décrypter), les valeurs sont les mêmes.

    Pour avoir un calcul correct il faut corriger 3 lignes :
    i = 0;
    est à remplacer par
    i = barras;

    while(i<barras)
    est à remplacer par
    while (i>=0)

    i++;
    est à remplacer par
    i--;

    Après ça l'indicateur ne repeint plus (sauf la valeur courante bien entendu), le calcul est basé sur les valeurs antérieurs des cours (comme tous les indicateurs corrects) et non sur les valeurs futures.
    Mais du coup l'indicateur n'est plus aussi alléchant ;o)
  • furynick

    Pour information, la fonction IndicatorCounted() renvoie le nombre de barres déjà dessinées par l'indicateur.
    int counted_bars=IndicatorCounted();

    Etant donné qu'il faut toujours repeindre la barre actuelle, la valeur récupérée de cette fonction doit être diminuée
    if(counted_bars>0) counted_bars--;

    Le nombre de barre à peindre est donc la différence entre le nombre total de barres représentées sur le graphique (variable prédéfinie Bars) et le nombre de barres déjà représentées
    barras = Bars-counted_bars;

    Dans la version initiale la variable barras est positionnée à Bars (toutes les barres), c'est ce qu'on appelle un indicateur qui repeint, il ne se contente pas de redessiner la barre courante mais il recalcule toutes les barres.
    C'est doublement pourri :
    - on court le risque d'altérer les fondements des prises de position
    - on bouffe du temps de calcul pour rien (ça se sent surtout dans les backtests)
  • Lorka85

    punaise, hé bé Fury. tu nous gatte niveau explication, merci beaucoup ! et les modif' donnée, chapeau !
    Je vais tenter de me rabattre sur le swingman de yorgo, et son histogramme, moins 'jolie" et symétrique, mais avec l'explication que tu donne sur le recalcule des barres, on comprend pourquoi !!!
  • Djmisterjon

    C'est aujourdui je regrette toute mes depense inutile, et de pas avoir investi dans mes etude universitaire en economie et etude de marcher :)
    Malgrer que sa roule tres bien, etudier dans le domaine universitaire dans ce metier reste une bonne investissement a long therme .