Saturday 29 July 2017

Kagi Charts Forex Indikatoren


MetaTrader 4 - Indikatoren Kagi Charts - Indikator für MetaTrader 4 Die Kagi Charts sollen in den 70er Jahren des 20. Jahrhunderts in der ersten Phase der japanischen Aktienmarktentwicklung auftreten. Die Kagi-Charts repräsentieren eine Reihe miteinander verbundener vertikaler Linien. Die Dicke und die Inkrementrichtung dieser Linien werden durch die Preisdynamik bestimmt. Die Kagi-Charts berücksichtigen nicht die Zeit. Wenn sich der Kurs in die gleiche Richtung bewegt, wird die vertikale Linie im Diagramm länger. Wenn sich der Preis um einen vordefinierten Wert (Reverse Coefficient) dreht, wird eine neue vertikale Linie in einer neuen Spalte in der Tabelle gezeichnet. Die Dicke der Kagi-Linien ändert sich, wenn die Preise ihre vorherigen maximalen Maximalwerte überschreiten. Die Kagi-Charts wurde in den USA aufgrund von Steve Nisons Buch namens quotBeyond Candlesticksquot bekannt. Die Kagi-Charts verdeutlichen, wie die Nachfrage - und Lieferkräfte wirken. Eine Folge dicker Linien spricht dafür, dass die Nachfrage über dem Angebot liegt (der Markt wächst). Eine Folge von dünnen Linien bedeutet, dass das Angebot über der Nachfrage liegt (der Markt fällt). Austausch von dicken und dünnen Linien spricht dafür, dass der Markt ausgeglichen ist (Angebot gleich Nachfrage). Die grundlegende Handelssignal auf einem Kagi-Diagramm ist die Linie Dicke: Wenn eine dünne Linie dick wird, sollten Sie kaufen, wenn umgekehrt, sollten Sie verkaufen. Eine Folge ansteigender Maxima und Minimums spricht für die Kraft der aufsteigenden Bewegung, abnehmende Maxima und Minimums sprechen für den schwachen Markt. Porog - Reversierkoeffizient in Prozent Download MetaTrader 5 Copyright 2000-2017, MQL5 Ltd. MetaTrader 5 - Beispiele Indikator für Kagi-Charting Einleitung Der Artikel Indikator für Punkt - und Abbildungstabelle hat eine der Möglichkeiten der Programmierung von Punkt - und Figurendiagrammen beschrieben. Diese Grafik ist seit dem 19. Jahrhundert bekannt. Allerdings ist dies nicht das einzige Diagramm aus der Ferne Vergangenheit. Ein weiterer bemerkenswerter Vertreter der frühen Arten der Finanzmarktrepräsentanz ist das Kagi-Diagramm. Dieses Diagramm wird im vorliegenden Artikel diskutiert werden. Das Börsenfinanzinstitut, das dem Japan des 19. Jahrhunderts nicht vertraut ist, wurde im Mai 1878 gegründet. Es ist heute als Tokyo Stock Exchange bekannt. Diese Veranstaltung spielte eine entscheidende Rolle bei der Schaffung und anschließende Entwicklung von Kagi-Charts. Europa und die USA kennen Kagi-Charts nach der Veröffentlichung von Steve Nisons Beyond Candlesticks: Neue japanische Charting-Techniken, die 1994 enthüllt wurden. Die japanischen Wörter Kagi bedeutet einen L-förmigen Schlüssel, der zur Zeit der Kartenentwicklung im Einsatz war. Außerdem gibt es eine modifizierte Version des Namensschlüsseldiagramms. In Steve Nisons Beyond Candlesticks finden Sie auch alternative Namen der Tabelle: Preisspanne Diagramm, Hook-Diagramm, Delta-oder Kettendiagramm. Das Besondere an dieser Karte ist, dass sie die Zeitskala ignoriert, die nur den Preis 1 übrig lässt (im Gegensatz zu japanischen Leuchtern, Stäben und Linien). Das Diagramm verbirgt also nicht unerhebliche Preisschwankungen, die nur die bedeutendsten übersteigen. Das Diagramm stellt einen Satz von dicken Yang - und dünnen Yin-Linien dar, die einander je nach Marktsituation ersetzen. Wenn sich der Markt in die gleiche Richtung bewegt, wird die Strecke um eine neue Preisklasse erweitert. Wenn jedoch der Markt zurückkehrt und einen vordefinierten Betrag erreicht, wird die Kagi-Linie in die entgegengesetzte Richtung in der neuen Spalte gezogen. Der vordefinierte Betrag wird entweder in Punkten (üblicherweise für Währungspaare) oder in Prozentwerten des aktuellen Kurses (üblicherweise für Aktien) verwendet. Die Liniendicke variiert je nach dem höchsten oder niedrigsten Durchbruch. 1. Charting-Beispiel Hier können die History-Daten von EURUSD, H1 vom 8. bis 11. Oktober verwendet werden. Ein Beispiel für eine Standard-Abbildung mit einer Rückschwelle von 15 Punkten ist in Abb. 1 dargestellt. Fig. 1. Kagi-Diagramm, EURUSD H1 Wie wir sehen können, fiel der Preis um 17:00 Uhr. Die Abwärtsbewegung setzte sich bis 21:00 Uhr fort. Um 22:00 Uhr bewegt sich der Preis von 1.3566 aufwärts und ist bei 1.3574 geschlossen. Mit anderen Worten, der Preis geht 11 Punkte. Dies reicht nicht für eine Umkehrung, aber die neue Low wurde auch nicht erreicht. Die nächsten zwei Stunden ist der Preis flach und schließlich, um 01:00 Uhr (9. Oktober), sehen wir eine starke Aufwärtsbewegung, die bei 1.3591 geschlossen ist, bestehend aus 25 Punkten (1.3591-1.3566). Das bedeutet, dass sich der Preis wieder aufgehoben hat. Der Aufwärtstrend setzt die folgende Stunde fort. Der Preis erreicht 1.3599 Verstärkung der dicken Yang-Linie. Um 03:00 Uhr schrumpft der Kurs bei 1,3578 scharf, was 21 Punkte von der Vorgängerhöhe (1,3599-1,3578) entspricht. Dies ist mehr als genug für die Umkehrung. Die Linie bewegt sich nach unten, behält aber ihre Form (dicke Yang-Linie). Bis 16:00 geht der Preis nach unten und schließlich bricht es durch das nächste Minimum und ändert sich von dicken Yang zu dünnen Yin Linie. Der vorerwähnte niedrige Wert von 1.3566 hatte als Durchbruch Preis hier gedient. Der Kurs geht weiter als Yin-Linie und wird am 10. Oktober um 14:00 Uhr auf Yang umgestellt, wobei der nächste Höchststand von 1,3524 bei 23:00 Uhr (9. Oktober) gebrochen wird. Dieses kleine Beispiel zeigt, wie Kagi-Diagramm gebildet wird. 2. Kagi-Kennzeichnungsprinzip Um den Indikator unabhängig vom aktuellen Zeitrahmen zu machen, wurde beschlossen, die Daten des Zeitrahmens, an dem der Indikator gebildet werden sollte, separat zu kopieren und dann den Indikator unter Verwendung der erhaltenen Daten zu erstellen. Dies ermöglicht es, mehrere Zeitrahmen gleichzeitig auf einem einzigen Diagramm zu untersuchen, das die Grenzen der technischen Analyse auf Kagi-Diagrammen erweitert. Die Anzeige selbst befindet sich in einem separaten Fenster, es ist aber auch möglich, Daten auf dem Hauptdiagramm anzuzeigen. Mit anderen Worten, die Grundbildung (Standard oder modifizierter Look) erfolgt im Indikatorfenster. Das Kennzeichen wird in das Hauptdiagramm kopiert, auch Preis - und Zeitmarken (abhängig von den Einstellungen) werden gezeichnet. Wie bereits erwähnt, zeichnet der Indikator das Diagramm sowohl in der Standardversion als auch in der modifizierten Version. Der Standard wurde oben beschrieben. Nun, betrachten wir die modifizierte Version. Ich weiß nicht, ob es eine neue Idee ist, aber ich habe nicht von dieser Version gehört. Die Idee des zusätzlichen Filters ist, dass nicht nur Umkehrpunkte, sondern jede Bewegung des Diagramms jetzt gefiltert wird. Mit anderen Worten, der Preis sollte sich um einen bestimmten Abstand bewegen, damit das neue Hoch oder Niedrige (nicht zu verwechseln mit Schulterwaist) gebildet werden kann. Im Allgemeinen, wo immer der Preis bewegt, sollte es zuerst eine bestimmte Strecke abdecken. Danach ist es definiert, ob es eine Trendfortsetzung oder eine Umkehrung war. Feige. 2 zeigt, wie das Prinzip funktioniert. Der geänderte Diagrammblick wird in Blau angezeigt, während der Standard ein in Rot ist. Wie wir sehen können, reagiert der modifizierte Blick auf Preisbewegungsänderungen, die langsamer die meisten kleineren Signale filtern. Feige. 2. Geänderte (blaue Linie) und standardmäßige (rote Linie) Versionen der Erstellung von Kagi-Diagramm Neben dem Kagi-Diagramm bietet die Anzeige zusätzliche Elemente sowohl im Anzeigefenster als auch im Hauptdiagramm. Je nach Einstellung können die Markierungen im Anzeigefenster eingestellt werden. Diese Kennzeichen liefern Daten zu Stornierungspreisen. Die gleiche Funktion wird mit Preisniveaus realisiert, die sich (je nach Einstellung) gleichmäßig am Fenster entlang der gesamten Preisspanne verteilen können, die für die Erstellung des Indikators oder bei jeder Chartumkehr verwendet wird. Die Farben können in drei Versionen eingestellt werden: je nach Umkehrtyp (auf - ab), Linientyp (Yin - Yang) oder ohne Farbwechsel. Umkehrungspreise, einschließlich temporäre, werden auf dem Hauptdiagramm zur Verfügung gestellt. Diese Markierungen (abhängig von den Einstellungen) können von einer einzelnen Farbe sein oder die Farbe entsprechend Yin oder Yang Linie Farben ändern. Der gesamte Indikatorcode wird unter Verwendung der Funktionen implementiert, die miteinander über globale Variablen kommunizieren. Der Code kann in drei Hauptfunktionen und elf weitere eingeteilt werden. Die Hauptbelastung von Berechnungen und Pufferfüllungen von graphischen Grundkonstruktionen und zusätzlichen Pufferarrays beruht auf der Funktion der Kagi-Diagrammbildung im Indikatorfenster. Die anderen beiden Funktionen sind verantwortlich für die Bereitstellung der Daten: die erste kopiert die Zeitdaten, während die andere - die Daten über die Preise der einzelnen Balken des ausgewählten Zeitrahmens. Die verbleibenden Hilfsfunktionen sind für die Durchführung aller Konstruktionen, das Löschen der Objekte, das Entladen des Indikators sowie das Löschen aller Indikatorobjekte, die Umkehrparameterberechnung, die Zeichnungsmarkierungen auf dem Hauptdiagramm und das Indikatorfenster, das Erstellen von graphischen Objekten des Trendlinien-Typs, der Zeichnung, verantwortlich Kagi auf dem Hauptdiagramm, sowie die Definition der Ankunft der neuen Bar, um die Indikatorbildung zu starten. 3. Indikatorcode und Algorithmus Nun können wir den Indikatorcode und den Algorithmus seiner Bildung im Detail untersuchen. Der Code ist ziemlich groß und es kann schwierig genug für Anfänger Programmierer zu verstehen. Die Funktionen, die über die globalen Variablen miteinander kommunizieren, machen den Code ziemlich verwirrend. In diesem Teil des Artikels, werde ich erklären, jede Funktion und Teil des Codes getrennt. Zuerst beschreibe ich die Indikatoreinstellungen und dann gibt es Klarstellungen bezüglich der Datenkopierung der Anfangsfunktionen, der Umkehrparameterberechnung, der Hauptfunktion der Kagi-Diagrammbildung und der Berechnung sowie anderer Hilfsfunktionen. 3.1. Indikator-Eingangsparameter Der Code beginnt mit der Deklaration des Indikators in einem separaten Fenster sowie mit 12 Puffern und 8 Indikator-Graphikkonstruktionen. Zunächst können wir definieren, warum 8 grafische Konstruktionen, darunter zwei Histogramme und sechs Zeilen. wurden verwendet. Jedes Histogramm baut eine eigene vertikale Linie auf. Eine der Linien ist für die Yin-Linie verantwortlich, während die andere für die Yang-Linie ist. Der Fall ist etwas komplizierter mit den Linien, da es drei von ihnen für jede Zeile gibt. Dies geschieht aufgrund der Tatsache, dass die Linie gezogen wird, wenn ein anderer Punkt in der Nähe des ersten gezeichnet wird. Mit anderen Worten, wir brauchen nur zwei grafische Konstruktionen des Zeilen-Typs, die gedreht werden sollen, um zwei Linien nebeneinander zu ziehen. Wenn wir jedoch diese Zeilen brauchen, um notwendige Punkte zu überspringen, brauchen wir die dritte Konstruktion, die mit anderen zwei gedreht werden soll. Dies wird in Abbildung 3 erläutert, in der Sie sehen können, was passiert, wenn nur zwei grafische Linienkonstruktionen verwendet werden: Abb. 3. Beispiel für die Verwendung von zwei und drei grafischen Linientypen zur Darstellung von Schulter - und Taillenlinien Daraufhin wird das Einstellungsmenü erstellt. Es gibt fünf Aufzählungen hier (läßt sie in den Eingangsparametern prüfen). Die erste Eingabeparameterperiode ist eine Periode, bei der die Konstruktion ausgeführt wird, danach folgt die Periodenperiodenaufbauaktualisierungsperiode, und der letzte Zeitparameter ist startdata - der Zeitpunkt, ab dem die Konstruktion beginnt. Diesen Parametern folgen Diagrammaufbau und zusätzliche Beschriftungsschilder: kagitype-Diagramm Bauart, definiert durch Benutzer, Standard oder modifizierter Pricetype-Typ des Baupreises: Close, Open, High und Low typedoorstep verwendet Umkehrtyp: Punkt - und Prozentsatz des Türschwellenwerts (Angegeben in Punkten oder prozentualen Wert in Abhängigkeit von dem Parameter oben) coloryin Yin Linie Farbe im Indikatorfenster coloryang Yang Linie Farbe im Indikatorfenster widthyin Yin Linie Breite im Anzeigefenster widthyang Yang Linie Breite im Anzeigefenster levelsonoff, ob Preisniveaus sollte Werden im Indikatorfenster Ebenenstypen von Preisniveaus im Indikatorfenster gezeichnet. Es stehen Ihnen zwei Werte zur Auswahl: Bei jeder Umkehrung oder gleichmäßig über die Preisstufenumber Zahl Anzahl der Preisniveaus im Indikatorfenster levelschangecolor erlaubt das Ändern der Farbe der Preislevellinien die Optionen sind obere und untere Umkehrungen, Yin - und Yang-Linien oder keine Änderungen Levelfirstcolor die erste Farbe eines Preisniveaus levelsecondcolor die zweite Farbe eines Preisniveaus label1 Zeichnung Diagramm Umkehrung Preis Etiketten im Indikatorfenster label1number Anzahl der angezeigten Etiketten im Indikatorfenster label1color Farbe der Preisetiketten im Indikatorfenster label2 Zeichnung Preisetiketten auf der Hauptdiagramm label2color Aufkleberfarbe auf dem Hauptdiagramm timelinedraw Zeichnungsumkehrzeitlinien auf dem Hauptdiagramm timeseparatewindows Zeichnungsfortsetzung der Umkehrzeitlinien vom Hauptdiagramm timelinechangecolor ändern die Farbe der Zeitlinie abhängig von der Umkehrmarke an Yin oder Yang-Linie timefirstcolor das erste Farbe der Zeitlinie auf dem Hauptdiagramm timesecondcolor die zweite Farbe der Zeitlinie auf dem Hauptdiagramm kagimainchart ob Kagi auf dem Hauptdiagramm gezeichnet werden coloryinmain Yin Linie Farbe auf dem Hauptdiagramm coloryangmain Yang Linie Farbe auf dem Hauptdiagramm widthyinmain Yin Linie Breite auf dem Hauptdiagramm widthyangmain Yang Linienbreite auf dem Hauptdiagramm Magicnumb Magie-Nummer für Gebäude Objekte und deren Löschung, sowie in den Indikator Namen verwendet, um mehrere Indikatoren auf einem einzigen Diagramm zu starten. Diesen Parametern folgen wiederum Deklarationen der Indikatorpuffer, Hilfspuffer zur Speicherung von Preis - und Zeitwerten, Hilfsvariablen (Stopdata, Barscopy, Barcopiedtime, Copyhistory, Copytime), Arrays zur Speicherung von Daten über die Yin - oder Yang-Linie Die Chartbewegung, die Zeit und der Preis dieser Änderung, der zentrale Preis (wenn Yin durch Yang an der Bar ersetzt wird, oder umgekehrt). Schließlich wird eine der am häufigsten verwendeten globalen Variablen, die Daten über die Anzahl der Bewegungen der Bewegung enthält, deklariert. 3.2. Indikator Initialisierungsfunktion Die nächste ist die Initialisierungsfunktion. Indikatorpuffer und deren Indexierung (vor allem als Zeitreihe als Kagi-Diagramm ist kürzer als die Hauptlinie, ist es besser, sie rückwärts zu zeichnen) werden dort angegeben. Außerdem werden die Werte, die nicht auf dem Bildschirm angezeigt werden sollen, gesetzt (EMPTYVALUE-1). Nun weisen wir den Anzeigenamen und die Anzeigegenauigkeit zu. Wie bereits erwähnt, wird die magische Zahl dem Namen hinzugefügt. Dies geschieht, um den korrekten Betrieb der Funktion ChartWindowFind () zu gewährleisten. Andernfalls wird das im Indikatorfenster gezeichnete graphische Objekt nur beim ersten Startindikator angezeigt (wenn mehrere Indikatoren eines einzelnen Diagramms verwendet werden). Als Nächstes weisen wir den Konstruktionslinien Namen zu, verbieten die Anzeige der aktuellen Zahlenwerte im Indikatorfenster, setzen die Farbe und die Breite der Yin - und Yang-Linien, stellen die Anzahl der Preisstufen ein, die im Indikatorfenster angezeigt werden. 3.3. Daten kopieren Funktion Nun können wir untersuchen Daten kopieren Funktionen. Es gibt zwei von ihnen hier. Die erste ist für das Kopieren der Preise, während die zweite ist für das Kopieren jeder Bars öffnen Zeit. Beide Funktionen behalten ihre Werte in den zuvor deklarierten Indikatoren Berechnungspuffer. Zunächst betrachten wir die Preise Kopierfunktion. Funktionseingangsparameter: Array zum Speichern von Daten, Datenkopierbeginn und Endzeit (aktuelle Uhrzeit). Der Körper der Funktion enthält die Variablen für die Reaktion auf die Funktion, die Anzahl der Daten (Balken), die in das Zwischenarray kopiert werden, das dynamische Zwischenarray selbst und die Anzahl der Balken, die in das Zwischenarray kopiert werden sollen. Die Anzahl der Balken wird basierend auf der Gesamtzahl der Balken in der gegebenen Zeitperiode und der Anzahl der Balken (globale Variable) berechnet, die beim vorhergehenden Funktionsaufruf kopiert wurden. Wenn es nicht das erste Mal ist, dass die Daten kopiert wurden, sollten die Daten auf dem letzten kopierten Balken aktualisiert werden. Dazu reduzieren wir die Anzahl der kopierten Balken um eins und erhöhen die Anzahl der neu kopierten Balken um eins. Wir ändern auch die Größe des Zwischenarrays, die es für das Kopieren der Balken vorbereitet. Abhängig von den Einstellungen kopieren wir die Preise auf das Zwischenarray. Wenn das Kopieren erfolgreich ist, werden die Daten vom Zwischenarray zum Ende des Pufferarrays (Funktionsantwortfeld) kopiert, weisen der positiven Antwort die Funktion zu und aktualisieren die globale Variable, die die Daten über die Anzahl der kopierten Balken speichert. Diese Art des Kopierens erlaubt es, nur einige letzte Takte zu kopieren, wodurch die Kopierzeit reduziert wird. Die nächste Funktion ist die zum Kopieren der Zeitdaten. Es unterscheidet sich von dem vorherigen darin, dass es sich um einen anderen Variablentyp - datetime handelt (der beim Kopieren in das Array Arrays mit Arrays in ein Doppelpaar umgewandelt wird). Ein anderer Unterschied besteht darin, dass switch () - Anweisung nicht verwendet wird, da keine Notwendigkeit besteht, die kopierten Daten auszuwählen. 3.4. Umkehrparameter-Berechnungsfunktion Da der Umkehrparameter ein Punkt oder ein Prozentsatz Eins sein kann, benötigen wir die Funktion, die den Umkehrparameter abhängig von den Anzeigeeinstellungen berechnet. Die Funktion hat nur einen Parameterpreis zur Berechnung der prozentualen Stornierung. Die Variable für die Antwort wird zuerst durch den doppelten Typ initialisiert, und nach den Berechnungen wird sie indirekt in den int-Typ für die Antwort konvertiert. Dies geschieht, weil Gleitkommazahlen in den Berechnungen verwendet werden, während die Antwort als ganze Zahlen dargestellt werden sollte. Die Selektion wird in der Funktion durch if-else-Bedingungsanweisung implementiert. Der Vergleich erfolgt direkt mit externer Eingangsgröße (Anzeigeparameter). Die Berechnung der Punkte erfolgt mit Hilfe einer einfachen Gleichung. Zuerst wird die Gesamtzahl der Punkte festgelegt, die der Preis überschritten hat. Dann wird der angegebene Prozentsatz auf der Grundlage dieser Zahl berechnet und der zurückgegebenen Variablen zugewiesen. 3.5. Die Hauptfunktion - Zeichnung Kagi-Diagramm Wir haben bereits alle Funktionen untersucht, die für den Betrieb der Hauptfunktion erforderlich sind - Zeichnung Kagi-Diagramm im Anzeigefenster (d. h. das Ausfüllen der Indikatorpuffer). Die Funktionseingabeparameter bestehen aus Datenfeldern. Zwei von ihnen sind die oben beschriebenen Berechnungspuffer (zuvor kopierte Preise und Zeit), der Rest sind die Anordnungen der graphischen Konstruktionspuffer des Anzeigers. Variablen, die zum Speichern der Daten in der Diagrammkonstruktion erforderlich sind, werden innerhalb der Funktion deklariert. Da das Diagramm mit einer Loop-Anweisung konstruiert wird, sollten wir die Daten auf der Bühne haben, auf der der vorherige Pass endete. Dies kann durch sechs Variablen erreicht werden: linemove - wo der Preis bei dem vorherigen Pass verschoben wurde, Linearlinie - Linienkaliber (Linienbreite) - Yin oder Yang, Preis1 und Preis2 - vorheriger und aktueller Preis in Betracht gezogen, Pricedown und Priceup - vorheriger Preis von Eine Schulter und Taille. Wie wir sehen können, wird price1 dem ersten Element des Arrays von kopierten Preisen sofort gleichgesetzt, weil diese Variable vor dem Vergleich vom Beginn der Schleife an Berechnungen beteiligt ist. Da Pufferarrays der graphischen Darstellung des Indikators ASSERIES-Indizierungsflag haben, sollten sie in umgekehrter Reihenfolge gefüllt werden. Um dies zu erreichen, werden Zeitfelder mit der entsprechenden Größe implementiert. Globale Variablen zur Speicherung der Daten auf Zeit, Linientypen, Schulter und Taille sowie Umkehrpreise werden auf die gleiche Weise umgerechnet. Dann sollten alle Arrays mit leeren Werten (-1) gefüllt werden. Dies geschieht mit zwei kleinen Schleifen. Es ist möglich, alles in einer Schleife zu verbinden. Aber mit zwei macht alle Aktionen viel klarer, während die Ausführungszeit nicht viel geändert wird. Mit anderen Worten, grafische Puffer und Berechnungszeitfelder werden separat gefüllt. Nun werden alle Variablen deklariert, konvertiert und gefüllt, so dass die Hauptschleife gestartet werden kann. Es ist ziemlich groß (obwohl die Berechnung schnell genug durchgeführt wird) und beinhaltet das Scannen alle zuvor kopierten Balken. Die Schleife durchläuft alle kopierten Balken und füllt notwendige vorher deklarierte Arrays, um mit ihnen weiter zu arbeiten. Zuerst definieren wir alle Arrays, die in der Schleife verwendet werden: yinint1 - Primärwert des vertikalen Yin-Linienpreises (wenn eine vertikale Yin-Linie gezogen wird und sich das Diagramm nach unten bewegt, ist dies der obere Wert des Preises, wenn sich das Diagramm nach oben bewegt Yinint2 - Sekundärwert des vertikalen Yin-Linienpreises (wenn die Aufwärtslinie gezogen wird, ist dies der obere Wert, wenn die Linie abwärts ist, haben wir den gegenüberliegenden Fall) yangint1 - Primärwert des vertikalen Yang-Kurses yangint2 - Sekundärwert der vertikalen Yang Linie Preis linyin - horizontal Yin Linie Wert (Preis der Umkehrung bei Yin Linie) linyang - horizontal Yang Linie Wert (Preis der Umkehrung an Yang Linie) Zeitwechsel - Zeit der Chartumkehr (Bau einer Schulter oder einer Taille ) Zeitlinie - die Linie während der Umkehrung Yin 0 oder Yang 1 ZeitZentralpreis - der Wert des zentralen Preises, der Preis in dem Moment, wenn Yin Linie wird in Yang oder umgekehrt Zeitwechselpreis - der Wert der Umkehrung (Schulter oder Taille) Preis, die Variable ist eine gemeinsame, die nicht von Yin - oder Yang-Zeilentypen abhängt. Der Wert des aktuellen analysierten Preises aus Preispuffer wird vor jedem Schleifendurchlauf für jeden weiteren Vergleich in if-else-bedingten Anweisungen der Variable price2 zugewiesen. Danach wird das Pufferarray der kopierten Daten Schritt für Schritt analysiert und die oben erwähnten Felder werden gefüllt. Jede if-else-Bedingungsanweisung führt abhängig von den Bedingungen bestimmte Aktionen aus: vorherige Richtung der Diagrammzeilen (oben oder unten) und vorheriges Aussehen der Zeilen (Yin oder Yang). Dann werden die Bewegungsbedingungen (ob der Preis eine bestimmte Anzahl von Punkten bestanden hat) je nach Bauart (Standard oder modifiziert) überprüft. Wenn alles gut ist, werden neue Variablen (Array-Elemente) neu zugewiesen oder definiert. Der Zeilentyp (Yin oder Yang) wird am Anfang definiert. Abhängig von der Bewegung und den vorherigen Aktionen wird die weitere Verteilung durchgeführt. Es gibt zwei mögliche Preisbewegungen: Es gibt auch vier Arten von vorherigen Aktionen in jeder Richtung: Die vorhergehende Zeile war Yin und sie verschoben Die vorhergehende Zeile war Yang und sie verschoben Die vorhergehende Linie war Yin und sie rutschte unten Die vorhergehende Linie war Yang Und es zog nach unten. Somit haben wir acht Fälle außer den ersten beiden Definitionen der Charts-Anfangsbewegung (First Line Aussehen). Danach ist die Hauptschleife beendet. Die Neuzuordnung und das Ausfüllen der Puffer werden durchgeführt, um das Diagramm in einer kleineren Schleife zu erstellen, die aus der Anzahl der Kagi-Diagrammumkehrungen besteht, die zuvor in der Hauptschleife definiert und in eine Variable geschrieben wurden. Wie für die Verteilung der oberen und unteren Preiswerte und vertikale Linien, ist es ganz einfach: eine einfache Umkehr durchgeführt wird. Mit anderen Worten werden die zuvor erhaltenen Primärwerte (Arrays mit Indizes 0,1,2,3.) Den Pufferendwerten zugewiesen (Element mit Index, dh -1, -2, -3 wird als Ende verwendet Wert). Um zu verhindern, dass Umkehr (horizontale) Zeilen zusammenkleben, wird die Drehung mit der Schalteranweisung wie oben erwähnt durchgeführt. Dabei ist die Arbeit der Hauptfunktion des Kagi-Diagrammaufbaus vollständig. 3.6. Funktion für die Erstellung von Trendlinie Grafisches Objekt Nun können Sie die Funktion für die Erstellung Trendlinie grafischen Objekt zu untersuchen. Diese Funktion wird benötigt, um Kagi auf dem Hauptdiagramm zu zeichnen. Die Funktion ist sehr einfach. Es enthält die Eingabeparameter, die für die Erstellung von Trendlinien-Grafikobjekten erforderlich sind: Objektname, erster und zweiter Preis und Zeitpunkte sowie Linienbreite und - farbe. Der Funktionsbaustein enthält die grafische Objekterstellungsfunktion und sechs Funktionen zum Ändern der Eigenschaften der grafischen Objekte. 3.7. Zeichnen von Kagi auf dem Hauptdiagramm Die nächste Funktion, die für das vorhergehende mehrmals gilt, ist die Funktion der Kagi-Konstruktion im Hauptdiagramm. Als Eingangsvariablen werden die globalen Variablen verwendet, die in der zuvor untersuchten Hauptfunktion der Kagi-Diagrammkonstruktion gefüllt sind: das Array der Umkehrpreise (Schultern und Taillen), das Array der Veränderung und die zentralen Preise (der Preis, zu dem die Yin-Linie in Yang oder Umgekehrt), das Umkehrzeit-Array (in Echtzeit, der Z-1-Array-Index wird verwendet, um den Umkehrstart zu markieren), das Array des Typs der Zeile, an dem die Umkehrung auftrat (es ist auch ein Element vorwärts, wie Das Zeitfeld). Der Funktionskörper besteht aus einer Schleife. Die Schleife ist in zwei Teile unterteilt: Zeichnung vertikaler und horizontaler Linien. Die erste ist auch in zwei geteilt: die Vertikalen unter Berücksichtigung der Linienänderung (Änderung des zentralen Preises) und der Abwesenheit von Veränderungen. Beachten Sie die übergebenen Parameter der Funktion Trendlinienobjekt. Das Benennen wird wiederholt durchgeführt. Der Objektname beginnt mit einer magischen Zahl (die zum Löschen von Objekten eines bestimmten Indikators erforderlich ist), dann ist der Typ fest und schließlich der Index zugewiesen. Der Index wird bei jedem Durchlauf der Schleife aktualisiert. 3.8. Implementierung zusätzlicher Labels Wie ich bereits erwähnt habe, implementiert der Indikator zusätzliche Labels. Lets untersuchen die Funktion, die diese Etiketten auf dem Hauptdiagramm. Es gibt hier nur zwei Etikettentypen: Umkehrpreis und Umkehrzeit-Etiketten werden über Preisschild und vertikale Etikette angezeigt. Als Eingabe werden die folgenden Parameter übergeben: Attribut der Umkehrpreis-Etikettenzeichnung und Etikettenfarbe, Attribute der Umkehrzeit-Etikettenzeichnung und der Etiketten-Farbänderung, die erste und die zweite Farbe der Umkehrzeit. Die gesamte Funktion gliedert sich in zwei Teile: Der erste Teil ist verantwortlich für Zeitmarken, der zweite für Preisetiketten. Beide Teile der Funktion bestehen aus den durch die Anzahl der Chargenumkehrungen begrenzten Schleifen (eine Variable). If-else bedingte Anweisung vor der Schleife gesetzt wird. Die Anweisung überprüft die Notwendigkeit ihrer Zeichnung entsprechend den Anzeigeeinstellungen. Die erste Schleife erzeugt Zeitmarken, die Objektnamensdefinition wird am Anfang der Schleife ausgeführt (Prinzip der Namenserzeugung wurde oben beschrieben). Dann wird die Farbe abhängig von der Zeile aus dem global deklarierten Zeilentyparray (wenn der Parameter gesetzt ist) und andere Parameter auf die Zeile angewendet. Die zweite Schleife ist verantwortlich für die Erstellung Umkehrung Preis Etiketten. Zunächst wird der Objektname generiert. Dann wird die Zeitmatrix-Indexauswahl abhängig davon eingestellt, ob Kagi auf dem Hauptdiagramm aufgebaut werden soll oder nicht. Wenn dies nicht geschieht, werden die Etiketten in der Luft liegen und es wird nicht klar genug sein, von welchem ​​Ort die Umkehrung aufgetreten ist. Anschließend wird das Preisetikettobjekt erstellt und konfiguriert. Nun sehen wir, wie wir die Etiketten im Indikatorfenster setzen können. Alle Etiketten im Indikatorfenster sind meistens preiswert, und es gibt nur zwei Arten von ihnen: Umkehrung Preis Etiketten und Preisniveaus. Es gibt zwei Arten der Zeichnung der Preisniveaus: auf der Chartumkehr und bei gleichem Abstand der gesamten Chartpreisspanne. Der erste Typ kann die Farbe der Ebenen auf zwei Arten ändern: je nach Linientyp (Yin oder Yang) und nach Umkehrung (nach oben oder unten). Somit ist die Funktion selbst in zwei Schleifen unterteilt: Die erste ist für die Erstellung von Storno-Preisschildern zuständig, die zweite für die Preisgestaltung. Letztere ist weiter in zwei Arten unterteilt: Etikett bei jeder Umkehrung oder Etiketten in der gesamten Preisspanne auf gleichem Niveau. Diese Funktion unterscheidet sich von der vorherigen darin, dass sie Beschränkungen für die Anzahl der Preisetiketten und - ebenen hat, da sie in großer Zahl das Diagramm überladen, was sein Verständnis kompliziert. Aufgrund dieser Funktion sind beide Schleifen durch die Anzahl der in den Indikatoreinstellungen (Anzahl der Preisetiketten und - stufen) angegebenen Durchgänge begrenzt. Ein solcher Ansatz ist gefährlich, da sich die Anzahl der Umkehrungen viel kleiner als die Anzahl der festgelegten Preisetiketten in den Einstellungen ergeben kann. Aus diesem Grund wird die Umkehrpräsenz während jedes Schleifendurchlaufs überprüft, um ein Preisetikett oder - niveau zu zeichnen. Die einzige Ausnahme ist, Preisniveaus entlang der gesamten Preisspanne auf einer gleichen Distanz zu zeichnen. Die Erzeugung von graphischen Objekten des Typs "Preis" wird in den Koordinaten in umgekehrter Reihenfolge durchgeführt, d. h. die Etiketten werden vom aktuellen Datum in die Vergangenheit versetzt. Das gleiche gilt für die Preisniveaus: die aktuellen Preisniveaus werden zuerst gefolgt von früheren erzeugt. Die Ausnahmen sind Preisniveaus, die nicht von den Planumkehrungen abhängen. Die Farbveränderungen des Preisniveaus werden unter Verwendung von if-else-bedingten Anweisungen entsprechend den Einstellungen durchgeführt. 3.9. Löschen zuvor erstellter grafischer Objekte Wir wissen bereits, dass dieser Indikator reich an grafischen Objekten ist. Es ist Zeit zu denken, wie wir sie schnell und effizient löschen können. Diese Aufgabe wird durch die Funktion zum Löschen der grafischen Objekte ausgeführt. Als Funktionsparameter werden der Anfangsname und die Anzahl der Objekte verwendet. Wie bei der Erstellung sollte der Objektname die magische Zahl und den Namen eines Objekttyps enthalten. Der Funktionsaufruf im Programm ist durch die Anzahl der Objekte begrenzt, die ihre mögliche Existenz überschreiten. Dies wirkt sich jedoch nicht auf die Funktionalität der Indikatoren aus. 3.10. Funktion zum Starten des Diagrammaufbaus Nachdem wir nun alle Funktionen zur Berechnung und Konstruktion des Kagi-Diagramms sowie zum Erstellen und Löschen von Objekten untersucht haben, sollten wir eine weitere kleine Funktion zur Überprüfung der neuen Balken-Ankunft betrachten. Die Funktion ist ganz einfach und hat einen Eingabeparameter - analysierten Zeitraum. Die Funktionen Antwort ist auch sehr einfach. Es hat einen Bool-Typ und enthält die Antwort darauf, ob ein neuer Balken vorhanden ist oder nicht. Die Basis des Funktionskörpers ist die switch-Anweisung, die je nach Periode die Steuerung an ihre verschiedenen Anweisungen übergibt. Im Beispiel deckt die Funktion den gesamten Periodenbereich ab, allerdings kann auch nur eine Periode verwendet werden. Der Funktionsalgorithmus wurde dem IsNewBar-Code entnommen: Die Zeit der letzten Baröffnung wird mit dem zuvor definierten Zeitwert verglichen. Wenn die Werte unterschiedlich sind, gibt es einen neuen Balken. Der neue Wert wird wie vorher definiert definiert und die Funktionsantwort wird als positiv betrachtet. Wenn die letzte Balkenöffnungszeit mit dem vorher bestimmten Zeitwert übereinstimmt, ist der neue Balken noch nicht erschienen, und die Funktionsantwort ist negativ. 3.11. OnCalculate () - und OnChartEvent () - Funktionen Alle oben beschriebenen Funktionen werden in der Funktion mit dem gleichen Namen Func Consolidation konsolidiert. Diese Funktion wird jedes Mal gestartet, wenn eine neue Leiste in der Funktion OnCalculate () angezeigt wird und wenn die R-Taste von der OnChartEvent () - Funktion gedrückt wird. Vor dem Generieren oder Aktualisieren der Tabelle wird in der Konsolidierungsfunktion (Func Consolidation) die Funktion zum Löschen aller grafischen Objekte aufgerufen. Da es eine Menge von Objekten gibt und sie in Hauptdiagramme und Indikator-Fenster Preis Etiketten, vertikale Linien, die Umkehrzeit, sowie Yin und Yang vertikalen und horizontalen Trendlinien unterteilt, ist die allgemeine Anzahl der Funktions-Aufrufe 7. Dann , Werden die Verlaufsdaten nach Preis und Zeit kopiert. Die Hauptfunktion für den Aufbau des Kagi-Charts wird danach gestartet. Danach wird die Funktion zum Platzieren aller Preisschilder auf dem Hauptdiagramm und dem Indikatorfenster aufgerufen. Schließlich wird Kagi auf dem Hauptdiagramm erzeugt und die Funktion zum Nachziehen der Objekte wird gestartet. 3.12. OnDeinit () Funktion Die Löschung aller Objekte erfolgt in der Indizierungsinitialisierungsfunktion. Nun können Sie in die Praxis übergehen. 4. Verwendung von Kagi-Chart in der Praxis Es gibt viele Handelsstrategien auf Kagi-Diagramm basiert. Wir werden einige von ihnen untersuchen. Lets Beginn mit der beliebtesten Strategie: verkaufen, wenn Yang ändert sich zu Yin und kaufen im umgekehrten Fall. Dies ist in Fig. 3 gezeigt. Fig. 4 4. Verkauf, wenn Yang zu Yin wechselt und im umgekehrten Fall kauft Wie in Abb. 4 (EURUSD M30, 5 Punkte), zeigt diese Strategie gute Ergebnisse. The figure displays 8 points for 4 signals, the first one (1) shows that the long position should be opened at 1.3518, which seems to be correct as the price then reaches about 1.3560 comprising 42 points per day. This is a good result. The next point (2) recommends selling at 1.3519. As we can see, the price actually moves down crossing the level of 1.3485 (and covering 34 points) approximately for two hours. Lets move to point (3). The long position is opened at 1.3538 and the price moves up reaching 1.3695. Thus, the profit comprises 157 points already for one day and a half. Of course, these are the highest possible profits but the result is still good enough. The next trading strategy is rolling back from the trend line shown in Fig. 5 (EURUSD M30, 5 points), October 7-18: Fig. 5. Rolling back from the trend line We can move further and trade following the channels. An example of searching for a channel can be examined on Fig. 6 (EURUSD H1, 5 points), roughly the same period: Fig. 6. Trading by channels The less popular strategy based on the fact that after 7-10 successively increasing shoulders or decreasing waists, there will certainly be a reversal (fall ot rise). This is displayed in Figure 7 (GBPUSD H4, 25 points), July 10 - October 18: Fig. 7. 7-10 successively increasing shoulders or decreasing waists As can be seen in the image, seven ascending shoulders are followed by quite a considerable fall roughly equal to the half of the previous rise (about 300 points). Lets examine Trading through a price label strategy to show the necessity of using additional indicator parameters. The idea is to enter the market when the price exceeds (buy) or moves below (sell) the previous price label. The strategy is shown in Fig. 8 (GBPUSD H4, 30 points, modified construction): Fig. 8. Trading through a price label Red arrows on Fig. 8 display when to buy or to sell. The arrows are moving from the previous price label displaying the locations the previous price labels were broken through. Time labels serve mainly as trend direction pointers. Since the color of time labels can be changed relative to the line type, and Yin or Yang line type shows trend direction or reversal, the color may help us define the current market mood. For example, lets take IBM stock chart (H4, 1, standard construction) shown in Fig. 9: Fig. 9. Defining trend direction using time labels The chart shows that blue lines are mainly located on the charts tops, while red ones - at the bottoms. Conclusion The Kagi chart can be successfully used for market trading as a strategy basis or as an auxiliary tool for more precise analysis. In this article, I have examined the code itself and some specificities of constructing the indicator. The main objective has been creation of the multi-functional indicator containing all necessary elements with some extra features that can be disabled. I will be glad to consider new ideas and improvements for the indicator and, perhaps, implement them in the future. Also, please provide me with your feedback. I will be happy to answer your questions concerning the indicator. This article continues the series devoted to developing indicators for constructing the charts from the past. The previous article can be found here. The series is to be continued and I hope to meet you again soon. Thank you for your interest I wish you successful trading, as well as optimized and stable codes.

No comments:

Post a Comment