![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Sì, solo per aggiungere 2 x ATR![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
Ciao Mladen,
Pensi che sia possibile fare Adaptive Hull Moving Average V2?
Il periodo decimale sembra funzionare.![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
SalutiL'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
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.![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
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
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]);
}
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);
}
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)![](https://c.mql5.com/forextsd/smiles/smile.png)
Ciao Mladen,
La funzione adattiva è molto interessante.
Ho fatto il T3 adattivo con "Swiss Army" Alpha.![](https://c.mql5.com/forextsd/smiles/teeth_smile.png)
Possiamo scegliere 2 alphas: pulito o Swiss army.
Saluti.
PS: Se volete un periodo alfa normale, potete usare l'alfa pulita: 2 x periodo![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
Ciao a tutti,
ho appena aggiunto il canale ATR.
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
Caro Mladen
Sarebbe possibile per voi convertire l'indicatore allegato con 'Calcoli adattivi T3'!
Grazie per qualsiasi aiuto
secretcodesecretcode
Ecco qui
Usa gli stessi parametri di default dell'indicatore originale (in modo da poterli confrontare facilmente - come previsto questo è molto più veloce)
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.