Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
745
Rating:
(19)
Veröffentlicht:
2018.06.11 13:24
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Die Parameter der Funktion:

  • double LX1 - die X-Koordinate des ersten Punktes der Linie;
  • double LY1 - die Y-Koordinate des ersten Punktes der Linie;
  • double LX2 - die X-Koordinate des zweiten Punktes der Linie;
  • double LY2 - die Y-Koordinate des zweiten Punktes der Linie;
  • double DX - die X-Koordinate des Punktes;
  • double DY - die Y-Koordinate des Punktes.


Berechnungsprinzip

Auf Basis der Koordinaten von zwei Punkten einer Linie erhalten wir die Formel: y=a+k*x. Der Koeffizient k bestimmt die Steigung der Linie, d.h. erhöht sich die Koordinate x um eine Einheit, ändert sich y um k Einheiten. Der Koeffizient k berechnet sich wie folgt:

double K=(LY2-LY1)/(LX2-LX1);

Die Konstante a bestimmt den Wert der Linie im Punkt x=0, d.h. an diesem Punkt kreuzt die Linie de y-Achse. Wenn die Steigung und die X-Koordinate bekannt sind eines Punktes auf der Linie bekannt ist, kann a berechnet werden:

double LA=LY1-K*LX1;

Der Abstand von einem Punkt zur Linie wird mittels der Senkrechten zur Linie bestimmt. Wenn man die Zeichnung um 90 Grad im Uhrzeigersinn dreht, hat die Linie d die gleiche Steigung mit umgekehrten Vorzeichen. Sind Steigung und die Koordinaten des Punktes bekannt, kann die Gleichung der Linie berechnet werden, aber diesmal in der Form x =a-ky. Ergo die Konstante a ist:

double DA=DX+K*DY;

Mit den Formeln beider Linien kann der Schnittpunkt errechnet werden. Dafür, ausgedrückt durch die Formel der ersten Zeile y, ersetzen wir in der Formel der zweiten Linie durch kleine Transformationen und erhalten die Koordinate x des Schnittpunkts:

double CX=(DA-K*LA)/(1.0+K*K);

Dann wird das resultierende x in der Formel der ersten Linie und erhalten die y-Koordinate des Schnittpunkts beider Linien:

double CY=LA+K*CX;

Mit den Koordinaten beider Punkte kann der Abstand zwischen ihnen entland der x- und x-Achsen (die Projektionen auf die Achsen) errechnet werden. Jetzt kann mit dem Satz von Pythagoras der Abstand berechnet werden:

MathSqrt(MathPow(DX-CX,2)+MathPow(DY-CY,2))

Eine russische Diskussion dazu findet sich hier https://www.mql5.com/ru/forum/237198. Sie können auch hier im Kommentarteil mitdiskutieren.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/20481

maximus_vX lite maximus_vX lite

Der Expert Advisor handelt mittels Ebenen. Er hat maximal zwei Positionen jeden Typs (Kauf und Verkauf) im Markt.

WCCI WCCI

Ein gewichteter CCI.

Poker_SHOW Poker_SHOW

Expert Advisor auf Basis einer Zufallszahl. Der Trend wird bestimmt durch iMA (gleitender Durchschnitt, MA).

TrueSort_1100 TrueSort_1100

Der Expert Advisor wartet, bis sich alle Linien von MA(10), MA(20), MA(50), MA(100) und MA(200) eine über der anderen arrangiert haben (oder eine unter der anderen.