Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
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:
17
Rating:
(6)
Veröffentlicht:
\MQL5\Include\MQL5Book\
MapArray.mqh (2.74 KB) ansehen
AutoPtr.mqh (1.86 KB) ansehen
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Haben Sie schon einmal einige grafische Objekte zwischen geöffneten Diagrammen kopieren und einfügen müssen? Ich denke, das haben Sie. Überraschenderweise bietet MetaTrader keine "Kopieren & Einfügen"-Funktion für Objekte. Das Einzige, womit Sie einen mehr oder weniger ähnlichen Effekt erzielen können, sind Vorlagen (tpl-Dateien). Aber die Vorlage speichert den kompletten Chart-Status, einschließlich Indikatoren, Einstellungen und vielem anderen, das für die erforderliche Replikationsprozedur irrelevant und unnötig sein kann.

Aus diesem Grund habe ich diesen Indikator ChartObjectsCopyPaste.mq5 entwickelt. Er kopiert ausgewählte Objekte in die Zwischenablage, von wo aus sie in andere Charts eingefügt werden können. Keine Bedingungen.

Der Indikator basiert auf einem anderen Indikator, der im Algotrading-Buch veröffentlicht wurde - ObjectGroupEdit.mq5.

Bitte folgen Sie dem Link, um mehr über die zugrunde liegenden Klassen(ObjectMonitor, MapArray und andere) zu erfahren, die hinter den Kulissen arbeiten.

Dieser Indikator hat keine Puffer. Er sollte mindestens an 2 Charts angehängt werden: den Quell-Chart, aus dem Sie Objekte kopieren möchten, und den Ziel-Chart, in den Sie sie einfügen möchten.

Während er auf einem Chart läuft, verfolgt der Indikator die vorhandenen grafischen Objekte und macht sich Notizen darüber, welche Objekte ausgewählt sind.

Wie üblich arbeiten die Befehle "Kopieren und Einfügen" paarweise:

  1. Drücken Sie die Tastenkombination Strg+Q, um alle ausgewählten Objekte als Text in die Windows-Zwischenablage zu kopieren (Sie können den Text in einem beliebigen Texteditor speichern und anzeigen, ein Beispiel finden Sie unten).
  2. Drücken Sie Strg+J auf einem Zieldiagramm, um alle Objekte aus der Zwischenablage einzufügen.

Warum Strg+Q/Strg+J? Dies sind nur 2 freie Tastenkombinationen, die freiwillig aus sehr wenigen ausgewählt wurden. Das liegt daran, dass MetaTrader viele Hotkeys abfängt und nicht an MQL-Programme weitergibt. Dies gilt insbesondere für die Standardtasten Strg+C/Strg+V/Strg+Einfg/Shift+Einfg, die in diesem Zusammenhang nicht funktionieren.

Da der Quellcode zur Verfügung steht, können Sie die Hotkeys auf andere Kombinationen ändern.

Da der Indikator System-DLLs für den Zugriff auf die Windows-Zwischenablage verwendet, sollten Sie DLL-Importe im Eigenschaften-Dialog auf der Registerkarte Abhängigkeiten zulassen.

Da die Codebase keine DLL-Importe zulässt, ist der Code, der sich auf die Zwischenablage bezieht, in die bedingte Präprozessor-Direktive #ifdef DLL_LINK verpackt, so dass Sie bitte die Zeile

#define DLL_LINK

vor der Kompilierung. Andernfalls werden Sie sehen, wie die Zwischenablage-Funktionsstubs Ihnen als Reaktion auf das Drücken von Hotkeys Warnungen anzeigen, ohne dass tatsächliche Aktionen ausgeführt werden!

Eingaben sind:
  • MakeAllSelectable - Flag, um alle Objekte auswählbar zu machen (was normalerweise für die programmatisch erstellten Objekte false ist);
  • LogDetails - Flagge zur Ausgabe aller Eigenschaften der übertragenen Objekte in das Protokoll;
Der Indikator prüft nicht, ob die eingefügten Objekte mit dem tatsächlichen Zielchart übereinstimmen, wie z.B. Symbol, Preisbereich, Anzahl der Unterfenster, etc. - Sie sollten dies selbst tun.

Hier ist ein Beispiel für einen Text in der Zwischenablage mit 2 Objekten:

OBJ_VLINE       H1 Vertical Line 5578   0       0
enum ENUM_OBJECT_PROPERTY_INTEGER
0       OBJPROP_COLOR   55295
1       OBJPROP_STYLE   2
2       OBJPROP_WIDTH   1
3       OBJPROP_BACK    0
4       OBJPROP_SELECTED        1
7       OBJPROP_TYPE    0
8       OBJPROP_TIME    1726739940
10      OBJPROP_SELECTABLE      1
11      OBJPROP_CREATETIME      1726847009
12      OBJPROP_TIMEFRAMES      2097151
200     OBJPROP_LEVELS  0
207     OBJPROP_ZORDER  0
208     OBJPROP_HIDDEN  0
1032    OBJPROP_RAY     1
enum ENUM_OBJECT_PROPERTY_DOUBLE
9       OBJPROP_PRICE   1.11449
enum ENUM_OBJECT_PROPERTY_STRING
5       OBJPROP_NAME    H1 Vertical Line 5578
6       OBJPROP_TEXT    
206     OBJPROP_TOOLTIP 
OBJ_CHANNEL     H1 Equidistant Channel 40885    5       1
enum ENUM_OBJECT_PROPERTY_INTEGER
0       OBJPROP_COLOR   255
1       OBJPROP_STYLE   0
2       OBJPROP_WIDTH   1
3       OBJPROP_BACK    0
4       OBJPROP_SELECTED        1
7       OBJPROP_TYPE    5
8       OBJPROP_TIME    1726758000
8       OBJPROP_TIME.1  1726797600
8       OBJPROP_TIME.2  1726758000
10      OBJPROP_SELECTABLE      1
11      OBJPROP_CREATETIME      1726847883
12      OBJPROP_TIMEFRAMES      2097151
200     OBJPROP_LEVELS  0
207     OBJPROP_ZORDER  0
208     OBJPROP_HIDDEN  0
1003    OBJPROP_RAY_LEFT        0
1004    OBJPROP_RAY_RIGHT       0
1031    OBJPROP_FILL    0
enum ENUM_OBJECT_PROPERTY_DOUBLE
9       OBJPROP_PRICE   -28.113879003558715
9       OBJPROP_PRICE.1 -21.708185053380777
9       OBJPROP_PRICE.2 -48.04270462633452
enum ENUM_OBJECT_PROPERTY_STRING
5       OBJPROP_NAME    H1 Equidistant Channel 40885
6       OBJPROP_TEXT    
206     OBJPROP_TOOLTIP 

Und hier sind diese Objekte auf dem Chart eingefügt:

2 grafische Objekte über die Zwischenablage in das Diagramm eingefügt








Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/52263

ZIGZAG CALIBRATION TOOLS ZIGZAG CALIBRATION TOOLS

Ermöglicht Ihnen, bullische und bearishe Perioden, die durch den Zickzack-Indikator bestätigt werden, mithilfe von Linien leicht zu visualisieren. Sie können die Anzeige des Zickzacks steuern, indem Sie wählen, ob er vom Anfang des Charts oder von einer bestimmten Anzahl von Balken aus starten soll, sowie die Anzeige von Etiketten, die den Preis der Spitze oder des Trogs, die Richtung der vergangenen Periode und ihre Amplitude in Pips anzeigen. Natürlich funktioniert dies sowohl auf dem Hauptfenster als auch auf Unterfenstern. WARNING!!! Dies ist eine wertvolle Hilfe zum Verständnis und zur Kalibrierung von Indikatoren und zur Entwicklung von Strategien, aber es ist nicht für den direkten Gebrauch bestimmt. Übersetzt mit DeepL.com (kostenlose Version)

Code To Check And Delete Chart Objects For MT5 Code To Check And Delete Chart Objects For MT5

- Das Skript durchsucht das aktuelle Diagramm nach allen verfügbaren Diagrammobjekten, - zählt und löscht sie entsprechend - und protokolliert die Namen der Objekte im Diagramm entsprechend.

Accumulation/Distribution Accumulation/Distribution

Der Accumulation/Distribution Indikator wird aus Änderung von Preis und Volumen bestimmt.

Accelerator Oszillator (AC) Accelerator Oszillator (AC)

Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.