Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
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:
835
Rating:
(26)
Veröffentlicht:
2016.04.28 10:32
Aktualisiert:
2016.11.22 07:34
\MQL5\Include\ \MQL5\Indicators\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Bei der Verwendung von Text-Grafiken in den Indikatoren ist es oft notwendig, die Möglichkeit zu implementieren, die Schriftart zu ändern.

Die nächstliegendste Lösung in einem solchen Fall wäre die manuelle Eingabe des Schriftnamens in eine Zeile in den Eingabe-Parametern, aber das ist nicht sehr bequem und ist anfällig für Fehler. Effizienter wäre eine Methode, die den Nutzer aus einem enumerations-Drop-Down-Menü die Schriftart auswählen lässt. Vorgestellt wird eine Lösung dieser Aufgabe.

Ein Beispiel mag genügen, die Verwendung der Bibliothek zu zeigen. Angenommen, wir haben einen Indikator (ChartInfo_Old.mq5), der einen Text in eine Ecke des Charts schreibt. Hier sind die Eingabeparameter:

//+----------------------------------------------+
//| Indicator Eingabeparameter                   |
//+----------------------------------------------+
input string Text="Real";                             // Text-Inhalt
input color  TextColor=Red;                           // Text-Farbe
input int    FontSize=24;                             // Font-Größe
input type_font FontType=Font7;                       // Font-Typ
input ENUM_BASE_CORNER  WhatCorner=CORNER_LEFT_LOWER; // Eckennummer
input uint Y_=1;                                      // Vertikale Positionierung

Damit hat das Eingabefenster des Indikators folgendes Aussehen:

ChartInfo_Old 1.00

Um den Nutzer von der Notwendigkeit der manuellen Eingabe des Schriftnamens zu befreien, ergänzen Sie Sie ein wenig Ihren Code:

1. Laden Sie die GetFontName.mqh-Datei mit Hilfe der #include-Direktive:

//+----------------------------------------------+
// Font-Typ enumeration Beschreibung             |
// CFontName Klassen Beschreibung                | 
//+----------------------------------------------+ 
#include <GetFontName.mqh>

2. Ersetzen Sie diese Zeile der FontType-Eingabeparameter:

input string FontType="Courier New"; // Font-Typ

durch die Zeile

input type_font FontType=Font7; // Font-Typ

Somit haben wir jetzt die Art der Variablen Nutzung verändert. Die Art der vorherigen Variablen war eine string-Variable, die auf globaler Ebene deklariert wurde

string sFontType;

Jetzt wurde die Variable FontType durch sFontType ersetzt. Dies geschieht nur an einem Ort:

   SetTLabel(0,"Info_Label",0,WhatCorner,ENUM_ANCHOR_POINT(2*WhatCorner),5,Y_,Text,TextColor,sFontType,FontSize);

Jetzt muss die Variable sFontType noch in OnInit() initialisiert werden. Das geschieht durch ein paar wenige Code-Zeilen:

   CFontName FONT; 
   sFontType=FONT.GetFontName(FontType);

Jetzt kann der überarbeitete Indikator ChartInfo.mq5 kompiliert werden.

Und wir sehen sofort die Änderung in dem Eingabefenster des Indikators:

ChartInfo 1.00

Die Arbeit mit der Wahl der Schriftarten ist erheblich komfortabler geworden.

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

IncBullsBearsOnArray IncBullsBearsOnArray

Die CVHFOnArray Klasse wird zur Berechnung der Bulls Power und Bears Power aus Daten des Indikator-Puffers verwendet. Ein Beispiel für die Nutzung der Klasse ist beigefügt.

ReverseSymbol ReverseSymbol

Der Indikator invertiert (1/X) die Kerzen des Symbols in Echtzeit.

IncPriceChannelOnArray IncPriceChannelOnArray

Die CPriceChannelOnArray Klasse wird zur Berechnung des "price channel" aus Daten des Indikator-Puffers verwendet.

IncVidyaOnArray IncVidyaOnArray

Die CVidyaOnArray Klasse wird zur Berechnung des VIDYA (Variable Index Dynamic Average) aus Daten des Indikator-Puffers verwendet.