T3 - Seite 30

 

Ja, nur um 2 x ATR hinzuzufügen

 
sohocool:
Hallo Mladen,

Glauben Sie, es ist möglich, Adaptive Hull Moving Average V2 zu tun?

Dezimalperiode scheint zu funktionieren.

viele Grüße

Hull basiert auf dem LWMA, und da der LWMA strikt auf Balken basiert, wäre er nicht so glatt in den Veränderungen wie z.B. der EMA (die Unterperioden der 3 LWMAs, die berechnet werden, um HULL zu erhalten, müssen ganzzahlige Werte sein). Wenn wir LWMA in HULL durch EMA ersetzen, könnte es einen Versuch wert sein (und wenn wir die Rundung derberechneten Unterperioden vermeiden). Es wäre dann zwar keine HULL mehr, aber vielleicht eine gute, und dann wäre sie perfekt zum Anpassen

 
mladen:
Hull basiert auf LWMA und da LWMA strikt auf Balken basiert, wäre es nicht so glatt in Änderungen wie EMA-basierte, zum Beispiel (Sub-Perioden der 3 LWMAs berechnet, um HULL muss ganzzahlige Werte zu erhalten) . Wenn wir LWMA in HULL durch EMA ersetzen, könnte es einen Versuch wert sein (und wenn wir die Rundung der berechneten Unterperioden vermeiden). Es wäre dann zwar keine HULL mehr, aber vielleicht eine gute, und dann wäre sie perfekt zum Anpassen

Danke, ich werde versuchen, mit Ema zu arbeiten.

 
sohocool:
Danke, ich werde versuchen, mit Ema zu arbeiten.

Verwenden Sie dazu nicht die eingebaute Funktion iMA(), da sie die Punkte auf ganze Zahlen rundet

Verwenden Sie diese Funktion (oder etwas Ähnliches) :

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

//

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

//

//

//

//

//

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 verschiedenen Instanzen der Berechnung. Die Parameter sind einfach: Preis, Periode, Index und Instanznummer

 
mladen:
Verwenden Sie dazu nicht die eingebaute Funktion iMA(), da diese die Perioden auf ganzzahlige Werte rundet.

Verwenden Sie diese Funktion (oder etwas Ähnliches):

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

//

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

//

//

//

//

//

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 verschiedenen Instanzen der Berechnung. Die Parameter sind einfach: Preis, Periode, Index und Instanznummer

Ich muss löschen und hier einfügen ???

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

{

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

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

if (workT3Coeffs[_period] != period)

{

workT3Coeffs[_period] = period;

double a = hot;

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;

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

wenn (sauber)

workT3Coeffs[_alpha] = 2,0/(2,0 + (Periode-1,0)/2,0);

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

}

 
sohocool:
Ich muss löschen und hier einfügen ?

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

{

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

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

if (workT3Coeffs[_period] != period)

{

workT3Coeffs[_period] = period;

double a = hot;

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;

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

wenn (sauber)

workT3Coeffs[_alpha] = 2,0/(2,0 + (Periode-1,0)/2,0);

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

}

sohocool

Ich habe hier eine Version gepostet, wie es gemacht werden kann (die immer noch keine adaptive Version ist): https: //www.mql5.com/en/forum/174961/page10

Jetzt musst du es adaptiv machen (schließlich war es deine Idee)

 
sohocool:
Hallo Mladen,

Die adaptive Funktion ist sehr interessant.

Ich habe die adaptive T3 mit "Swiss Army" Alpha gemacht.

Wir können 2 Alphas wählen: clean oder Swiss Army.

Mit freundlichen Grüßen.

PS: Wenn Sie eine normale Alphaperiode wünschen, können Sie eine saubere Alpha verwenden: 2 x Periode

Hallo zusammen,

ich habe gerade den ATR-Kanal hinzugefügt.

 
mladen:
T3-Indikator, der die Standardabweichung für die Anpassung verwendet (T3 ist sehr gut für die Anpassung geeignet, da seine Berechnungslänge keine ganze Zahl sein muss - zum Beispiel können Sie einen nnn.5 T3 berechnen - und das ergibt einen perfekt glatten T3-Wert, selbst wenn die Anpassung darauf angewendet wird, was bei einigen anderen Arten der Durchschnittsanpassung nicht der Fall ist)

PS: Ich füge auch die ex4 für diejenigen bei, die Probleme beim Kompilieren des Quellcodes haben könnten. Obwohl der Indikator vom ersten bis zum letzten Buchstaben von mir geschrieben wurde, weigerte sich mein Build für einige Zeit, ihn zu kompilieren. Jetzt, aus heiterem Himmel, kompiliert er ihn ohne Probleme, so dass ich nicht sicher bin, dass jemand anderes nicht das gleiche Problem hat wie ich. Für diesen Fall lade die ex4 herunter (sie ist mit Build 500 gebaut)

PS: beim Vergleich mit "regulären" T3-Indikatoren setzen Sie T3Original auf false (da die meisten T3-Indikatoren die Fulks/Matulich-Berechnung verwenden und nicht die originale Tim Tillson-Berechnung)

Lieber Mladen

Wäre es möglich, den beigefügten Indikator mit 'Adaptive T3 calculations' zu konvertieren!

Danke für jede Hilfe

Geheimcode

Dateien:
ma_i-ca.mq4  2 kb
 
secretcode:
Lieber Mladen

Wäre es möglich, dass Sie den beigefügten Indikator mit 'Adaptive T3 Berechnungen' konvertieren!

Danke für jede Hilfe

geheimcode

Geheimcode

Bitte sehr Verwenden Sie die gleichen Standardparameter wie der Original-Indikator (so dass sie leicht verglichen werden können - erwartungsgemäß ist dieser Indikator viel schneller)

Dateien:
 

Hallo Mladen,

Hast du jemals daran gedacht, eine Bibliotheksdatei zu erstellen, in der deine schönen Codierungsmethoden zur Preisglättung oder zur Anpassung an Marktzyklen usw. gesammelt werden? ? Ich denke, eine solche Datei wäre in vielerlei Hinsicht sehr nützlich, zumindest um die Codierungsstruktur in vielen deiner Indikatoren sauberer und klarer zu machen (sie sind schon sehr sauber und klar, ich weiß , aber ich wünsche mir immer etwas Besseres und suche nach noch mehr Exzellenz).

Ich persönlich hätte gerne eine solche Lib-Datei von Ihnen, genauso wie Ihre berühmte DynamicZone.dll . Sie alle machen die Welt des Programmierens immer interessanter und bequemer, zumindest für mich.