P3 T3 Handelssystem


Kann jemand mir helfen, mit herauszufinden, der Winkel (in Grad) der Moving Average Linien (oder jede andere Linien für diese Angelegenheit). Ich möchte im Grunde wissen, der Winkel, den es macht, von einem Tag zum anderen oder von einer Stunde zur anderen. Und Id wie eine Strategie auf, ob der Winkel ist steil oder flach zu bauen. Hat jemand eine Idee oder sogar Beispielcode Aus der Geometrie wissen wir, dass ein Winkel eines solchen Dreiecks, das Sie beschreiben, einfach eine Tangente ist. So versuchen Sie dies: x Eine Reihe von Bars in die Vergangenheit. Für die weitere Berechnung oder Anzeige ist es nicht notwendig, Tangenten in Grad umzuwandeln, es sei denn, Sie müssen. Ich habe bei der Bestimmung Winkel als auch interessiert, aber ich glaube nicht, dass Quottimequot eine gute Wahl ist, da es einen anderen Winkel (für die gleiche Pipe Rage) für verschiedene Zeiten. Was ist quotstandardquot ist die tatsächliche Diagramm (Pixel) Abstand, aus denen jedes Zeitintervall (5M, 15M, etc.). Und auch daran ändert sich die Bandbreite, basierend auf der Preisspanne des Diagramms, wie viele Pips von eah horz dargestellt werden. Gitter. Ich denke, um genau zu sein für Winkel, über alle Zeitrahmen. Muss man wissen, wie viele Pips einen Horz machen. Gitter. Und dann (irgendwie) einen simularen Abstand für das vertikale Gitter zu bestimmen. Möglicherweise unter Verwendung einer 45-Grad-Linie, um die Messung durchzuführen (Horz - und Vert-Distanz müssten gleich sein, um eine 45-Linie zu erhalten). Auch ich beleive das Tangentenprodukt in ausgedrückt in Radians. Nicht Grad. Aber ich kann mich irren. Irgendwelche Gedanken - charliev Ich denke, um genau zu sein für Winkel, über alle Zeitrahmen. Muss man wissen, wie viele Pips einen Horz machen. Gitter. Und dann (irgendwie) einen simularen Abstand für das vertikale Gitter zu bestimmen. Möglicherweise unter Verwendung einer 45-Grad-Linie, um die Messung durchzuführen (Horz - und Vert-Distanz müssten gleich sein, um eine 45-Linie zu erhalten). Auch ich beleive das Tangentenprodukt in ausgedrückt in Radians. Nicht Grad. Aber ich kann mich irren. Irgendwelche Gedanken - charliev Nun, Sie mischen die MathematicGeometry mit einer Visualisierung. Die Zeit ist konstant und absolut als unabhängige Variable, daher ist sie ein geeigneter horizontaler Wert eines Graphen. Der Pip-Wert ist auch bei einem spezifischen Symbol als abhängige Variable konstant, daher ist es ein geeigneter vertikaler Wert eines Graphen. Daher ist PipsTime der richtige Ausdruck für die Tangente eines Winkels. Zum Zwecke der Berechnung bleibt die Tangente unabhängig vom Zeitrahmen konstant, da Timei und Pips i. e Highi sowohl in M1 als auch in H1 konstant sind. Es erfolgt keine Tangentenänderung durch Umschalten von M1 auf H1 und zurück. Natürlich müssen Sie die Verschiebung kompensieren: d. h. M1 Zeit Timei von M1iBarShift (Symbol, M1, Timei von H1), um absolute M1 Zeit und umgekehrt H1 Zeit zu finden. So kann die Tangente eines in M1 berechneten Winkels (Pipeline) verwendet werden, z. B. H1 oder D1. Allerdings ist die Visualisierung eine andere Sache. Wenn Sie zwei Trendlinien (p1t1 - p2t2) und (p3t3 - p4t4) zeichnen, haben sie unabhängig von der Anzeige in M1 oder H1 eine konstante Tangente zueinander, können aber auf dem Bildschirm anders aussehen. Das sollte Sie nicht täuschen, weil die Visualisierung nicht mit realen Mathematik oder Geometrie zu tun hat. Die Visualisierung ist einfach eine Verzerrung der Realität. Die FX-Markt ist einfach Funktion der Zeit oder wie wir Amerikaner sagen: quotTime ist moneyquot Ich denke, um genau zu sein für Winkel, über alle Zeitrahmen. Muss man wissen, wie viele Pips einen Horz machen. Gitter. Und dann (irgendwie) einen simularen Abstand für das vertikale Gitter zu bestimmen. Möglicherweise unter Verwendung einer 45-Grad-Linie, um die Messung durchzuführen (Horz - und Vert-Distanz müssten gleich sein, um eine 45-Linie zu erhalten). Auch ich beleive das Tangentenprodukt in ausgedrückt in Radians. Nicht Grad. Aber ich kann mich irren. Irgendwelche Gedanken - charliev Nun, Sie mischen die MathematicGeometry mit einer Visualisierung. Die Zeit ist konstant und absolut als unabhängige Variable, daher ist sie ein geeigneter horizontaler Wert eines Graphen. Der Pip-Wert ist auch bei einem spezifischen Symbol als abhängige Variable konstant, daher ist es ein geeigneter vertikaler Wert eines Graphen. Daher ist PipsTime der richtige Ausdruck für die Tangente eines Winkels. Zum Zwecke der Berechnung bleibt die Tangente unabhängig vom Zeitrahmen konstant, da Timei und Pips i. e Highi sowohl in M1 als auch in H1 konstant sind. Es erfolgt keine Tangentenänderung durch Umschalten von M1 auf H1 und zurück. Natürlich müssen Sie die Verschiebung kompensieren: d. h. M1 Zeit Timei von M1iBarShift (Symbol, M1, Timei von H1), um absolute M1 Zeit und umgekehrt H1 Zeit zu finden. So kann die Tangente eines in M1 berechneten Winkels (Pipeline) verwendet werden, z. B. H1 oder D1. Allerdings ist die Visualisierung eine andere Sache. Wenn Sie zwei Trendlinien (p1t1 - p2t2) und (p3t3 - p4t4) zeichnen, haben sie unabhängig von der Anzeige in M1 oder H1 eine konstante Tangente zueinander, können aber auf dem Bildschirm anders aussehen. Das sollte Sie nicht täuschen, weil die Visualisierung nicht mit realen Mathematik oder Geometrie zu tun hat. Die Visualisierung ist einfach eine Verzerrung der Realität. Der FX-Markt ist einfach Funktion der Zeit oder wie wir Amerikaner sagen: quotTime ist moneyquot Das ist eine großartige Erklärung, aber dont wir Basis unserer Einträge auf visuelle Informationen Für einen bestimmten Indikator, der Winkel verwendet, betrachten wir diese visuelle Info und geben, wenn es Ein bestimmtes visuelles Kriterium erfüllt. Ihre Formel ist sehr hilfreich, Im werde es auf meine Indikator anwenden und sehen, was es für einen Winkel produziert. Vielen Dank für die Antwort Das ist eine großartige Erklärung, aber dont wir Basis unserer Einträge auf visuelle Informationen Ja, wir tun Allerdings spielt es keine Rolle, was Sie sehen, weil eine verzerrte Ansicht keinen Einfluss auf Ihre Trading-Strategie. Denken Sie es auf diese Weise: Das Diagramm ist Zeitraster mit bestimmten Seitenverhältnis. Solange das Seitenverhältnis 1: 1 ist, haben Sie eine unverzerrte Ansicht. Somit wird die Verzerrung durch das Seitenverhältnis verursacht, nicht durch die Änderung der gezeichneten Punkte auf dem Zeitraster, sie bleiben konstant. Wenn Sie also Ihre Strategie auf dem Diagramm zeichnen, verbinden Sie die Zeitrasterkoordinaten mit den Augapfel-Daten, die vom Markt mit denselben Rasterwerten bereitgestellt werden. Sobald Sie Ihre Trendlinie auf der Grundlage Ihrer Strategie zwischen zwei Punkten, die Sie erstellt haben Tangente eines Winkels zwischen und Zeit. Diese Tangente und umgekehrt multiplizieren sie durch eine zukünftige Zeit wird Ihnen Betrag zu diesem Zeitpunkt. Bitte beachten Sie, dass die Änderung eines Seitenverhältnisses das Ergebnis Ihres Charts nicht verändern wird. Für einen bestimmten Indikator, der Winkel verwendet, betrachten wir diese visuelle Information und geben ein, wenn sie eine bestimmte visuelle Kriterien erfüllt. Also, wer kümmert, wenn 10 im Seitenverhältnis 1: 1 aussehen wie 20 im Seitenverhältnis 2: 1 Hinter all dieser Winkelverzerrung ist eine Tangente, die konstant ist, die Ihre visuelle Strategie Basis auf die Verbindung von zwei Kerzenpunkten, um unbekannte Punkt in der Zukunft auf Basis von lineare Interpolation. Vor einiger Zeit habe ich Slawa vorgeschlagen, neben der linearen Trendline-Funktion auch eine Trend-Zeichen-Funktion (eine Welle) zu implementieren, damit Sie zukünftigen Wert basierend auf Welligkeit, Frequenz oder Zeitzyklus voraussagen können, was eine genauere Vorhersage wäre Weil die Marktdaten eine Summe von Zyklen und ihrer Harmonischen sind, die von Händlern überall auf der Welt erzeugt werden, die alle unter Verwendung der gleichen Zeitrahmen M1, M5, M15, M30, H1, H4 synchronisiert werden. Bitte beachten Sie, dass Welle enthält sowohl BID ampamp ASK-Werte, wo Zeile enthält nur BID ASK valu. MetaTrader 5 - Indikatoren Zeichnung Kanäle - Inside und Outside View Einleitung Ich denke, es wird nicht eine Übertreibung sein, wenn ich sage, die Kanäle sind die beliebtesten Tool für die Marktanalyse und Handelsentscheidungen nach den gleitenden Durchschnitten. Im ersten Artikel der Serie, der den Kanälen gewidmet ist, werden wir die mathematische Basis und die theoretische Implementierung eines Indikators diskutieren, der einen durch drei Extreme auf dem Bildschirm des Client-Terminals festgelegten Kanal zeichnet. Auf den ersten Blick scheint die Zeichnung eines Kanals eine leichte Aufgabe zu sein, da sie auf der Gleichung einer Geraden basiert, die in der Grundschule gelehrt wird. Die praktische Umsetzung im Client-Terminal beinhaltet jedoch viele Fragen, die nicht direkt beantwortet werden können. Wie zu organisieren Einstellung von Extremum und Verfolgung ihrer Veränderungen in einem besten Weg Was tun und wie man einen Kanal zu ziehen, wenn sein Mittelteil liegt auf den verpassten Bars Was ist, wenn das linke Extremum eines Kanals am Freitag und die richtige ist Am Montag, so dass die freien Tage ohne Bars zwischen ihnen sind Wie können wir die aktuellen Werte eines Kanals Grenzen Diese und einige andere Fragen werden im ersten Artikel der Reihe von Artikeln über Kanäle beantwortet. Hier finden Sie auch die Umsetzung der Zeichnung von Kanälen durch drei vorgegebene Extremwerte mit den Standardklassen und dem objektorientierten Ansatz. Wir werden die Kanalschublade in Form eines Indikators implementieren. Einstellen von Extremen In der Tat wird die Position eines Kanals auf einem Diagramm durch mindestens drei Extremwerte bestimmt. Wenn wir dem Extremum eine Definition geben, können wir dieses akzeptieren: Es ist der maximale oder minimale Wert einer Funktion in einem gegebenen Bereich. Ein Punkt, an dem ein Extremum erreicht wird, wird Extremwert genannt. Wenn ein Minimum erreicht wird, dann wird der Extremwertpunkt als Minimumpunkt bezeichnet. Und wenn sein ein Maximum dann sein genannt ein Maximumpunkt. Die mathematische Analyse definiert einen anderen Term - ein lokales Extremum (das Minimum bzw. das Maximum). Im maximalen (minimalen) Punkt ist der Funktionswert größer (kleiner) als die Werte aller benachbarten Punkte. Die Definition ist aus Wikipedia (aus dem Russischen übersetzt). Zum Zeichnen von Kanälen brauchen wir lokale Extreme. Lets zeigen es grafisch ohne in die mathematischen Formeln. Auf der unten gezeigten Figur 1 gibt es drei lokale Extreme, die mit dem roten Preisniveau markiert sind. Die Rechteckpunkte zeigen zwei Maxima und ein Minimum: Abbildung 1. Die Beispiele der lokalen Extremsätze Nicht alle vorhandenen Extremum sind auf dem Diagramm markiert, es gibt nur die bedeutendsten. Für einen Leuchter oder ein Balkendiagramm ist es praktisch, den fraktalen Ausdruck für die Definition von Extremwerten zu verwenden - wenn mehrere benachbarte Balken nach links und nach rechts strikt absteigend oder aufsteigend sind (siehe Abb. 1). Da wir keinen Zweck haben, eine automatische Kanalschublade zu machen, wird die Position der Extremwerte wie in Fig. 1 - durch die Position auf der Zeit und Preise Achsen. Dazu eignen sich Preisetiketten - die speziellen graphischen Objekte des MetaTrader 5 Client-Terminals. Ein Preisetikett hat die Zeit - und Preiskoordinateneigenschaften, was es erlaubt, auf einem Diagramm definitiv einen Extrempunkt zu identifizieren. Der Gegenstand für die Speicherung von Extremen ist die Klasse TExtremum Das erste, was wir tun sollen, ist die Entwicklung einer Container-Klasse für die Speicherung von Extremen und einer Klasse für die Manipulation einer Gruppe von Extremen. Da wir die im Terminal enthaltenen Standardklassen so weit wie möglich nutzen, wird die Klasse TExtremum von der Standardklasse CObject übernommen. Die Beschreibung unserer Klasse ist unten angegeben: Die meisten Methoden sind trivial und sind nicht wert, unsere Aufmerksamkeit auf ihre Umsetzung zu lenken. Die Sache, die wir verweilen sollten, ist die TExtremum :: Compare-Methode. Diese Methode ist in der CObject-Klasse deklariert und wird für die Sortierung innerhalb einer Liste verwendet. Wir haben folgendes implementiert: Der Parametermodus ist hier zum Einstellen der Sortierrichtung vorgesehen. Wenn sie größer als Null ist, ist die Sortierung direkt (aufsteigend), ansonsten ist sie umgekehrt (absteigend). Darüber hinaus gibt es zwei Methoden zur Speicherung eines Extremum. Wir können unser Extremum in globalen Variablen speichern. Hier sind die Methoden: Zwei Methoden des Leseschreibens in globalen Variablen TExtremum :: LoadExtremum und TExtremum :: SaveExtremum return true bei erfolgreicher Ausführung. Manipulation der Liste der Extremum - die Klasse TExtremumList Da wir sowohl Speicherung und Sortierung von Extremen nach Zeit benötigen, dann sollten wir die Klasse TExtremumList von der Standardklasse CList erben. Mit diesem Erbe erhalten wir einen universellen Manipulator von Extremen ohne Grenzen für ihre Anzahl und Art. Dies ermöglicht eine weitere Erweiterung der Anzahl der gezeichneten Kanäle. Zum Beispiel können wir Zeichnung des Kanals hinzufügen, wenn nicht-lineare Regression durch mehrere Extreme. Die Beschreibung dieser Klasse ist unten angegeben: Hauptmethode der Klasse ist TExtremumList :: AddExtremum. Es ist für das Hinzufügen eines neuen Extremums zur Liste vorgesehen. Die Sortierung von Extremen in der Liste durch Extremwertzeit wird nach dem Hinzufügen durchgeführt. Der Code dieser Methode ist unten angegeben: Die folgenden Methoden der Basisklasse werden hier verwendet: CList :: Add - zum Hinzufügen eines neuen Elements zur Liste und CList :: Sort - für Sortierelemente in der Liste. Die Methode TExtremum :: Compare wird in CList :: Sort verwendet. Werfen wir einen Blick auf die Methode der Suche ein Extremum mit der angegebenen Zeit in der Liste TExtremumList :: FindExtremum. Der Code der Methode ist unten angegeben: Die folgenden Methoden der Basisklasse werden hier verwendet: CList :: GetFirstNode - für das erste Element der Liste (wenn die Liste leer ist, gibt es einen Null-Zeiger zurück) und CList: : GetNextNode - für das nächste Element der Liste (wenn kein nächstes Element vorhanden ist und die Liste vorbei ist, wird ein Nullzeiger zurückgegeben). Es gibt einen Zeiger auf ein aktuelles Element in den internen Daten der Klassenliste CList. Dieser Zeiger wird beim Aufruf von Methoden zum Verschieben in der Liste geändert (CList :: GetFirstNode, CList :: GetNextNode, CList :: GetPrevNode usw.). Wenn noch keine dieser Methoden aufgerufen wurde, zeigt der Pinter auf ein aktuelles Element auf das erste Element. Falls ein Extremum mit der vorgegebenen Zeit erfolgreich gefunden wurde, wird die Methode TExtremumList :: FindExtremum des gefundenen Elements verwendet. Wenn es kein solches Element gibt, gibt es -1 zurück. Die Methoden TExtremum :: MakeDTimeName und TExtremum :: MakePriceName sind Hilfsmittel. Sie sind dafür bestimmt, Namen von globalen Variablen zu erhalten, die beim Speichern und Lesen von Extremen verwendet werden. Diese Methoden haben die folgende Implementierung: Ein Beispiel für den erhaltenen Namen: MainChannelEURUSD5DTimeExtr1. Dieser Name entspricht einem temporären Extremum-Punkt des Kanals MainChannel (konventioneller Name), dem Symbol EURUSD, dem Zeitrahmen 5M und der Extremwert-Nummer 1. Die Nummer für ein Extremum wird in der Reihenfolge des Aufsteigens seiner Zeit ab 1 festgelegt , Es ist der Index verschoben auf 1 in einer aufsteigenden sortierten Liste. Ein Beispiel für den Wert von drei im Terminal gespeicherten Extremwerten ist in der folgenden Abbildung zu sehen: Abbildung 2. Die in den globalen Variablen gespeicherten Extremwerte Die oben beschriebenen Klassen sind dem Artikel in der Datei ExtremumClasses. mqh beigefügt. Indikator für die manuelle Einstellung der Extremum - ExtremumHandSet Nun, wir haben alles für die Entwicklung der ersten Indikator, mit denen wir die Position der Extremwerte in der manuellen Modus eingestellt. Der Code des Indikators ist dem Artikel in der Datei ExtremumHandSet. MQ5 beigefügt. Lets analysieren seine Zeichnung im Detail. Zuerst können wir uns visuell vorstellen, was wir auf dem Bildschirm sehen wollen: Abbildung 3. Der Indikator für das Setzen von Extremen Mit den linken Preisschildern setzen wir Positionen der Extremwerte auf die Zeit - und Preisachsen des Diagramms. Der Indikator muss die Position dieser Etiketten auf dem Diagramm bestimmen, temporäre Extremumpunkte auf dem Bildschirm anzeigen und sie in den globalen Variablen des Client-Terminals im oben beschriebenen Format speichern. Außerdem muss der Indikator die Bewegung der Preisetiketten auf dem Diagramm verfolgen und die belasteten temporären Extremumpunkte korrigieren. Die Verfolgung der Bewegung der Preisetiketten auf dem Diagramm wird einmal pro Sekunde durchgeführt. Dadurch wird das System unabhängig von Kommen von Anführungszeichen und workingnon Arbeitstagen. Erstens können die erforderlichen Bibliotheken verbunden werden: Die erste Bibliothek enthält die Klassen für die Organisation der Anzeige von Textinformationen auf dem Bildschirm (siehe den Artikel Erstellen Sie Ihre eigene Marktuhr unter Verwendung der Standardbibliothekenklassen). Mit ihm werden wir die Werte der temporären Extremwertpunkte anzeigen. Dann fügen wir die Eingabeparameter des Indikators hinzu (nur die wichtigsten werden hier beschrieben): Der erste Parameter PrefixString setzt ein Präfix, das zum Schreiben von Namen globaler Variablen beim Schreiben eines Extremums verwendet wird. Es gibt auch die Möglichkeit, mehrere Indikatoren dieser Art auf einem einzigen Diagramm zu verwenden. Das einzige, was zu tun ist, um verschiedene Präfixe für sie. Der Parameter ExtremumPointColor setzt eine Farbe für linke Preisetiketten, die die Position der Extremwerte bestimmen. Die Preisschilder müssen eine bestimmte Farbe haben. Diese Übereinstimmung wird im Indikator überprüft. Etiketten mit unterschiedlichen Parametern werden ignoriert. Der Parameter ShowInfo steuert die Anzeige der Textinformationen zu den angegebenen Extremwertpunkten auf dem Bildschirm. Als nächstes können die Objekte für die Anzeige von Informationen und die Manipulation der Extremwerte erstellt werden: Diese Objekte werden im Folgenden initialisiert: In der Liste PrevExtrList laden wir Extremwerte aus den globalen Variablen mit der Methode TExtremumList :: LoadExtremumList. Diese Liste speichert die Extremwerte, um sie mit neuen zu vergleichen, die aus einem Diagramm beim Ziehen der Preisetiketten auf dem Bildschirm gelesen werden. Die Liste CurrExtrList wird als aktuelle verwendet, sie speichert aktuelle Extremwerte. Da wir anfangs nur die Extreme aus den globalen Variablen lesen, werden sie als die tatsächlichen genommen. In der Liste NewExtrList werden wir neue Extreme auf der Karte finden. Werfen wir einen Blick auf die wichtigsten Funktionen, die in der Indikator verwendet werden. Die erste Funktion FindExtremumPoints dient zum Lesen und Prüfen der Parameter von Preisschildern, die die Position der Extremwerte bestimmen: Zuerst wird die Liste NewExtrList durch Aufruf der Methode TExtremumList :: Clear gelöscht. Und dann werden alle gefundenen Extremumpunkte, die die spezifizierten Parameter haben, hinzuaddiert. Wenn die Anzahl der gefundenen Punkte drei ist, wird die Liste in den globalen Variablen gespeichert und die Funktion true zurückgegeben. Die andere Funktion CheakExtremumMoving verfolgt die Bewegung der Extremumpunkte auf dem Diagramm. Wenn mindestens ein Punkt entlang der Zeitachse des Diagramms verschoben wird, gibt diese Funktion true zurück. Sein Code ist unten angegeben: Weve betrachtete die Weise des Setzens der extreum Punkte im manuellen Modus. Wir haben den Bereit-Indikator, der es erlaubt, diesen Prozess zu kontrollieren und die Punkte auf die globalen Variablen zu schreiben. Der vollständige Code des Indikators befindet sich in der angehängten Datei ExtremumHandSet. mq5. Jetzt können wir auf den Hauptteil zu ziehen - Zeichnung eines Kanals. Zeichnen eines Kanals - Einige Theorie Ein linearer Kanal besteht aus zwei parallelen Linien, die streng durch Extrempunkte gehen. Darüber hinaus muss eine Zeile durch zwei Punkte gehen, und die andere muss durch die eine, die links ist parallel zur ersten Zeile gehen. Es kann in einem einfachen Bild gezeigt werden: Abbildung 4. Zeichnen eines Kanals mit drei Extremspitzen Wie wir aus der Geometrie wissen, kann nur eine Gerade durch zwei Punkte gezogen werden. Diese Linie hat die rote Farbe in der Abb. 4. Es wird angenommen, dass zwei Punkte mit den folgenden Koordinaten - (T1, P1) und (T2, P2) die Punkte mit den Buchstaben A und B markiert sind. Die Gleichung dieser Zeile ist: (1) P (t) P1 (T - T1) (P2 - P1) (T2 - T1) P (t) Hier ist der zum Zeitpunkt t berechnete Preis. Durch den Punkt C (das dritte Extremum) sollten wir eine weitere gerade Linie parallel zur ersten zeichnen. Diese Linie hat die grüne Farbe in der Abb. 3. Da die T1- und T2-Punkte für beide Linien gleich sind, sollten wir die Werte von P1 und P2 finden (siehe Abb. 4). Bevor wir vorankommen, müssen wir eine wichtige Bemerkung machen. Das Terminaldiagramm zeigt keine Zeitlöcher an. Zum Beispiel sollten die freien Tage, wenn Anführungszeichen nicht zum Terminal kommen, als Pausen der Preise angezeigt werden. Und es ist schlecht, dass sie es nicht sind. Was ist der Punkt bei der Betrachtung eines leeren Diagramms Jedoch wenn wir absolute Zeit in der Gleichung oben verwenden, erhalten wir einen falschen Kanal. Glücklicherweise ist die Situation nicht hoffnungslos. Wenn wir die absolute Zeit auf die relative Anzahl der Balken ändern, dann können wir diese Koordinaten für das Zeichnen eines Kanals verwenden, da die Aufzählung von Balken keine Pausen haben kann (praktisch ist es ein Index in einem Preisarray). Wenn wir weiter gehen und annehmen, daß der Punkt A in Fig. 4 immer auf einer Null-Koordinate (Nullbarren) der Zeitachse liegt, dann wird unsere Gleichung noch einfacher. Also, T10, T3B3,22. 3 und 2 sind hier die Zahlen eines Stabes relativ zu dem Punkt 1 (d. h. der Nullpunkt). Es ist klar, dass diese Annahme nicht zur Neigung der Linie führt. Dann erhalten wir die folgende Gleichung einer Geraden, die durch die Punkte A und B geht: (2) P (n) P1 n (P2 - P1) B2, wobei P (n) der Preis ist, der für einen Balken berechnet wird, N Zahl. Wir kennen also die Werte P1, P2, P3 und B2, B3. Nun müssen wir die P1- und P2-Werte finden. Wenn wir zwei Gleichungen kombinieren und diese lösen, erhalten wir die folgenden Formeln, mit denen wir die unbekannten Werte finden können: (3) P1 P3 - B3 (P2 - P1) B2 Da wir den Wert P1 finden und an die (4) Formel setzen , Erhalten wir den P2-Wert. Nun haben wir die theoretische Basis für das Zeichnen eines Kanals. Beginnen wir mit der Implementierung. Zeichenkanalrahmen - die Klasse TChannelBorderObject Diese Klasse wird von der Standardklasse CChartObjectTrend abgeleitet. Sein Zweck ist, alle Parameter zu speichern, die mit den Rändern eines Kanals verbunden sind, sowie das Zeichnen, das die Grenzlinien löscht und die grafischen Parameter dieser Linien kontrolliert. Die Beschreibung dieser Klasse ist unten angegeben: Diese Klasse braucht keine besonderen Kommentare. Wir wollen unsere Aufmerksamkeit nur auf die Methode des Erhaltens des Grenzpreises an einem bestimmten Punkt lenken: Die Funktion des Terminals ObjectGetValueByTime wird hier verwendet, um den Preiswert für eine bestimmte Zeit zurückzugeben. Es ist praktisch, die Terminal-Möglichkeiten zu verwenden, anstatt den Wert mithilfe einer mathematischen Formel zu berechnen. Zeichnen eines Kanals - die Klasse TSlideChannelObject Diese Klasse wird von der Standardklasse CList abgeleitet. Sein Zweck ist: das Speichern von Objekten der Klasse TChannelBorderObject und das Durchführen verschiedener Aktionen mit ihnen Berechnen von Punkten für das Zeichnen von benötigten Zeilen, die einen Kanal erstellen, der die Parameter eines Kanals speichert und modifiziert, die berechnete Werte erhalten, die einen gezeichneten Kanal beschreiben (seine Höhe, Grenzen, etc.) Der Code, der diese Klasse beschreibt, ist zu groß, um hier vollständig angezeigt zu werden. Diejenigen, die wollen, können es in der Datei SlideChannelClasses. mqh an den Artikel angehängt sehen. Läßt analysieren einige Hauptteile von ihm. Zunächst werden die Werte B2 und B3 in den Punkten T2 und T3 erreicht (siehe Abb. 4). Der folgende Code wird verwendet: Um eine Situation des Aufrufs von fehlenden Balken zu vermeiden, verwenden wir die Terminalfunktion Balken, die die Anzahl der Balken in der Historie für die angegebenen Symbole und Perioden zurückgibt. Wenn die Informationen noch nicht gebildet werden, gibt die Funktion einen Nullwert zurück, den sie für die Prüfung verwendet. Wenn die Funktion einen Wert ungleich Null zurückgibt, können wir die 2 und 3 Werte erhalten. Es wird mit der gleichen Funktion Bars, sondern ruft es in der anderen Form. Wir setzen Zeitlimits und erhalten die Anzahl der Balken in diesem Bereich. Da unser linker Rand gleich ist, erhalten wir die Verschiebung in Balken für die Punkte 2 und 3. Die Verschiebung für den Punkt 1 ist immer gleich Null. Nun können wir den ganzen Punkt der Kanallinien berechnen. Es können maximal neun von ihnen sein, da unser Kanal neben der oberen und unteren Grenze die mittlere Linie und die Linien der prozentualen Zonen um die Grenzen und die mittlere Linie anzeigt. Wir analysieren den Hauptteil der Berechnung. Die gesamte Berechnung erfolgt in der Methode TSlideChannelObject :: CalcChannel. Leftprices und rightprices hier sind die Arrays, die die Preiskoordinaten der neun Linien des Kanals speichern. Die Zeitkoordinate aller Zeilen des Kanals ist bereits bekannt. Bestimmen Sie zunächst den Koeffizienten der Linienneigung (siehe Formel (2)) koeffA. Dann berechnen wir den Preiswert der AB-Linie im Punkt T3 (siehe Abb. 4). Es wird durchgeführt, um zu bestimmen, welcher Typ des Kanals für die Zeichnung spezifiziert ist - um zwei Maxima und ein Minimum oder um zwei Minimum und ein Maximum. Wir überprüfen, welcher Punkt auf der Preisachse höher ist - der Punkt C oder der Punkt, der die (P3, T3) Koordinaten hat. Abhängig von ihrer Position bestimmen wir, ob der Kanal den ersten oder den zweiten Typ hat. Sobald die Koordinaten zweier Hauptlinien des Kanals (obere und untere) bestimmt werden, ist die Berechnung der Koordinaten der anderen sieben Zeilen nicht schwer. Zum Beispiel berechnen wir die Koordinaten der Mittellinie mit den Koordinaten des oberen und unteren Randes des Kanals auf folgende Weise: Nehmen Sie einfach den Mittelwert aus dem oberen und unteren Rand des Kanals. Indikator für die Zeichnung eines Kanals durch vorgegebene Extremmen - SlideChannel Nun haben wir bereits die Klasse zum Zeichnen eines Kanals. Jetzt können Sie einen Indikator schreiben, der die Parameter der Extremwerte aus den globalen Variablen liest und einen Kanal in einem Diagramm zeichnet. Es sieht folgendermaßen aus: Abbildung 5. Das Beispiel eines Kanals, der mit Extremen gezeichnet wird Hier werden auch die Informationen über den gezeichneten Kanal angezeigt - seine Breite, Entfernung in Punkten vom aktuellen Preis zu den Kanalgrenzen und der Mittellinie. Ermöglicht die Verbindung der erforderlichen Bibliotheken: Die erste Bibliothek enthält die Klassen für die Organisation der Anzeige von Textinformationen auf dem Bildschirm (siehe den Artikel Erstellen Sie Ihre eigene Marktuhr unter Verwendung der Standardbibliothekenklassen). Mit ihm werden wir die Werte der temporären Extremwertpunkte anzeigen. Fügen Sie dann Eingabeparameter des Indikators hinzu (nur die wichtigsten sind hier beschrieben): Der erste Parameter PrefixString. Genau wie im ExtremumHandSet-Indikator, setzt ein Präfix, das zum Komponieren des Namens der globalen Variablen beim Lesen von Extremen verwendet wird. Es gibt auch die Möglichkeit, mehrere Indikatoren dieser Art auf einem einzigen Diagramm zu verwenden. Das einzige, was zu tun ist, um verschiedene Präfixe für sie. Der Parameter ExtremumTimeFrame legt einen Zeitrahmen fest, der zum Lesen der Extremwertpunkte aus den globalen Variablen verwendet wird. Sein ein sehr nützlicher Parameter. Es ermöglicht das Zeichnen synchroner Kanäle auf verschiedenen Zeitrahmen. Wenn Sie zum Beispiel die Extremwerte von H1 setzen, können Sie denselben Kanal auf dem M5-Zeitrahmen zeichnen. Um es zu tun, fügen Sie einfach unsere Indikator für das Zeichnen von Kanälen auf das M5-Diagramm und es wird synchron alle Änderungen anzeigen. Der Parameter ShowInfo steuert die Anzeige der Textinformationen zu den Parametern des Kanals auf dem Bildschirm. Als nächstes erstellen Sie Objekte zum Anzeigen der Informationen und zum Zeichnen des Kanals: Das Objekt zum Zeichnen eines Kanals wird auf folgende Weise initialisiert: Hier erstellen wir zunächst einen Kanal, indem wir die Methode TSlideChannelObject :: CreateChannel aufrufen. Und dann legen wir die erforderlichen Parameter der Kanalzeile fest. Die Reihenfolge der Einstellung spielt keine Rolle, Sie können es umgekehrt - stellen Sie die Parameter und erstellen Sie dann den Kanal. Der Parameter periodcurrent ist die Periode, die beim Lesen von Extremen aus den globalen Variablen verwendet wird. Sie kann sich von der Periode eines aktuellen Diagramms unterscheiden. Werfen wir einen Blick auf die wichtigsten Funktionen, die in der Indikator verwendet werden. Die erste Funktion GetExtremums wird verwendet, um die Position der Extremwerte zu lesen und den Kanal gemäß den erhaltenen Werten zu aktualisieren: Für die Auffrischung des Kanals auf dem Bildschirm verwenden wir die Methode TSlideChannelObject :: SetExtremums. Mit dieser Methode werden die Koordinaten der Kanalzeilen neu berechnet und der Kanal auf dem Bildschirm neu gezeichnet. Ein Beispiel für das Zeichnen eines Kanals auf verschiedenen Zeitrahmen wird im folgenden Video gezeigt: Die Reihenfolge der Startindikatoren spielt keine Rolle, aber es ist logisch, zuerst den ExtremumHandSet-Indikator zu starten und dann drei linke Preisetiketten der gelben Farbe (die Farbe) hinzuzufügen Der Etiketten in den Indikatorparametern eingestellt ist, die gelbe Farbe auf den Standardwert gesetzt ist), und starten Sie den SlideChannel-Indikator, der den Kanal durch die angegebenen Extremwerte zeichnet. Damit ein Kanal synchron mit den Extremen des ersten Diagramms gezeichnet werden kann, sollten Sie den Zeitrahmen im Parameter ExtremumTimeFrame des SlideChannel-Indikators wie der des Diagramms einstellen, in dem die Extremwerte gesetzt sind. Dies ist das Ergebnis der Trennung der Funktion der Einstellung der Extremumpunkte des Kanals von der Funktion seiner Zeichnung auf dem Terminalbildschirm. Fazit Weve betrachtete den vollen Zyklus - von der Einstellposition eines Kanals auf dem Bildschirm zu seiner Zeichnung. Alles schien nicht so kompliziert, vor allem bei der Verwendung der Standard-Klassen und OOP. Aber es gibt eine Suche: wie sollten wir die Kanäle für die Arbeit auf dem Markt nutzen. Erstens sind sie für die technische Analyse des aktuellen Standes eines Finanzinstruments notwendig. Und zweitens, nach der Analyse, sind sie notwendig, um Entscheidungen zu treffen. Die Kanäle können stark darin helfen. Es ist möglich, einen halbautomatischen Expertenrat zu entwickeln, der die Grenzen eines Kanals zum Öffnen oder Schließen einer Position analysiert. Es kann sowohl mit dem Brechen durch eine Grenze oder mit Zurückrollen von ihm arbeiten. Dies wird das Thema des nächsten Artikels sein - Die Methoden der Arbeit mit einem Kanal - Rollback und Break Through. the wendy kirkland Veröffentlichung Zeitleiste Autor Analyst Trader Im Jahr 2004, wenn Hurrikan Frances und Ivan brachte eine Sintflut von Regen auf unser Familiengeschenk zu überfluten Shop, hatte ich keine Ahnung, die Ereignisse würde mir helfen, mich neu zu definieren. Im Alter von 54, fing ich auf einer Reise an, die mein Leben und unsere familys finanzielle Umstände änderte. T3: Der Trader Edge nimmt, wo die P3 Squeeze verlässt Charting und Spotting Wöchentliche Optionen Trade Opportunities Basis Chart Facts für den neuen Trader Charting und Spotting Wöchentliche Optionen Trade Opportunities vorgestellten Videos Quick Links Testimonials Meine Komplimente zu Ihrem Programm. Ohne zu detailliert zu gehen, ist genau das, was ich erreicht habe, genau so, wie ich es wünsche, Handel zu tauschen, dh nackte Anrufoptionen und diejenigen zu finden, die auf der rechten Seite ihrer neu gebildeten Basis auftauchen. Sie haben entdeckt, durch die technischen Setups, wie genauere Vorhersage der stärksten Kandidaten. Ich freue mich auf alle, die Sie unterrichten, und es sollte sehr belohnend sein.

Comments

Popular posts from this blog

Optionen Handel Lektionen

Tf Handelsstrategien

Ml Optionen Handel Llc