Discussione sull’articolo "Tracciare linee di tendenza basate su frattali utilizzando MQL4 e MQL5"

 

Il nuovo articolo Tracciare linee di tendenza basate su frattali utilizzando MQL4 e MQL5 è stato pubblicato:

L'articolo descrive l'automazione del tracciamento delle linee di tendenza in base all'indicatore Fractals utilizzando MQL4 e MQL5. La struttura dell'articolo fornisce una vista comparativa della soluzione per due lingue. Le linee di tendenza vengono tracciate utilizzando gli ultimi due frattali conosciuti.

Il modo più semplice: identificare una svolta, attendere un pullback ed entrare nel mercato dopo di esso.

Idealmente, dovresti ottenere qualcosa del genere:

Fig. 3. Breakthroughs della linea di tendenza

Fig. 3. Svolta della linea di tendenza

Autore: Almat Kaldybay

 
Pomeriggio. Critica. Un giorno non è sempre un numero fisso di candele. Nel tuo caso - non è sempre corretto controllare i dati di 96 candele per M15. A volte si può entrare nei dati di un altro giorno.
 
Tapochun:
Pomeriggio. Critica. Un giorno non è sempre un numero fisso di candele. Nel tuo caso - non è sempre corretto controllare i dati di 96 candele per M15. A volte è possibile entrare nei dati di un altro giorno.
Grazie per l'osservazione, non mi sono imbattuto in questo problema poiché ho rinunciato al TL giornaliero a favore del trading intraday (guardo il 4 ore, l'ora e l'm15). Ma in generale dovrò esaminare meglio la situazione.
 
Almat Kaldybay:
Grazie per il commento, in realtà non mi sono mai imbattuto in questo problema poiché ho rinunciato alla TL giornaliera a favore del trading intraday (guardo a 4 ore, ora e m15). Ma in generale, dovremo esaminare più da vicino la situazione.
Questo vale per qualsiasi TF, non necessariamente M15. Il punto è che se si cercano top/roots all'interno di un giorno, ad esempio il giorno precedente, non ci si deve basare su un numero fisso di candele, è meglio basarsi sul tempo: dall'apertura del giorno precedente, in questo caso, all'apertura (la prima candela, che può avere un tempo diverso dalle 00.00) del giorno corrente.
 
Tapochun:
Questo vale per qualsiasi TF, non necessariamente M15. Il punto è che se si cercano top/roots all'interno di un giorno, ad esempio il giorno precedente, non ci si deve basare su un numero fisso di candele, è meglio basarsi sul tempo: dall'apertura del giorno precedente, in questo caso, all'apertura (la prima candela, che può avere un orario diverso dalle 00.00) del giorno corrente.

Proprio ora sto scrivendo un EA su mql4 e mi sono ricordato della tua critica. Anche se non ho riscontrato questa situazione nella pratica, ho deciso di escluderla. La soluzione è la seguente:

//1.2 Determinare la barra successiva all'estremo
int UpperFractal_1_base_next=UpperFractal_1_base-1;
int UpperFractal_2_base_next=UpperFractal_2_base-1;
int LowerFractal_1_base_next=LowerFractal_1_base-1;
int LowerFractal_2_base_next=LowerFractal_2_base-1;
//1.3 Determinare il tempo di formazione del frattale
datetime UpFractalTime_1_base=iTime(NULL,base_tf,UpperFractal_1_base);
datetime UpFractalTime_2_base=iTime(NULL,base_tf,UpperFractal_2_base);
datetime LowFractalTime_1_base=iTime(NULL,base_tf,LowerFractal_1_base);
datetime LowFractalTime_2_base=iTime(NULL,base_tf,LowerFractal_2_base);
//1.4 Determinare il tempo della barra successiva all'estremo
datetime UpFractalTime_1_base_next=iTime(NULL,base_tf,UpperFractal_1_base_next);
datetime UpFractalTime_2_base_next=iTime(NULL,base_tf,UpperFractal_2_base_next);
datetime LowFractalTime_1_base_next=iTime(NULL,base_tf,LowerFractal_1_base_next);
datetime LowFractalTime_2_base_next=iTime(NULL,base_tf,LowerFractal_2_base_next);
//1.5 Determinare gli indici di barra su m15 per il tempo di apertura della barra frattale
int UpperFractal_1_m15_base=iBarShift(NULL, 15, UpFractalTime_1_base,true);
int UpperFractal_2_m15_base=iBarShift(NULL, 15, UpFractalTime_2_base,true);
int LowerFractal_1_m15_base=iBarShift(NULL, 15, LowFractalTime_1_base,true);
int LowerFractal_2_m15_base=iBarShift(NULL, 15, LowFractalTime_2_base,true);
//1.6 Determinare gli indici di barra su m15 per la barra successiva all'estremo
int UpperFractal_1_m15_base_next=iBarShift(NULL, 15, UpFractalTime_1_base_next,true);
int UpperFractal_2_m15_base_next=iBarShift(NULL, 15, UpFractalTime_2_base_next,true);
int LowerFractal_1_m15_base_next=iBarShift(NULL, 15, LowFractalTime_1_base_next,true);
int LowerFractal_2_m15_base_next=iBarShift(NULL, 15, LowFractalTime_2_base_next,true);
//1.7 Trovare il numero di barre su m15 tra la barra - frattale e la barra successiva
int UpperFractal_1_m15_NumBars_base=(UpperFractal_1_m15_base-UpperFractal_1_m15_base_next);
int UpperFractal_2_m15_NumBars_base=(UpperFractal_2_m15_base-UpperFractal_2_m15_base_next);
int LowerFractal_1_m15_NumBars_base=(LowerFractal_1_m15_base-LowerFractal_1_m15_base_next);
int LowerFractal_2_m15_NumBars_base=(LowerFractal_2_m15_base-LowerFractal_2_m15_base_next);
// --- Fase 2 - - perfezionamento degli estremi
//2.1 Per il primo frattale più piccolo
int Bar_1_Lowest_m15_base=iLowest(NULL,PERIOD_M15,MODE_LOW,LowerFractal_1_m15_NumBars_base,LowerFractal_1_m15_base_next);
datetime Time_1_Lowest_m15_base=iTime(NULL,PERIOD_M15,Bar_1_Lowest_m15_base);
double Price_1_Lowest_m15_base=iLow(NULL,PERIOD_M15,Bar_1_Lowest_m15_base);
//2.2 Per il secondo frattale più piccolo
int Bar_2_Lowest_m15_base=iLowest(NULL,PERIOD_M15,MODE_LOW,LowerFractal_2_m15_NumBars_base,LowerFractal_2_m15_base_next);
datetime Time_2_Lowest_m15_base=iTime(NULL,PERIOD_M15,Bar_2_Lowest_m15_base);
double Price_2_Lowest_m15_base=iLow(NULL,PERIOD_M15,Bar_2_Lowest_m15_base);
//2.3 Per il primo frattale più grande
int Bar_1_Highest_m15_base=iHighest(NULL,PERIOD_M15,MODE_HIGH,UpperFractal_1_m15_NumBars_base,UpperFractal_1_m15_base_next);
datetime Time_1_Highest_m15_base=iTime(NULL,PERIOD_M15,Bar_1_Highest_m15_base);
double Price_1_Highest_m15_base=iHigh(NULL,PERIOD_M15,Bar_1_Highest_m15_base);
//2.4 Per il secondo frattale più grande
int Bar_2_Highest_m15_base=iHighest(NULL,PERIOD_M15,MODE_HIGH,UpperFractal_2_m15_NumBars_base,UpperFractal_2_m15_base_next);
datetime Time_2_Highest_m15_base=iTime(NULL,PERIOD_M15,Bar_2_Highest_m15_base);
double Price_2_Highest_m15_base=iHigh(NULL,PERIOD_M15,Bar_2_Highest_m15_base);

	          
 
Almat Kaldybay:

Anche se non ho riscontrato questa situazione nella pratica, ho deciso comunque di escluderla.

Oggi, ad esempio, sulla coppia GBPUSD/EURUSD M5 la prima candela si è aperta alle ore 00:05. Se prendiamo 288 candele per analogia con M15, entreremo nei dati di un altro giorno.

È vero, questo è per MT5... su MT4 (server MetaQuotes-Demo) - inoltre, presso un altro broker a partire dalle 00:00, quindi... tutto è individuale e bisogna ancora verificarlo.

 
MetaQuotes Software Corp.:

È stato pubblicato il nuovo articolo Tracciare linee di tendenza basate su frattali utilizzando MQL4 e MQL5:

Autore: Almat Kaldybay

Ciao,

Non ottengo la linea di tendenza come illustrata sopra.
Qualche impostazione speciale?

 
Hairi Baba:

Ciao,

Non ottengo la trendline come illustrato sopra.
Qualche impostazione particolare?

Ciao, forse non disponi di dati storici M15
 

Ciao Almat,

Non ricevo le linee di tendenza nel grafico, ma ricevo continui avvisi dal cellulare. Ti prego di aiutarmi se mi sfugge qualcosa.

Grazie,
Prakash.R

 
prakki79:

Ciao Almat,

Non ricevo le linee di tendenza nel grafico, ma ricevo continui avvisi dal cellulare. Ti prego di aiutarmi se mi sfugge qualcosa.

Grazie,
Prakash.R

Ciao,

1. È necessario compilare il file mq4 nel metaeditor;

2. Penso che tu abbia delle linee di tendenza nel grafico, ma non le vedi a causa della scala del grafico.

 
Salve, per favore ditemi come inserire un Expert Advisor in mt4. Ho scaricato il file trendlines.mq4 compilato e inviato insieme al codice sorgente nella cartella mql4/Indicators, ricaricato il terminale, provo ad attaccare l'indicatore al grafico - nessuna reazione. Cosa sto sbagliando?