![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Sie können das verstehen.
Thema 14.3: Anzeige gefährlicher Werte durch Blinken von Teilen von Elementen (Rahmen, Sockel, Text, Schieberegler und Schiebetafeln).
Das Blinken von Elementen ist eine hervorragende Ergänzung zur Farbanzeige, die den Übergang von Parametern in den Bereich der gefährlichen Werte signalisiert. Die Umsetzung der neuen Lösung ähnelt der bisherigen, aber wenn die Farbanzeige nach dem Prinzip funktioniert, dass die Farbe umso heller ist, je näher der Wert am kritischen Wert liegt, erhöht das Blinken nur die Häufigkeit des Wechsels der Ausgangsfarbe mit der für das Blinken eingestellten Farbe. Der Benutzer kann die Blinkverzögerung programmatisch einstellen, indem er sie schrittweise auf 25 ms verringert oder auf 2,5 Sekunden erhöht. In diesem Fall können beide Mechanismen gleichzeitig betrieben werden. Die Farbe wechselt von Hellgrün zu Hellrot und Burgunderrot, und das Blinken wird schneller. Der eine Mechanismus stört den zweiten nicht. Als nächstes werden wir praktische Beispiele aufschlüsseln.
*Wichtig: Das Blinken wird unabhängig von den Funktionen der Farbanzeige aktiviert. Die beiden Mechanismen sind technisch nicht miteinander verbunden und können parallel oder getrennt funktionieren.
Um das Blinken zu implementieren, wurden den interaktiven Elementen neue Eigenschaften hinzugefügt:
Neue Eigenschaften hinzugefügt, um Geschwindigkeit und Stopp des Blinkens zu kontrollieren:
Fassen wir das oben Gesagte zusammen:
Morgen werden wir zu praktischen Beispielen übergehen.
Heute nur eine kleine Demo, um zu verstehen, worüber wir sprechen.
Leider kommt es bei der Aufnahme zu Verzögerungen. Der Prozessor wird geladen. Aber die Demo zeigt, dass die Elemente asynchron und mit unterschiedlicher Geschwindigkeit blinken. Verschiedene Teile der Elemente blinken auch. All dies wird programmatisch eingestellt. Und die Registerkarte auf der Taskleiste fand automatisch das am schnellsten blinkende Element und wurde blau. Als das Element dann weniger oft zu blinken begann, fand es das andere, am schnellsten blinkende Element und wurde rot.
Wir werden dies morgen genauer untersuchen.
P.S. Wir werden auch Optionen für die Verwendung dieser sehr nützlichen Funktionen besprechen.
Anknüpfend an das gestrige Thema...
Heute werden wir das Thema Blinken von Elementen konzeptionell zusammenfassen und abschließen.
Gestern habe ich das Blinken nur im Zusammenhang mit der Signalisierung gefährlicher Werte betrachtet, aber die Anwendung kann viel breiter sein. Hier ist ein Beispiel:
Stellen wir uns einen Multiwährungs-Expert Advisor vor, der die Situation auf mehreren Marktplätzen analysiert. Nehmen wir an, er wählt die optimalen Einstiegs- und Ausstiegspunkte nach einer Reihe komplexer Kriterien aus. Der Expert Advisor arbeitet im halbautomatischen Modus und der Händler kann oder will nicht die gesamte Logik der Handelsstrategie programmieren. Sein Roboter überwacht die Märkte, sammelt Daten und informiert über wichtige Punkte. Die Arbeit des Experten beschränkt sich auf die Analyse und die Darstellung der Ergebnisse in Tabellen und Diagrammen. Die endgültige Entscheidung über die Transaktionen wird von einem Menschen getroffen.
Bei dieser Variante besteht die Handelstätigkeit darin, Datenströme in Echtzeit zu beobachten und die laufenden Wertreihen in benutzerdefinierte Parameter zu packen. Letztere helfen, das Situationsbewusstsein zu steigern.
Ein Live-Engagement erfordert jedoch zeitnahe Entscheidungen. Das Problem entsteht, wenn die Analyseergebnisse in verschiedenen Fenstern durch mehrere grafische Ansichten angezeigt werden. Die Menge der zu beachtenden Informationen wächst und der Fokus der Aufmerksamkeit teilt sich. Infolgedessen vernebelt sich die Marktperspektive im Kopf des Händlers und die Effizienz seiner Arbeit nimmt ab. Müdigkeit stellt sich ein.
In diesem Fall sind blinkende Elemente eine gute Hilfe:
Kommen wir nun zu einer praktischen Aufschlüsselung der neuen Funktionen:
//----------------------------------------------------------------------------------------------------------
1. Reihenfolge der vorbereitenden Aktionen:
Suchen wir nun den Fall der Schaltfläche "Start" in der API-Datei und schreiben wir die Aufrufe der Funktionen Blink_start() und Blink_stop() beim Drücken und beim Drücken der Schaltfläche:
Fahren wir damit fort, die Funktionen mit Inhalt zu füllen:
1. Wir brauchen den Rahmen des "Start"-Buttons, um zu blinken. Schreiben wir einen Aufruf für das Blinken des Rahmens, wie im folgenden Code gezeigt. Der Bezeichner der Blink-Eigenschaft des Rahmens der Schaltfläche ist p1_BLINK_frame. Geben Sie die Farbe des Blinkens und das Objekt des Blinkens an.
2. implementieren wir nun die Deaktivierung des Blinkens, wenn die Schaltfläche losgelassen wird. Der Bezeichner p1_BLINK_STOP ist für das Abschalten des Blinkens zuständig . Außer ihm brauchen Sie nichts in Klammern zu setzen.
Testen wir das Ergebnis:
3. Schalten wir das Blinken des Schaltflächentextes anstelle des Rahmens ein. Der Bezeichner der Eigenschaft pn_BLINK_text ist für das Blinken des Textes verantwortlich:
Ergebnis: Der Text der Schaltfläche blinkt blau und hört auf zu blinken, wenn die Schaltfläche gedrückt wird.
4. Schalten wir nun das Blinken des Buttonsockels ein. Der Bezeichner der Eigenschaft pn_BLINK_base ist für die Basis zuständig:
Ergebnis: Die Basis der Taste blinkt rot und hört auf zu blinken, wenn sie gedrückt wird.
Kombinieren wir nun das Blinken des Rahmens der Schaltfläche und ihres Textes:
Ergebnis: DerRahmen der Schaltfläche und der Text der Schaltfläche blinken synchron in verschiedenen Farben, wie vorgesehen.
5. Verbinden wir nun andere Elemente in diesem Fenster mit dem Blinken:
Schreiben wir auch die Deaktivierung des Blinkens in die Funktion Blink_stop( ) :
Ergebnis: Die neuen Elemente sind in Blink_start() und Blink_stop() enthalten und blinken wie vorgesehen.
6. Lassen wir den Fensterrahmen blinken, wenn die Schaltfläche angeklickt wird. (Schalten wir das Blinken der nachlaufenden Elemente vorübergehend aus.)
Ergebnis: Der Fensterrahmen blinkt, wie er soll.
*Wichtig: alle betrachteten Elemente und der Fensterrahmen blinken mit der Standardgeschwindigkeit.
Weiter werden wir die Geschwindigkeit des Blinkens der Elemente mit dem Schieberegler und dem Feld mit den Schaltflächen regulieren.
7. Binden wir die Blinkgeschwindigkeit an den Wert im Feld mit den Schaltflächen und dem Schieberegler. Alle Elemente und der Fensterrahmen werden gleichzeitig blinken, und die Blinkgeschwindigkeit wird manuell durch diese Elemente eingestellt.
Ich möchte Sie daran erinnern, dass die Blinkgeschwindigkeit von der Verzögerung pn_BLINK_DELAY abhängt .
Um das Problem zu lösen, gehen wir wie folgt vor:
W ir haben das Blinken des Fensterrahmens innerhalb der Funktion Blink_start() hinzugefügt : .
Wir haben das Deaktivieren des Blinkens des Fensterrahmens in der Funktion Blink_stop() hinzugefügt:
Schreiben der Funktion Blink_delay():
Rufen Sie die Funktion Blink_delay() für das Ereignis der Schieberegler- und Eingabefeldelemente auf und übergeben Sie ihr den aktuellen Wert der Elemente:
*Wichtiger Hinweis: Es hat sich herausgestellt, dass es nicht möglich ist, die Blinkgeschwindigkeit der Checkbox- und Dropdown-Listenelemente zu ändern. Diese Geschwindigkeit ist immer gleich 20 (eine halbe Sekunde). Dies wurde absichtlich so gemacht, aber ich werde es wahrscheinlich in Zukunft ändern. Die anderen Elemente können die Blinkgeschwindigkeit ändern.
Schreiben wir einen Aufruf der Funktion Blink_delay() aus dem Ereignis des Elements "Spin_the_value" (das Feld mit den Schaltflächen). Das Feld ist mit dem Schieberegler verbunden, so dass es nicht notwendig ist, den Aufruf in das Schiebereglergehäuse zu setzen. Die Verbindung wird funktionieren und der Schieberegler ohne direkten Aufruf wird die Blinkgeschwindigkeit durch das Feld mit den Schaltflächen ändern:
Ergebnis: Das Feld mit den Schaltflächen und der Schieberegler ändern die Blinkgeschwindigkeit der Elemente im Fenster.
Ergebnisse:
Ich halte dieses Thema für erschöpft.
Der nächste Punkt auf der Liste - die Annullierung der eingegebenen Werte durch Drücken der Schaltfläche "Abbrechen".