Discussion de l'article "Apprendre à concevoir un système de trading basé sur les Fractales"

 

Un nouvel article Apprendre à concevoir un système de trading basé sur les Fractales a été publié :

Voici un nouvel article de notre série sur la façon de concevoir un système de trading basé sur les indicateurs techniques les plus populaires. Nous apprendrons un nouvel indicateur, l'indicateur Fractals, et nous apprendrons comment concevoir un système de trading basé sur celui-ci pour être exécuté dans le terminal MetaTrader 5.

1. Hauts et Bas des Fractales

    Sur la base de cette stratégie, nous devons créer un système de trading qui peut être utilisé pour renvoyer les hauts et les bas de l'indicateur Fractals sous forme de commentaire sur le graphique en vérifiant en permanence la valeur de fracUp et de fracDown. Si fracUp est supérieur à 0 ou s'il n'a pas de valeur vide et que fracDown a une valeur vide, le système de trading doit renvoyer un signal sur le graphique sous forme de commentaire avec la valeur suivante :

      • Fractales Haut autour de : n

    Dans l'autre cas, si fracDown est supérieur à 0 ou s'il n'a pas de valeur vide et que fracUp a une valeur vide, le système de trading doit renvoyer un signal sur le graphique sous forme de commentaire avec la valeur suivante :

      • Fractales Bas autour de : n

    Voici le plan de cette stratégie :

    Plan des hauts et des bas des fractales

    Auteur : Mohamed Abdelmaaboud

     


    Merci à l'auteur. Tout est très bien expliqué dans les articles. Moi-même je n'exclus pas - que le code sur les signaux fractals et Ma prendra pour le compléter avec quelque chose d'autre - par exemple, la vitesse des ticks pour son stock scalper robot. Et sur les ticks on peut tout faire du tout - et peut-être sur m1. On peut aussi a la moyenne purement sur les rebonds des fractales et chaluter sur les premiers ts là aussi quelque chose à finir. En général, je respecte l'auteur pour ses articles utiles sur ces sujets !
     

    Veuillez répondre aux questions.

    1. Pourquoi utilisez-vous la valeur de la Fractale sur la 2ème barre fermée ? Elle n'est pas encore formée. Je pense que vous devriez utiliser la valeur de la 3ème barre fermée :

       CopyBuffer(fracDef,UPPER_LINE,3,1,fracUpArray);
       CopyBuffer(fracDef,LOWER_LINE,3,1,fracDownArray);

    2. Pourquoi appelez-vous cela des systèmes de trading ? Ils ne font pas de transactions. Ils ne font que commenter le graphique.

     
    Ivan Titov Fractale sur la 2ème barre fermée ? Elle n'est pas encore formée. Je pense que vous devriez utiliser la valeur de la 3ème barre fermée :

    2. Pourquoi appelez-vous cela des systèmes de trading ? Ils ne font pas de transactions. Ils ne font que des commentaires sur le graphique.

    La bougie actuelle est 0, la précédente est 1, et la troisième est 2 et non 3.

    Les systèmes de trading tels qu'ils sont programmés se basent sur des étapes systématiques et logiques pour vous aider à trader même s'il s'agit de commentaires, vous pouvez ajouter des ordres d'envoi si vous les avez testés et trouvés utiles pour vous.

     
    Mohamed Abdelmaaboud #:

    La bougie actuelle est 0, la précédente est 1, et la troisième est 2 et non 3.

    La bougie actuelle (0) n'est pas encore fermée, et son utilisation pourrait donner lieu à de nombreuses fausses entrées, en particulier lorsqu'elle vient de s'ouvrir.

     

    Servus, je me suis permis d'implémenter ton exemple "Fractals_with_Alligator" dans les fonctions prévues à cet effet (déclaration/définition). Merci de me corriger si je metrompe😊

    //creating arrays
    double   fracUpArray[];
    double   fracDownArray[];
    MqlRates priceArray[];
    double   jawsArray[];
    double   teethArray[];
    double   lipsArray[];
    // init
    int      fracDef;
    int      Data;
    int      alligatorDef;
    //get values
    double   fracUpValue;
    double   fracDownValue;
    double   closingPrice;
    double   jawsValue;
    double   teethValue;
    double   lipsValue;
    //création de variables bool pour acheter et vendre des signaux aviod en même temps
    bool     isBuy;
    bool     isSell;
    
    int OnInit() {
    //création de variables bool pour acheter et vendre des signaux aviod en même temps
       isBuy    = false;
       isSell   = false;
    
       ArraySetAsSeries(fracUpArray, true);
       ArraySetAsSeries(fracDownArray, true);
       ArraySetAsSeries(jawsArray, true);
       ArraySetAsSeries(teethArray, true);
       ArraySetAsSeries(lipsArray, true);
    
       fracDef        =  iFractals(_Symbol, _Period);
       Data           =  CopyRates(_Symbol, _Period, 0, 3, priceArray);
       alligatorDef   =  iAlligator(_Symbol, _Period, 13, 8, 8, 5, 5, 3, MODE_SMMA,PRICE_MEDIAN);
    
    
       return(INIT_SUCCEEDED);
    }
    
    void OnTick() {
    
       CopyBuffer(fracDef, UPPER_LINE, 2, 1, fracUpArray);
       CopyBuffer(fracDef, LOWER_LINE, 2, 1, fracDownArray);
       CopyBuffer(alligatorDef, 0, 0, 3, jawsArray);
       CopyBuffer(alligatorDef, 1, 0, 3, teethArray);
       CopyBuffer(alligatorDef, 2, 0, 3, lipsArray);
    
    //get values
       fracUpValue    = NormalizeDouble(fracUpArray[0], 5);
       fracDownValue  = NormalizeDouble(fracDownArray[0], 5);
       closingPrice   = priceArray[0].close;
       jawsValue      = NormalizeDouble(jawsArray[0], 5);
       teethValue     = NormalizeDouble(teethArray[0], 5);
       lipsValue      = NormalizeDouble(lipsArray[0], 5);
    
    //conditions de la stratégie et commentaire sur le graphique
    //en cas d'achat
       if(lipsValue>teethValue && lipsValue > jawsValue && teethValue > jawsValue
          && closingPrice > teethValue && fracDownValue != EMPTY_VALUE) {
          Comment("Buy", "\n",
                  "jawsValue = ", jawsValue, "\n",
                  "teethValue = ", teethValue, "\n",
                  "lipsValue = ", lipsValue, "\n",
                  "Fractals Low around: ", fracDownValue);
          isBuy = true;
       } // end if
    //in case of sell
       if(lipsValue < teethValue && lipsValue < jawsValue && teethValue < jawsValue
          && closingPrice < teethValue && fracUpValue != EMPTY_VALUE) {
          Comment("Sell", "\n",
                  "jawsValue = ", jawsValue, "\n",
                  "teethValue = ", teethValue, "\n",
                  "lipsValue = ", lipsValue, "\n",
                  "Fractals High around: ", fracUpValue);
          isSell = true;
       } // end if
    }
    
    void OnDeinit(const int reason) {
       EventKillTimer();
       ObjectsDeleteAll(0,0,-1);
    
       IndicatorRelease(fracDef);
       IndicatorRelease(Data);
       IndicatorRelease(alligatorDef);
       
       ArrayFree(fracUpArray);
       ArrayFree(fracDownArray);
       ArrayFree(jawsArray);
       ArrayFree(teethArray);
       ArrayFree(lipsArray);
    
       Comment("");
    }
     

    Bonjour, merci pour cet article si clair... j'obtiens une erreur dans mon code fractal (2024.11.10 17:42:12.121 _24 Dev 3 EA Strat1 (EURUSD,H1) _24 Dev 3 EA Strat1.mq5:void OnDeinit(const int):OnDeinit:48 Error Code:INDICATOR_DATA_NOT_FOUND ) .

    Lorsque j'exécute votre code, j'obtiens la même erreur.


    Pouvez-vous m'aider ? J'ai essayé de nombreuses combinaisons différentes.


    Merci de votre aide.

    Jay

     
    J'aimerais savoir s'il est vraiment rentable d'appliquer votre système ?
     
    litianjun # J'aimerais savoir s'il est vraiment rentable d'appliquer votre système ?
    Il est important de confirmer à nouveau que vous devez tester toute stratégie avant de l'utiliser sur votre compte réel, car il n'y a rien qui convienne à tout le monde.
    Veuillez lire l'article avec les instructions, téléchargez et testez vous-même le système et décidez par vous-même de l'utiliser ou non. Le type de garantie que vous demandez ne peut pas être donné.
     
    litianjun #:
    J'aimerais savoir s'il est vraiment rentable d'appliquer votre système ?
    J'ai mis en place des fractales/alligators (en utilisant ses codes) et mon expérience est qu'il y a beaucoup de faux signaux. Le problème général avec les fractales est que nous avons 2 bougies d'avance sur le signal de la fractale. Je l'associe au RSI (70/30) et à d'autres indicateurs pour voir si je peux trouver des entrées de bonne qualité.
     
    Sau-boon Lim #:
    J'ai mis en œuvre des fractales/alligators (en utilisant vos codes) et mon expérience est qu'il y a beaucoup de faux signaux. Le problème général avec les fractales est que nous avons 2 bougies d'avance sur le signal de la fractale. Je le combine avec le RSI (70/30) et d'autres indicateurs pour voir si je peux trouver des entrées de bonne qualité.
    Les fractales de Bill Williams sont un bon moyen de trader à la fois les cassures et les retournements (ce qui n'est pas la stratégie originale de Bill). Cependant, je ne suis pas d'accord pour dire que Metatrader l'implémente fidèlement car en cas d'égalité, aucune bougie supplémentaire n'est placée pour l'analyse. Dans la stratégie de Bill Williams, il indique que si l'un des prédécesseurs ou successeurs des deux ordres est à égalité, une nouvelle bougie doit être analysée. De plus, dans les toutes premières pages du livre "Trading Chaos", il y a une section (je crois que c'est avant la table des matières, c'est comme des lettres de lecteurs dont il fait la publicité) où un des lecteurs le remercie pour l'astuce rsi2 pour une plus grande précision, chose qu'il ne mentionne pas dans les chapitres.