und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
Clock - Bibliothek für den MetaTrader 5
- Ansichten:
- 1310
- Rating:
- Veröffentlicht:
- 2018.01.30 11:28
- Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Die Bibliothek (Clock.mqh) erlaubt es, eine Analoguhr als grafische Ressource zu erstellen.
Möglichkeiten
Die Verwendung der Bibliothek ist im folgenden Quellcode zu sehen:
// MQL4&5-code // Ein Beispiel für einen plattformübergreifenden Expert Advisor, der eine Analoguhr im Chart erstellt #property strict #include <fxsaber\Clock.mqh> // https://www.mql5.com/de/code/19388 const string ObjName = __FILE__; // Name des Bitmap-Objekts für die Ausgabe der Uhr const string ResourceName = "::" + ObjName; // Name der Ressource, in welcher die Uhr erstellt wird // Die Uhr anhand der Einstellungen der entsprechenden INI-Datei erstellen CLOCK Clock("Clocks\\Clock01\\Clock01.INI", ResourceName); void OnINIt() { // Ein grafisches Objekt für die Ausgabe der Uhr erstellen ObjectCreate(0, ObjName, OBJ_BITMAP_LABEL, 0, 0, 0); // Den Namen der Ressource angeben, in welcher die Uhr abgelegt ist ObjectSetString(0, ObjName, OBJPROP_BMPFILE, 0, ResourceName); // Die Möglichkeit hinzufügen, ein Objekt auszuwählen, indem man es mit der Maus zieht ObjectSetInteger(0, ObjName, OBJPROP_SELECTABLE, true); // Sekundentimer aktivieren, um die Uhr zu aktualisieren EventSetTimer(1); } void OnTimer() { // Die Uhr auf aktuelle Zeit setzen Clock.SetTime(TimeLocal()); // Den Chart neu zeichnen, damit die Änderungen sofort sichtbar sind ChartRedraw(); }
Nach dem Starten erscheint die folgende Uhr im Chart:
Indikator
Der plattformübergreifende Indikator Clock.mq5 im Anhang erlaubt es, die Uhr "out-of-the-box" zu verwenden.
In diesem Indikator ist ein interaktiver Wechsel von "Themen" implementiert: die Varianten der Uhr werden mithilfe der Tasten NACH OBEN/NACH UNTEN (entpacken Sie die ZIP-Datei) umgeschaltet.
Besonderheiten
- Rasteruhr (keine Vektoruhr);
- Die Bewegung der Uhrzeiger ohne Glättung;
- Die Bibliothek funktioniert in MetaTrader 4/5.
Wie die Uhr gebildet wird
Das Original der Uhr aus dem Beispiel wurde im Internet durch eine schnelle Suche nach eine Flash-Uhr gefunden (swf-Dateien sind in der ZIP-Datei). Es ist praktisch, dass es grafische Darstellungen von Zifferblättern, Uhrzeiger usw. in den Dateien gibt. Man kann natürlich andere Quellen verwenden. Z.B. fertige Vektordateien wieder aus dem Internet. Oder selbst zeichnen.
INI-Dateien (s. Beispiele) setzen die Einstellungen für die Erstellung der Uhr schichtweise. Die Einstellungen können in jedem Texteditor bearbeitet werden und sehen wie folgt aus:
ImageName = ClockFace.bmp BoundX = 0 // die X-Koordinate des Nullpunktes innerhalb des bmp-Bildes (Schicht) BoundY = 0 // die Y-Koordinate des Nullpunktes innerhalb des bmp-Bildes (Schicht) X = 0 // die X-Koordinate des Nullpunktes innerhalb einer sich (aus Schichten) bildenden Abbildung Y = 0 // die Y-Koordinate des Nullpunktes innerhalb einer sich (aus Schichten) bildenden Abbildung Rotate = 0 // Die Geschwindigkeit des Drehens A = 100% // Welcher Teil des Alpha-Kanals verwendet wird R = 100% // Welcher Teil des Red-Kanals verwendet wird G = 100% // Welcher Teil des Green-Kanals verwendet wird B = 100% // Welcher Teil des Blue-Kanals verwendet wird
Je niedriger die Beschreibung der Schicht in der Liste ist, desto höher befindet sie sich als die vorher beschriebene Schicht. Es gibt keine Einschränkung für die Anzahl der Schichten.
Wegen dieser Methode der Erstellung von Abbildungen kann die Bibliothek nicht nur für die Erstellung einer Uhr, sondern auch anderer statischer/dynamischer Objekte verwendet werden. Für die Dynamik der Uhr reicht die Möglichkeit, die Drehung zu setzen. Auch andere Arten von Bewegungen können dem Code mit wenigen Strings hinzugefügt werden (Verschiebung, Scalieren usw.). Der Quellcode im Anhang stellt ein einfaches Beispiel für die Umsetzung dieses Ansatzes bei der Beschreibung von Abbildungen dar.
Die Schicht-für-Schicht-Arbeit erlaubt es, die Schatten der Uhrzeiger und die Beleuchtung zu implementieren (wie in Flash-Uhren).
Wenn man das Zifferblatt transparent machen will, muss man den Alpha-Kanal kleiner als 100% in der entsprechenden INI-Datei setzen. Man bekommt das folgende Ergebnis:
Zum Moment der Veröffentlichung gab es kaum Analoguhren im Market. In der CodeBase habe ich diese Variante gefunden.
Die neue Eigenschaft dieser Bibliothek ist LAYER::Rotate, die für die Bewegung verantwortlich ist. Vielleicht kann diese Funktion jemanden zur Entwicklung anderer Lösungen basierend auf dynamischen grafischen Ressourcen, ähnlich der Uhr, anregen.
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/19388
Ein Expert Advisor basierend auf der Strategie von Bill Williams.
KI_signals_v2Ein Trendindikator, der Handelssignale vom XMACD Histogramm erhält.
Der Expert Advisor verfolgt Positionen aller Symbole nach allen Magic Numbers. Wenn eine Position bereits "Waiting for seconds" offen ist und ihr Profit "Take Profit" Punkte erreicht hat, schließt der Expert Advisor die Position. Wenn der Profit nicht "Take Profit" Punkte erreicht hat, verschiebt der Expert Advisor den Take Profit Level.
DtmEin Oszillator im DRAW_FILLING Stil unter Verwendung digitaler Filter.