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
Bibliotheken

Function ObjectGetValue_ByCurrent .....Delta_ByCurrent .....Delta_ByTimeShift .....Delta_PerBar - Bibliothek für den MetaTrader 4

Ansichten:
731
Rating:
(7)
Veröffentlicht:
2016.03.24 14:37
Aktualisiert:
2016.11.22 07:34
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Die hier angebotene Funktion gibt linear zur Zeit den Preis zurück, den ein grafisches Objekt, welches sich in dem Chart Fenster befindet, besitzt.

Diese Funktion befindet sich in dem Hauptteil eines Test-Skriptes, das visuell demonstriert, wie eine Bar gebildet wird.

Konzept.

Die Standard Funktion ObjectGetValueByShift() gibt den Wert der entsprechenden Eröffnungszeit zurück, d.h., in der Schrittweite des aktuellen Timeframes.#

Dieses geschieht durch die Übergabe der x-Koordinate als (int) der Bar-Nummer.

Wenn die Funktion ObjectGetValueByShift() während der Zeit aufgerufen wird, wo die Bar gebildet wird, erhalten wir die gleichen Werte.

Die Standard Funktion ObjectGetValueByShift() berechnet keine neuen y-Werte während der gesamten Zeit in der die Bar gebildet wird.

Wenn ATSes als Antwort auf grafischen Abhängigkeiten gebildet werden, z.B. TrendLine, kann dieses eine Fehlerquelle von einigen 10 Punkten bedeuten.

Aus diesem Grund brauchen wir eine Funktion, die den wirklichen Wert pro Tick zurückgibt..


ObjectGetDelta_PerBar(string "ObjectName")

ObjectGetDelta_ByCurrent (string "ObjectName")   

ObjectGetValue_ByCurrent(string "ObjectName", int BarNumber)   

ObjectGetDelta_ByTimeShift(string "ObjectName", double TimeShift   )

Function ObjectGetDelta_PerBar(string "ObjectName") Ermittelt die Schräge eines grafischen Objektes von einer Bar zurück, d.h., es gibt delta = one-bar increment zurück. Berechnugsmerkmale. Standard function iBarShift() Gibt 0 zurück für alle Fälle wo die Zeit rechts der Zero-Bar gesetzt wird. Aber es könnte ein grafisches Objekt rechts neben der Zero bar existieren. Aus diesem Grunde wird die Länge des grafischen Objektes in Bars als Differenz zwischen den Zeitkoordinaten berechnet und das Ergebnis wird durch die Timeframe dividiert. Dieses ermöglicht es uns mit Objekten zu arbeiten, die außerhalb des Bereichs der Zero-Bar Liegen.

Function ObjectGetDelta_ByCurrent (string "ObjectName") Berechnet den aktuellen Wert innerhalb einer Bar, indem die Zeit seit der Eröffnung der Bar gemessen wird.

Function ObjectGetValue_ByCurrent(string "ObjectName", int BarNumber ) Summiert die Werte der linearen Erhöhung ObjectGetDelta_ByCurrent () und den Wert der voreingestellten Bar-Nummer, falls dieser Wert nicht 0 ist.

Dieses ist ein wirklicher Wert für die Zero-Bar. Aber bei jeder anderen Bar sind dieses die Werte, die um die Zeit, die seit der Erzeugung der Zero-Bar verstrichen ist, verschoben sind. D.h.. wenn Sie diese Funktion mit einer Bar-Nummer aufrufen, die nicht gleich Null ist, dann zeigt sich eine leichte Verschiebung, die proportional zur Verstrichenen Zeit seit der Formung der Zero-Bar ist. Unserer Meinung nach ist diese Funktion praktisch im Interesse der ATS.

Außerhalb der Bandbreite des grafischen Objektes erhalten Sie einen Preis von 0. In diesem Fall ergibt die Funktion zero. Als Programmierer müssen Sie den zurückgegebenen Wert auf Null überprüfen.

ObjectGetDelta_ByTimeShift(string "ObjectName", double TimeShift )

Um einen ATS zu erzeugen, ist es notwendig eine Funktion zu haben, die Ihnen die Schrittweite der y-Koordinate ermittelt. Uüber eine vorgegebene Zeit, in der Vergangenheit oder der Zukunft.

Dieses Script, bei dem Test auf einem Demo/Real-M1-Chart , demonstriert:

1. Ungleichmäßig eingehende Tics;

2. Die Verzögerung bei dem Event für das Zeichnen/Öffnen einer Bar aufgrund von fehlenden Ticks;

3. Die temporär fehlenden Bars und die nachträglich zugewiesenen Öffnungszeiten dieser Bars.



Zum Beispiel:

Time[0]=1208396460 line[0]=162.5545 Aktueller Wert in der bar 0=162.5300 line (- 1)=162.5273 delta by (1) bar=-0.0273 delta by (2) bars=-0.0545

Bar time percentage=72% Korrektur für die Kurslinie=-0.0195

Time[0]=1208396400 line[0]=162.5818 Aktueller Wert in der bar 0=162.5400 line (- 1)=162.5545 delta by (1) bar=-0.0273 delta by (2) bars=-0.0545

Bar time percentage=152% >Korrektur für die Kurslinie=-0.0414

Time[0]=1208396400 line[0]=162.5818 Aktueller Wert in der bar 0=162.5500 line (- 1)=162.5545 delta by (1) bar=-0.0273 delta by (2) bars=-0.0545

Bar time percentage=127% Korrektur für die Kurslinie=-0.0345


Empfehlungen:

Erklärungen: Schauen Sie in den Ergebnissen "Expert Advisors" weiter unten, neben "Journal".

Wenn diese Skript vom Chart entfernt wird kann es zu einer Verzögerung durch den MT4 kommen, wenn dieser versucht das Skript zu beenden.



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

Universal Investor Universal Investor

Ein universeller Indikator für das Langzeit-Portfolio-Trading.

et4 MTC v1 et4 MTC v1

Eine universelle Vorlage für die Entwicklung von MTS.

MTF_WildersDMI_v1m MTF_WildersDMI_v1m

Indikator MTF_WildersDMI_v1m. Eine weitere Version von dem Indikator WildersDMI_v1. Arbeitet mit dem Indikator ADX_WildersDMI_v1m.

MTF_OsMA_Lc MTF_OsMA_Lc

Indikator MTF_OsMA_Lc. Kopiert Indikator OsMACD_M (it OsMA_Lc). Jetzt nur noch OsMA_Lc verursacht durch iCustom.