Discussione sull’articolo "Impara come progettare un sistema di trading tramite Fractals"

 

Il nuovo articolo Impara come progettare un sistema di trading tramite Fractals è stato pubblicato:

Ecco un nuovo articolo della nostra serie su come progettare un sistema di trading basato sugli indicatori tecnici più popolari. Impareremo a conoscere un nuovo indicatore, l'indicatore Fractals e a progettare un sistema di trading basato su di esso, da eseguire nel terminale MetaTrader 5.

1. Fractals massimi e minimi

    Sulla base di questa strategia, dobbiamo creare un sistema di trading che possa essere utilizzato per restituire i massimi e i minimi dell'indicatore Fractals come commento sul grafico, controllando continuamente fracUpValue e fracDownValue. Se il fracUp è maggiore di zero o non ha un valore vuoto e il fracDown ha un valore vuoto, il sistema di trading deve restituire un segnale sul grafico come commento con il seguente valore:

      • Fractals Massimo intorno a: n

    Nell'altro caso, se il fracDown è maggiore di zero o non ha un valore vuoto e il fracUp ha un valore vuoto, il sistema di trading deve restituire un segnale sul grafico come commento con il seguente valore:

      • Fractals Minimo intorno a: n

    Di seguito è riportato lo schema di questa strategia:

    Schema Fractals massimi e minimi

    Autore: Mohamed Abdelmaaboud

     


    Grazie all'autore. Tutto è molto ben spiegato negli articoli. Io stesso non escludo - che il codice sui segnali frattali e Ma ci vorrà per completare con qualcos'altro - per esempio, la velocità di ticks per il suo robot scalper stock. E su ticks può fare tutto a tutti - e forse su m1. Si può anche a la media puramente su rimbalzi da frattali e trawl sul primo ts qui anche qualcosa per finire. In generale, rispetto l'autore per gli articoli utili su questi argomenti!
     

    Rispondete alle domande.

    1. Perché utilizzate il valore del frattale sulla seconda barra chiusa? Non si è ancora formata. Credo che si debba utilizzare il valore della 3a barra chiusa:

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

    2. Perché li chiamate trading system? Non fanno operazioni. Solo commenti sul grafico.

     
    Ivan Titov frattale sulla seconda barra chiusa? Non si è ancora formata. Credo che si debba utilizzare il valore della 3a barra chiusa:

    2. Perché li chiamate sistemi di trading? Non fanno operazioni. Solo commenti sul grafico.

    La candela attuale è 0, quella precedente è 1 e la terza è 2, non 3.

    I sistemi di trading, in quanto programmati, si basano su passaggi sistematici e logici per aiutarvi a fare trading, anche se sono commenti, potete aggiungere ordini di invio se li avete testati e li avete trovati utili per voi.

     
    Mohamed Abdelmaaboud #:

    La candela attuale è 0, la precedente è 1 e la terza è 2, non 3.

    La terza candela chiusa è la 3. La candela attuale (0) non è ancora chiusa e utilizzarla potrebbe dare luogo a molte false entrate, soprattutto quando è stata aperta da poco.

     

    Salve, mi sono permesso di implementare il vostro esempio "Fractals_with_Alligator" nelle funzioni previste a questo scopo (dichiarazione/definizione). Per favore correggetemi sesbaglio😊

    /creazione di array
    double   fracUpArray[];
    double   fracDownArray[];
    MqlRates priceArray[];
    double   jawsArray[];
    double   teethArray[];
    double   lipsArray[];
    // init
    int      fracDef;
    int      Data;
    int      alligatorDef;
    //ottenere i valori
    double   fracUpValue;
    double   fracDownValue;
    double   closingPrice;
    double   jawsValue;
    double   teethValue;
    double   lipsValue;
    //creazione di variabili booleane per inviare segnali di acquisto e di vendita allo stesso tempo
    bool     isBuy;
    bool     isSell;
    
    int OnInit() {
    //creazione di variabili booleane per inviare segnali di acquisto e di vendita allo stesso tempo
       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);
    
    //ottenere i valori
       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);
    
    //Condizioni della strategia e commento sul grafico
    //in caso di acquisto
       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;
       } // fine if
    //in caso di vendita
       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;
       } // fine 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("");
    }
     

    Ciao, grazie per questo articolo così chiaro... ho un errore nel mio codice frattale (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 ).

    Quando eseguo il vostro codice ottengo lo stesso errore.


    Potete aiutarmi per favore? Ho provato molte combinazioni diverse.


    Apprezziamo il supporto.

    Jay

     
    Vorrei sapere se è davvero redditizio applicare questo vostro sistema?
     
    litianjun # Vorrei sapere se è davvero redditizio applicare questo vostro sistema?
    È importante ribadire che è necessario testare qualsiasi strategia prima di utilizzarla sul proprio conto reale, poiché non esiste nulla di adatto a tutti.
    Leggete l'articolo con le istruzioni, scaricate e testate il sistema e decidete da soli se utilizzarlo o meno. Il tipo di garanzia che chiedete non può essere fornita.
     
    litianjun #:
    Vorrei sapere se è davvero redditizio applicare questo suo sistema?
    Ho implementato frattali/alligatori (usando i suoi codici) e la mia esperienza è che ci sono molti falsi segnali. Il problema generale con i frattali è che siamo 2 candele avanti al segnale frattale. Lo sto abbinando all'RSI (70/30) e ad altri indicatori per vedere se riesco a trovare entrate di buona qualità.
     
    Sau-boon Lim #:
    Ho implementato frattali/alligatori (utilizzando i vostri codici) e la mia esperienza è che ci sono molti falsi segnali. Il problema generale con i frattali è che siamo 2 candele avanti rispetto al segnale frattale. Lo sto combinando con l'RSI (70/30) e altri indicatori per vedere se riesco a trovare entrate di buona qualità.
    I frattali di Bill Williams sono un buon modo per negoziare sia i breakout che le inversioni (che non sono la strategia originale di Bill). Tuttavia, non sono d'accordo sul fatto che metatrader la implementi fedelmente perché in caso di pareggio non vengono posizionate altre candele per l'analisi. Nella strategia di Bill Williams, egli afferma che se un predecessore o un successore dei due ordini è in pareggio, deve essere analizzata una nuova candela. Inoltre, nelle primissime pagine del libro "Trading Chaos" c'è una sezione (credo sia prima dell'indice, è come alcune lettere di lettori che lui pubblicizza) in cui uno dei lettori lo ringrazia per il suggerimento di rsi2 per una maggiore precisione, cosa che non menziona nei capitoli.