Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

iCustom - Das Wichtigste 2

Geschrieben

So,

jetzt ist das Einbinden ja recht gut verlaufen und nach langem :ot: habe ich trotzdem viel gelernt! :twiddle:

Durch das ständige Probieren kommt man ja nicht umhin sich mal mit dem Quelltext auseinander zu setzen :ot:

 

Jetzt bin ich natürlich auf die tolle Idee gekommen einen eigenen iCustom zu schreiben bzw. zu programmieren.

Laut meines bisherigen Know-How ist das Fundament fertig. Laut MT4 anscheinend noch nicht :ot:

 

Der Indi basiert auf der Berechnung der "Linearen Regression", deren Geraden und die dazugehörige Steigung...

Diese Idee gab es schon. Entstand sogar weit vor 1990.

 

Da der Indi mit Hilfe dieses Forums entstehen/geschliffen/verbessert wird, soll er auch für Mitglieder zugänglich sein. Jedoch möchte ich eine Forumsanmeldung von Unbekannten speziell wegen des "freien" Indikatoren, vermeiden.

Jetzt gab es im Forum doch mal die Möglichkeit, dass ein User erst nach einer bestimmten Anzahl an Posts ein bestimmtes Topic lesen kann. Geht das noch und wenn ja: Wie?

 

LG NC

Featured Replies

Geschrieben
Da der Indi mit Hilfe dieses Forums entstehen/geschliffen/verbessert wird, soll er auch für Mitglieder zugänglich sein. Jedoch möchte ich eine Forumsanmeldung von Unbekannten speziell wegen des "freien" Indikatoren, vermeiden.

Jetzt gab es im Forum doch mal die Möglichkeit, dass ein User erst nach einer bestimmten Anzahl an Posts ein bestimmtes Topic lesen kann. Geht das noch und wenn ja: Wie?

 

LG NC

 

Hi NikkChade,

 

das geht, ja und wird auf Wunsch auch ermöglicht.

Schreibst Du mir ganz kurz zusammen, wie Du Dir das vorstellst, dann sprechen wir das intern ab.

 

LG

whipsaw

Geschrieben
  • Autor

Nur mal als Information für alle zukünftig Interessierten Helfer:

 

Drück mich!:twiddle:

 

Ist für die einen sicherlich ein ziemlich trockenes Thema, für die anderen eventuell sehr sehr interessant!

Da treffen die Fundamentalen Meinungen auf die Technischen...

 

LG NC

Geschrieben
  • Autor

@ whipsaw:

Danke für die schnelle Ausführung. Jetzt kann es dann ja auch so langsam losgehen. :ot:

 

@ ronner:

Die Möglichkeiten sind auch als super Ergänzungen denkbar...oder auch in Kombination, um sich gegenseitig zu filtern. Da können wir ja mal in Ruhe nachdenken. Wird aber wahrscheinlich noch ein kleines Stück dauern... :twiddle:

==========================================

Im zweiten Schritt soll dann noch ein gleitender Durchschnitt über den Indikator gelegt werden, um so noch die zweite Möglichkeit einer Signalgenerierung zu bieten.

Die erste wäre beim Schneiden der Nulllinie...

 

Zur Geraden:

Eine Gerade wird zwischen alle Schlusskurse einer bestimmten Periode gezogen. Dabei ist die Gesamtentfernung aller Schlusskurse die oberhalb der Geraden liegen exakt gleich zur Gesamtentfernung aller Schlusskurse die unter der Geraden liegen. Jetzt hat die Gerade einen bestimmten Neigungswinkel. Entweder nach oben, unten oder horizontal. Diese Neigung gibt die Steigung der Geraden wieder.

Logisch sollte auch sein, dass eine horizontale Gerade einen Wert von NULL hat, da keine Steigung vorhanden ist.

Diese Steigung soll in einem separatem Fenster angezeigt werden, welches eine Skale von -5 bis +5 hat. Die Skale hingegen kann je nach Währungspaar und Kursniveau unterschiedlich sein. Das sollte ich eventuell nochmal durchrechnen...

 

Aber hier erstmal kurz die Formel, damit ihr in etwa wisst, wie der Indi rechnen soll. Später würde ich dann den jetzigen Indi hochladen, damit jeder mal rein schauen kann :ot:

Problem:

Er zeichnet Nichts!!! Die Formel sollte aber soweit passen.

 

Zur Berechnung:

Habe im Moment nur Nerven die Formel einzustellen. Hat auch den Vorteil, dass Ihr vorher mal drüber schauen könnt. Es könnte sonst die Gefahr bestehen, dass ihr Aufgrund des Indis befangen seid...

M=Mittelwert , y=Kurs , x=Bar , ^=hoch(Potenz)

Steigung = (M(xy) – Mx * My) / (M(x^2) – M(x)^2)

Werde morgen dann eine ausführliche Erläuterung mit Beispielen posten + den Indi. Meine Nerven liegen heute blank...

 

Gute Nacht...

NC

Geschrieben
  • Autor

Also, wie versprochen, doch leider etwas später:

Denn als ich posten wollte, war gerade die Wartung am Laufen.

 

Die Anwendung der Formel plus den bisherigen-nicht funktionstüchtigen-Indikator:

Formelanwendung

 

Formel:

Steigung = (M(xy) – Mx * My) / (M(x^2) – M(x)^2)

Erläuterung:

M=Mittelwert , y=Kurs , x=Bar , ^=hoch(Potenz)

Nehmen wir einmal diese Beispielkurse:

  1. x1 = y1,20 -> Schlusskurs 7:00Uhr
  2. x2 = y1,25 -> Schlusskurs 7:05Uhr
  3. x3 = y1,28 -> Schlusskurs 7:10Uhr
  4. x4 = y1,29 -> Schlusskurs 7:15Uhr
  5. x5 = y1,26 -> Schlusskurs 7:20Uhr

Da es sich hier um ein Diagramm handelt ist zu beachten,dass die Werte für "x" von links beginnen zu zählen.

Also wäre die Periode 5 des Indikators im Diagramm der Wert x1. Zur Lösung des Problems kommen wir aber später. Wir rechnen erstmal die Formel in einem Diagramm.

Berechnung:

M(xy) = (1 * 1,20 + 2 * 1,25 + 3 * 1,28 + 4 * 1,29 + 5 * 1,26) / 5 = 3,80

 

Mx = (1 + 2 + 3 + 4 + 5) / 5 = 5

 

My = (1,20 + 1,25 + 1,28 + 1,29 + 1,26) / 5 = 1,256

 

M(x^2) = (1*1 + 2*2 + 3*3 + 4*4 + 5*5) / 5 = 11

 

M(x)^2 = Mx * Mx = 5*5 = 25

Nun das Einfügen der Ergebnisse in die Formel:

Steigung = (3,8 - 5 * 1,256) / (11 - 25) = 0,177142

 

Kommen wir nun zur Verwertung vom Ergebnis:

 

Was sagt nun 0,177142 aus? Dieser Wert sagt uns, dass die Steigung der Geraden 0,177142 beträgt. Wir haben also steigende Kurse. Oder anders ausgedrückt:

Wenn wir auf der x-Achse um 1x voranschreiten(5min.lt.Bsp.), dann steigt die Gerade im Schnitt um 0,177142 Diagrammeinheiten.

 

Der errechnete Wert sollte nun vom Indikator in einem separatem Fenster ausgegeben werden.(RSI-like)

 

Aber was muss ich nun bachten, wenn ich etwas uploaden möchte? So ganz hat es nicht gefunzt...

 

LG NC

Geschrieben

Der ist aber (schön) schlank gehalten :hmmmm: Danke Nico!

 

Sehr gut, dass Du Deine Property Info eingefügt hast.

Für alle Fälle könnest Du noch den Línk zum Supporttopic angeben, für den Fall, dass der Code weiterentwickelt wird und da draußen jemand ist, der Kontakt mit Dir aufnehmen will. Ist (glaube ich) besser als eine Mailadresse anzugeben.

Geschrieben
Der ist aber (schön) schlank gehalten :rofl: Danke Nico!

 

Der verrechnet sich wenigstens nicht :wub:

 

Hab deinen Indikator mal quick & dirty etwas mit Leben gefüllt. Schau's dir mal an!

 

Mx = (1 + 2 + 3 + 4 + 5) / 5 = 5

Nur am Rande: 15/5=3 :hmmmm:

 

Das Problem an dem Indikator ist, dass er bei "normalen" Kursverläufen EURUSD fast immer "0" liefert.

Die Zahlen in deinem Beispiel haben halt eine sehr hohe Dynamik.

Damit man was sieht hab ich noch einen Parameter "Amplify=1000" eingefügt.

 

Was die Parameter PeriodeLR und BerechnungMA hab ich nicht verstanden. Ich hab sie einfach mal ignoriert.

lineare_Regression.mq4

Geschrieben
  • Autor
Nur am Rande: 15/5=3

Ups...da ist mir wohl ein kleiner Fehler unterlaufen :hmmmm:

Aber wenn ich das jetzt richtig sehe, dann gibt es Aufgrund dieses Fehlers ja auch dementsprechende Folgefehler...Verdammt!!! :rofl:

...Línk zum Supporttopic angeben...

...ähm...ich bin zwar nicht ganz so neu im Forum. Aber ich weiß leider nicht genau was Du meinst und wie das funzt :LLL:

Was die Parameter PeriodeLR und BerechnungMA hab ich nicht verstanden.

PeriodeLR sollte den Zeitraum darstellen, der Zurückgerechnet wird. Also wie bei RSi die Periode 14 als Bsp.

BerechnungMA ist der spätere Durchschnitt der über die Regression gezogen wird um hier ein zusätzliches Signal generieren zu können.

 

Aber eine Frage hätte ich dann noch:

Können wir in den nächsten Tagen den Quelltext step-by-step durchgehen um ihn für mich auch verständlich zumachen? Denn was Indikatorenprogrammierung angeht habe ich keine Ahnung :wub:

 

Und nun zum Abschluß und Wochenstart:

Soviele ":LLL:" zusammen musste ich noch nie in einem Beitrag bringen. Peinlich! :LLL:

 

lg und angenehmen Wochenstart

NC

Geschrieben
Können wir in den nächsten Tagen den Quelltext step-by-step durchgehen um ihn für mich auch verständlich zumachen? Denn was Indikatorenprogrammierung angeht habe ich keine Ahnung

 

Na klar, fangen wir doch gleich mal an...

   Mx=0;
  for(int a=1; a<=TimeFrame; a++)
  {
  Mx=Mx+a;
  }
  Mx=Mx/TimeFrame;

Die Berechnung von Mx muss nur 1x durchgeführt werden, da sie nur von deinem externen Parameter TimeFrame abhängt. Deshalb findet die Berechnung auch nur beim Aufruf der

Inti-Funktion statt.

In der for-Schleife wird a von 1 bis TimeFrame durchlaufen und jeweils zu Mx addiert, also Mx = 1 + 2 + 3 + 4 + 5+...+TimeFrame.

Dann noch geteilt durch TimeFrame und schon ist Mx fertig...

 

   int Index, Index_2;
  int counted_bars = IndicatorCounted();
//----
  //---- check for possible errors
  if(counted_bars < 0) return(-1);   
  Index=Bars-counted_bars-1;  
  Index_2=Index;

Variablen Deklaration sollte klar sein. Index und Index_2 werden nur lokal in Start() verwendet und sind darum nur lokal deklariert.

IndicatorCounted() liefert die Anzahl der Bars zurück, die sich nicht verändert haben seit dem letzten Aufruf. Das ist für den ersten Durchlauf natürlich 0

und dann jeweils 1 (oder 2 wenn sich gerade ein neuer Bar gebildet hat).

 

counted_bars

Dann wird die Anzahl der noch abzuarbeitenden Bars Index zugewiesen. Standardmässig berechnet man einen Bar mehr um unliebsame Timingeffekte auszuschalten.

In Index_2 speichere ich diese Zahl um sie nach der While-Schleife noch zur Verfügung zu haben.

   while(Index>0)
  {
  if(Index<Bars-TimeFrame) //damit an Chartanfang nicht ohne Werte gerechnet wird
  {
   ...
  }
  else
	 LineareRegression[Index]=EMPTY_VALUE;
  Index--;
  }

Weitergehts mit der Berechnung. In der While-Schleife wird der Indikatorwert für alle noch nicht berechneten Bars abgearbeitet.

Die Schleife wird solange durchlaufen, bis die Bedingung (Index>0) nichtmehr erfüllt ist. Nehmen wir also mal an dein Chart hat 1000 Bars, dann startet Index mit 1000 (eigentlich mit

999, da ja 1 abgezogen wird). Am Ende der While-Schleife wird Index um 1 heruntergezählt, also 999, 998, 997,...,1. Der aktuellste Bar wird hier nicht mitberechnet. Ist das gewollt,

so müsste die Bedingung heissen (Index>=0).

Die Berechnung wird also ganz links im Chart begonnen und läuft dann immer weiter Richtung Gegenwart. Da die Berechnungsformel ja Werte verwendet, die um TimeFrame Bars noch

weiter zurück liegen können als der zu berechnende Bar, wird die Berechnung nur durchgeführt, wenn Index einen Wert hat, indem die ges. Historie gefüllt werden kann. Also bei einem Wert von

TimeFrame=5 wird der Indikatorbuffer erst gefüllt, wenn Index mindestens um 5 Bars rechts vom Chartstart liegt. Ansonsten bekommt der Indikatorbuffer den Initialisierungswert (EMPTY_VALUE).

Dann zur Berechnung:

		 My=0;
	 Mxy=0;
	 Mx2=0;
	 for(int a=1; a<=TimeFrame; a++)
	 {
		My=My+Close[Index+a-1];
		Mxy=Mxy+a*Close[Index+(TimeFrame-a)];
		Mx2=Mx2+a^2;
	 }
	 Mxy=Mxy/TimeFrame;
	 My=My/TimeFrame;
	 Mx2=Mx2/TimeFrame;
	 Mx_2=Mx*Mx;
	 //Berechnung der Steigung: Steigung = (M(xy) – Mx * My) / (M(x^2) – M(x)^2)
	 LineareRegression[Index]=(Mxy-Mx*My)/(Mx2-Mx_2)*Amplify;

Die Berechnungsformeln kennst du ja wohl besser als ich...

Da bei jedem Durchlauf der Schleife ein komplett neuer Wert berechnet wird, werden die Zwischengroessen Mx, Mxy, Mx2 erst mal mit 0 initialisiert.

In der For-Schleife laeuft a von 1 bis TimeFrame.

Zu My werden dabei die TimeFrame letzten Werte addiert.

Bei der Mxy-Berechnung ist die Gewichtung mit a ja so, dass die Schlusskurse der "jüngeren" Werte mit dem höheren a gewichtet werden.

Deshalb laufen die Schlusskurse von links nach rechts (TimeFrame-a) und a von 1...TimeFrame.

Der Rest ist einfach Einsetzten in deine Formel.

Wie schon gesagt, damit man im Indikator mehr sieht skaliere ich das Endergebnis mit dem Faktor Amplify hoch.

Nach der While-Schleife ist der LinearRegression-Buffer also schon fertig.

Jetzt wird in einer 2. Schleife noch der MA über diesen Buffer gerechnet:

	  if(Index_2<Bars-(TimeFrame+PeriodeMA))  //damit an Chartanfang nicht ohne Werte gerechnet wird
  {   
	 MovingAverage[Index_2]= iMAOnArray(LineareRegression,0,PeriodeMA,0,MODE_SMA,Index_2);   
  }
  else
	 MovingAverage[Index_2]=EMPTY_VALUE;

Hier wieder selbes Prinzip wie oben: if(Index_2

Ob die Bedingung "Bars-(TimeFrame+PeriodeMA)" 100%ig stimmt, bin ich nicht ganz sicher. Habs nicht im Detail durchgedacht. Spielt aber für die Funktion des Indikators keine

Rolle und ist nur 'ne Fleissaufgabe.

Mit iMAOnArray wird nun der gleitende Durchschnitt über das Array LinearRegression berechnet. die Parameter hierzu sind einfach:

1) Arrayname

2) Anzahl der Arraywerte, die berechnet werden sollen. Bei "0" werden alle berechnet

3) Periode des MA

4) MA-shift

5) Die MA-Methode. Ich hab hier den einfachen MA gewählt

6) Der Berechnungsshift, also welcher Array-Wert berechnet werden soll. Da die While-Schleife ja für alle (noch nicht abgearbeiteten) Bars durchlaufen wird, wird die Formel

also für alle Werte von LinearRegression aufgerufen.

RefreshRates() bewirkt dann nur, dass der Indikator im Chart aktualisiert wird.

 

Hoffe das war jetzt halbwegs verständlich :hmmmm:

Geschrieben
Was sagt nun 0,177142 aus? Dieser Wert sagt uns, dass die Steigung der Geraden 0,177142 beträgt. Wir haben also steigende Kurse.

 

Hallo Nikk,

 

ich hab mir den Indikator mal im Chart angeschaut. Irgendwo ist da ein Vorzeichendreher. Immer wenn die Kurse steigen wird der Indikator

negativ und umgekehrt :hmmmm:

 

Wogo

Geschrieben
  • Autor
Irgendwo ist da ein Vorzeichendreher. Immer wenn die Kurse steigen wird der Indikator

negativ und umgekehrt...

Yep...habe ihn mir auchmal angeschaut und denke auch so. Liegt aber nicht an der Programmierung,sondern an der Formel.

Habe den Fehler auch schon gefunden. Aber er ist sehr gut programmiert :rofl:

Und wenn ich jetzt anders denke, dann sind die Signale garnicht so schlecht.

 

Der Fehler liegt an der Variable X.

Nur kurz zur Erklärung:

Die Formel ist für ein Diagramm gemacht. Jetzt hat ein Chart zwar die Form, jedoch die X-Achse hat nicht die gleichen Werte in der angegebenen Reihenfolge.

Wenn der Indikator also den Bar berechnet der am weitesten von ihm weg ist, dann ist das im Diagramm der Punkt NULL bzw EINS auf der X-Achse. Für den Indikator wäre es aber die MaxPeriode. Als Bsp kann man hier 15 nehmen.

Also müssen wir das Diagramm auf die negative Seite bringen, um wenigstens gleiche Zahlenwerte zu haben.

Es ist schwer zuerklären. Deshalb mal eine kleine Skizze...

 

Was mir aber gerade auffällt. Im Trendmarkt liefert er Scheiße-Geile Signale. Jetzt noch ein guter Filter dazu und der könnte richtig gut werden :hmmmm:

 

Also,hier die Skizze...aber wirklich nur Skizze. Auf der linken Seite siehst du die andere Art der Formel. Auf der rechten Seite die alte Berechnungsart...

 

Und ich gehe jetzt erstmal den Quelltext durch.

Danke für die Mühe bisher...

 

lg NCErkl_rung_Formel_nderung.jpg

Geschrieben

Hey ihr,

ich hab jetzt nicht alles ganz genau durchgelesen vom Code aber so beim drüberschauen sieht das schon echt gut aus was ihr hier macht.

Es ist auf jeden Fall spannend hier bei euch. Ich find die Idee gut. Auch mit der Formel usw.. Macht weiter so ^^

 

Viele Grüße,

Rumpel

Geschrieben
  • Autor

Nochmal zum Problem mit dem Vorzeichen:

 

Ich weiß zwar wie man es umgehen könnte, aber ich werde da nochmal drüber rechnen müssen und auch versuchen dieses Problem im Quelltext zu lösen. Natürlich wird es dann auch on gestellt.

 

Gute Nacht

NC

Geschrieben
  • Autor

So, Jungs und Mädels...

Es ist soweit!

 

Tataaa... :rofl:

Nachdem ich mich eingelesen habe und mir den Indi und die Formel angeschaut habe, bin ich zu folgendem Schluß gekommen.

Ich habe die ganze Zeit nach einer Lösung zur Umwandlung der Formel bzw der Werte gesucht. :LLL: :LLL:

Bis es mir kam... :wub:

Ich hatte es in den letzten Tagen schonmal erwähnt und kann es nur immer wieder sagen:

Aus Minus mache Plus...oder andersrum.

Dank deiner zusätzlich eingefügten Vergrößerungsvariable "Amplify" ist es ganz einfach.

Setze einfach vor die "1000,0" im Input-Menu ein Minus davor. Also anstatt "1000,0" machst Du "-1000,0" daraus...

Und siehe da, wir haben aus den Negativwerten mit einem Minus ein paar positive Werte gemacht...

 

Ich muss mich für die aktuelle Ausdrucksweise entschuldigen, aber ich freue mich gerade wie ein Schnitzel :hmmmm:

 

Und jetzt sollte dieses Thema durch sein...glaube ich. Nur noch schnell ein paar Personenbezogene Änderungen vornehmen und dann kann es eigentlich schon mit den nächsten Indis weitergehen :top:

Aber vorher möchte ich noch allen Danken, die "mitgeholfen" und "gelobt" haben. Aber ein ganz spezieller Dank geht an WOGO :top: :LLL:

Warst einfach nur Spitze...

Geschrieben
  • Autor

Jetzt möchte ich noch kurz die Deutung des Indikators erklären und die detailfertige Datei hochladen.

 

Der Indikator stellt einen Zahlenwert im seperatem Fenster dar. Dieser Wert gibt die Steigung der Regressionsgeraden wieder.

Die Regressionsgerade gibt die erwartete Preisänderung je Zeiteinheit wieder.

Damit erhalten wir einen Maßstab für die erwartete Geschwindigkeit, mit der sich der Trend bewegt.

Die Steigung der Geraden zeigt die Richtung des Trends der Periode an.

Ein Schneiden der Nulllinie zeigt eine Trendwende an.

Dieser Indikator ist ein Momentumindikator, bei dem alle Werte des eingestellten Zeitraums in die Berechnung eingehen. Dadurch entsteht ein ruhigerer Verlauf und es kommt zu weniger Fehlsignalen als bei der Verwendung des "Momentums" oder der "Rate of Change".

 

Und zum Schluß noch die fertige Datei. Hierbei braucht ihr den "Amplify" nichtmehr verändern. Habe dies schon im Quelltext gemacht. Aber Ihr könnt Euch ja mal den Kopf im Quelltext genauer anschauen... :hmmmm:

Diese kleine Aufmerksamkeit kann aber nicht ganz zeigen wie Dankbar ich wirklich bin :rofl:

LineareRegression.mq4

 

lg und bis bald...

NC

  • 2 Wochen später...
Geschrieben

@NikkChade - also deine Formelbeschreibung find ich ja echt klasse! Die versteh ja sogar ich. Ich verstehe selten Formeln für irgendwelche Strategien / Indi´s. :hmmmm:

 

Ich habe das schon angefangen das ganze nachzuproggen im Dealbook mittels CTL Sprache. Allerdings ist mir aufgefallen das es die Regression auch "im Chart" gibt. Weist du wie sich die Formel dann verändert?

 

lr.jpg

Hier die vordefinierte lineare Regression ausm Dealbook.

 

Viele Grüße,

Rumpel

Geschrieben

Hi Rumpel,

 

die Lineare Regression ermittelt die Steigung einer Geraden, die durch eine festgelegte Anzahl von Punkten geht und deren Abweichung von allen Punkten im quadratischen Mittel minimiert ist. Im Endeffekt also nichts anderes als der Koeffizient m einer Standardgerade y=mx+t.

 

Ich bezweifle, dass der Indikator, den du zeigst, die Geradensteigung in ähnlicher Form benutzt.

In MQL4 gibt's auch einen Indikator, der sich "Lineare Regression" nennt

http://codebase.mql4.com/3729

'target="_blank">linked.gif

Der sieht ähnlich aus wie deiner. Er basiert auf zwei, in unterschiedlichen Modies berechneten MAs, die dann über eine Formel miteinander verrechnet werden.

Übrigens eine interessante Methode, da der Indikator sehr schnell reagiert... :hmmmm:

Geschrieben

Hi WOGO,

 

die Lineare Regression ermittelt die Steigung einer Geraden, die durch eine festgelegte Anzahl von Punkten geht und deren Abweichung von allen Punkten im quadratischen Mittel minimiert ist. Im Endeffekt also nichts anderes als der Koeffizient m einer Standardgerade y=mx+t.

Genau an dem Punkt kam ich ja dann auch ins Grübeln. Also der Indi von dir wird das gleiche sein wie bei mir.

 

DB360: Linear Regression(30)

lrdb.jpg

 

VininI LRMA(30)

lrmt.jpg

 

 

Kannst du kurz erklären was dort im MT4 Indikator passiert? Irgendwie gefällt der mir und evt. probiere ich mich da mal dran. Ich frag mich gerade wie es eigentlich zu so einer "Fehlbezeichnung" kommen kann ....

 

Viele Grüße,

Rumpel

Geschrieben
Kannst du kurz erklären was dort im MT4 Indikator passiert?

 

Der Indikator ist recht einfach gehalten. Die Kernfunktionalität ist folgende:

	  tmp1=iMA(Symbol(),0,period,0,MODE_SMA,price,i);
  tmp2=iMA(Symbol(),0,period,0,MODE_LWMA,price,i);
  tmp3=3.0*tmp2-2.0*tmp1;

Es werden also 2 MAs gerechnet. Die Periode im Beispiel ist 34, gerechnet auf den Schlusspreis.

Der erste MA wird als simple MA, der zweite als linear gewichteter (also "neuere" Kurse gehen in die Berechnung stärker gewichtet ein als ältere).

LR.JPG

Das interessante daran ist, dass die beiden MA(34), der blaue simple, der lime linear gewichtet recht verzögert im Chart dargestellt werden. Erst duch das Verrechnen über

3.0*tmp2-2.0*tmp1

erreicht man eine sehr zeitnahe Darstellung.

 

tmp3 wird dann 3 Buffer (yellow, red, green) zugewiesen. Wenn das Signal steigt, dann wird der red-buffer auf EMPTY_VALUE gesetzt, wenn es fällt, der green und wenn es gleich bleibt, dann beide.

Im Chart sieht man dann also die grüne Linie für steigende, die rote Linie für fallende und die gelbe für gleichbleibende.

 

Hoffe das war verständlich :hmmmm:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.