T3 - pagina 30

 

Sì, solo per aggiungere 2 x ATR

 
sohocool:
Ciao Mladen,

Pensi che sia possibile fare Adaptive Hull Moving Average V2?

Il periodo decimale sembra funzionare.

Saluti

L'Hull si basa sulla LWMA e poiché la LWMA è strettamente basata sulle barre non sarebbe così fluida nei cambiamenti come quelli basati sull'EMA, per esempio (i sottoperiodi delle 3 LWMA calcolate per ottenere l'HULL devono essere valori interi). Se sostituiamo la LWMA nello scafo con l'EMA potrebbe valere la pena provare (e se evitiamo l'arrotondamento dei sottoperiodicalcolati). È vero che allora non sarebbe più un HULL, ma forse sarebbe un buon HULL, e poi sarebbe perfetto per l'adattamento

 
mladen:
L'Hull si basa sulla LWMA e dato che la LWMA è strettamente basata sulle barre non sarebbe così fluida nei cambiamenti come quelli basati sull'EMA, per esempio (i sotto-periodi delle 3 LWMA calcolate per ottenere l'HULL devono essere valori interi). Se sostituiamo la LWMA nello scafo con l'EMA potrebbe valere la pena provare (e se evitiamo l'arrotondamento dei sottoperiodi calcolati). È vero che allora non sarebbe più un HULL, ma forse sarebbe un buon HULL, e poi sarebbe perfetto per adattare

Grazie, proverò a farlo con Ema.

 
sohocool:
Grazie, proverò a farlo con Ema.

Basta non usare la funzione integrata iMA() per questo, poiché arrotonda i periodi a valori interi

Usate questa funzione (o qualcosa di simile) :

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

double workEma[][3];

double iEma(double price, double period, int r, int instanceNo=0)

{

if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars); r = Bars-r-1;

//

//

//

//

//

double alpha = 2.0 / (1.0+period);

workEma[r] = workEma[r-1]+alpha*(price-workEma[r-1]);

return(workEma[r]);

}

in 3 istanze diverse di calcolo. I parametri sono semplici: prezzo, periodo, indice e numero di istanza

 
mladen:
Basta non usare la funzione integrata iMA() per questo, dato che arrotonda i periodi a valori interi

Usa questa funzione (o qualcosa di simile):

//------------------------------------------------------------------

//

//------------------------------------------------------------------

//

//

//

//

//

double workEma[][3];

double iEma(double price, double period, int r, int instanceNo=0)

{

if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars); r = Bars-r-1;

//

//

//

//

//

double alpha = 2.0 / (1.0+period);

workEma[r] = workEma[r-1]+alpha*(price-workEma[r-1]);

return(workEma[r]);

}

in 3 diverse istanze di calcolo. I parametri sono semplici: prezzo, periodo, indice e numero di istanza

Devo cancellare e incollare qui?

double iT3(double price, double period, double hot, bool clean, int i, int instanceNo=0)

{

if (ArrayRange(workT3,0) !=Bars) ArrayResize(workT3,Bars);

se (ArrayRange(workT3Coeffs,0) < (instanceNo+1)) ArrayResize(workT3Coeffs,instanceNo+1);

se (workT3Coeffs[_periodo] != periodo)

{

workT3Coeffs[_period] = periodo;

doppio a = caldo;

workT3Coeffs[_c1] = -a*a*a;

workT3Coeffs[_c2] = 3*a*a+3*a*a*a

workT3Coeffs[_c3] = -6*a*a-3*a-3*a*a*a*a;

workT3Coeffs[_c4] = 1+3*a+a*a*a+3*a*a;

se (pulito)

workT3Coeffs[_alpha] = 2.0/(2.0 + (periodo-1.0)/2.0);

altrimenti workT3Coeffs[_alpha] = (MathCos(2*Pi/periodo)+MathSin(2*Pi/periodo)-1)/MathCos(2*Pi/periodo);

}

 
sohocool:
Devo cancellare e incollare qui ??

double iT3(double price, double period, double hot, bool clean, int i, int instanceNo=0)

{

se (ArrayRange(workT3,0) !=Bars) ArrayResize(workT3,Bars);

se (ArrayRange(workT3Coeffs,0) < (instanceNo+1)) ArrayResize(workT3Coeffs,instanceNo+1);

se (workT3Coeffs[_periodo] != periodo)

{

workT3Coeffs[_period] = periodo;

doppio a = caldo;

workT3Coeffs[_c1] = -a*a*a;

workT3Coeffs[_c2] = 3*a*a+3*a*a*a

workT3Coeffs[_c3] = -6*a*a-3*a-3*a*a*a*a;

workT3Coeffs[_c4] = 1+3*a+a*a*a+3*a*a;

se (pulito)

workT3Coeffs[_alpha] = 2.0/(2.0 + (periodo-1.0)/2.0);

altrimenti workT3Coeffs[_alpha] = (MathCos(2*Pi/periodo)+MathSin(2*Pi/periodo)-1)/MathCos(2*Pi/periodo);

}

sohocool

Ho postato una versione di come può essere fatto (che non è ancora una versione adattiva) qui: https: //www.mql5.com/en/forum/174961/page10

Ora devi renderlo adattivo (dopo tutto è stata una tua idea)

 
sohocool:
Ciao Mladen,

La funzione adattiva è molto interessante.

Ho fatto il T3 adattivo con "Swiss Army" Alpha.

Possiamo scegliere 2 alphas: pulito o Swiss army.

Saluti.

PS: Se volete un periodo alfa normale, potete usare l'alfa pulita: 2 x periodo

Ciao a tutti,

ho appena aggiunto il canale ATR.

 
mladen:
Indicatore T3 che usa la deviazione standard per l'adattamento (T3 è molto buono per l'adattamento, poiché la sua lunghezza di calcolo non ha bisogno di essere un intero - per esempio si può calcolare un nnn.5 T3 - e questo dà un valore T3 perfettamente liscio anche quando l'adattamento è applicato ad esso, il che non è un caso con alcuni altri tipi di medie che si adattano)

PS: allego anche l'ex4 per quelli che potrebbero avere problemi a compilare il sorgente. Anche se l'indicatore è scritto da me dalla prima all'ultima lettera, la mia build si rifiutava di compilarlo per qualche tempo. Ora, di punto in bianco, lo compila senza problemi, quindi non sono sicuro che qualcun altro non avrà il mio stesso problema. In questo caso scaricate l'ex4 (è compilato con la build 500)

PS: quando si confronta con gli indicatori T3 "regolari" impostare T3Original su false (poiché la maggior parte degli indicatori T3 usa il calcolo di Fulks/Matulich e non quello originale di Tim Tillson)

Caro Mladen

Sarebbe possibile per te convertire l'indicatore allegato con 'Calcoli adattivi T3'!

Grazie per qualsiasi aiuto

secretcode

File:
ma_i-ca.mq4  2 kb
 
secretcode:
Caro Mladen

Sarebbe possibile per voi convertire l'indicatore allegato con 'Calcoli adattivi T3'!

Grazie per qualsiasi aiuto

secretcode

secretcode

Ecco qui Usa gli stessi parametri di default dell'indicatore originale (in modo da poterli confrontare facilmente - come previsto questo è molto più veloce)

File:
 

Ciao Mladen,

Hai mai pensato di fare un file di libreria che raccolga i tuoi bei metodi di codifica per lisciare il prezzo, o adattarsi ai cicli di mercato, ecc. ? Penso che tale file sarebbe molto utile in molti modi, almeno rendere la struttura di codifica in molti dei tuoi indicatori più pulito e più chiaro (sono molto pulito e chiaro già, so ma sempre desiderio di meglio e la ricerca di più eccellente).

Personalmente mi piacerebbe avere un tale file lib da voi, lo stesso del vostro famoso DynamicZone.dll . Tutti loro rendono il mondo del coding sempre più interessante e conveniente, almeno per me.