MetaTrader 5 Hilfe

Benutzerdefinierte Finanzinstrumente

Benutzerdefinierte Finanzinstrumente

Die Handelsplattform erlaubt es, benutzerdefinierte Finanzinstrumente zu erstellen. Man kann sich ihre Charts anschauen und die technische Analyse durchführen sowie diese bei der Prüfung von Handelsrobotern und Indikatoren im Strategietester verwenden.

Wenn Sie Ihre Strategie auf einem Symbol testet wollen, das Ihr Broker nicht anbietet, oder er stellt zu diesem Symbol eine nicht tiefe oder eine qualitativ mangelhafte Preishistorie bereit, erstellen Sie ein Symbol und laden Sie Ihre eigene Daten ins Symbol hoch.

Wie man ein benutzerdefiniertes Symbol erstellt und konfiguriert

Öffnen Sie das Fenster der Verwaltung von Symbolen über das Kontextmenü "Marktübersicht" und klicken Sie auf "Symbol erstellen":

Erstellung eines benutzerdefinierten Finanzinstruments

Es können alle Parameter aus der Spezifikation von Handelssymbolen sowie eine Reihe zusätzlicher Parameter konfiguriert werden:

  • Basis — der Name des Basis-Vermögenswertes für ein benutzerdefiniertes Symbol. Zum Beispiel dient für Futures auf Gold Gold als Basis.
  • Webseite — die Adresse einer Webseite mit Informationen über das Symbol. Diese Adresse wird als Link bei Ansicht der Eigenschaften des Symbols im Terminal angezeigt.
  • Chart-Modus — der Preis für die Erstellung von Charts des Symbols: Bid oder Last.
  • Hintergrund — die Farbe des Hintergrunds des Symbols in der Marktübersicht.
  • Hedged Margin nach größerer Seite berechnen — dieser Modus wird nur auf Hedging-Konten verwendet, wo es entgegengesetzte Positionen pro Symbol geben kann. Die Margin kann nach kleinerer Seite (alle Positionen und Sell Pending Orders) und nach größerer Seite (alle Positionen und Buy Pending Orders) berechnet werden. Als Endwert der Margin wird der größere der zwei Werte verwendet.
  • Time limit verwenden — wenn man dieses Parameter auf "Ja" setzt, kann man den ersten und den letzten Tag der Handelsperiode für ein Symbol angeben.

Neben den angegebenen Parametern können Sie Handelssitzungen und Notierungssitzungen einstellen. Die Sitzungen werden für jeden Tag einzeln eingestellt. Doppelklicken Sie auf einen Tag, um ihn zu bearbeiten.

Handelssitzungen und Notierungssitzungen eines benutzerdefinierten Symbols

Setzen Sie die Sitzungen mithilfe von Slider. Expert Advisors können außerhalb von Handelssitzungen im Strategietester nicht handeln.

Standardmäßig sind Handelssitzungen nicht angegeben, sie fallen mit Notierungssitzungen zusammen. Wenn die Zeit von Notierungssitzungen und Handelssitzungen getrennt eingestellt werden muss, muss man die Option "Separate Handelssitzungen verwenden" aktivieren. Alle Handelssitzungen müssen innerhalb von Notierungssitzungen sein.

  • Sie können ganz schnell ein eigenes Symbol konfigurieren — kopieren Sie Parameter eines ähnlichen Symbols und modifizieren Sie sie. Dafür wählen Sie ein vorhandenes Symbol im Feld "Kopieren aus" aus.
  • Der Name des benutzerdefinierten Symbols darf nicht mit den Namen der vom Broker bereitgestellten Symbolen zusammenfallen. Wenn Sie sich mit dem Server verbinden, auf welchem ein Symbol vorhanden ist, dessen Name mit dem benutzerdefinierten Symbol zusammenfällt, wird das benutzerdefinierte Symbol gelöscht.
  • Der Name und die Beschreibung des Symbols dürfen nur lateinische Buchstaben ohne Satzzeichen, Leerzeichen und Sonderzeichen (".", "_", "&" und "#" sind erlaubt) enthalten. Es ist nicht empfehlenswert, Symbole <, >, :, ", /, |, ?, * zu verwenden.

Import und Export benutzerdefinierter Symbole

Sie können benutzerdefinierte Symbole teilen oder diese zwischen Ihren Plattformen übertragen. Die Einstellungen eines konkreten benutzerdefinierten Symbols können in dem oben erwähnten Fenster der Einstellungen exportiert und importiert werden.

Sie können ganze Gruppen von Symbolen exportieren und importieren:

Export und Import der Einstellungen einer Gruppe benutzerdefinierter Symbole

Die Einstellungen werden in Textdateien im JSON-Format exportiert:

{
"ConfigSymbols" : [
{
"Symbol" : "EURUSD_cust",
"Path" : "Custom\\Forex\\EURUSD_cust",
"ISIN" : "",
"Description" : "Euro vs US Dollar",
....

Verwaltung benutzerdefinierter Symbole

Alle Symbole werden in der separaten Gruppe "Custom" angezeigt. Um ein Symbol zu ändern oder zu löschen, verwenden Sie das Kontexmenü in der Liste:

Erstellen, Modifizieren und Löschen benutzerdefinierter Symbole

Import der Preishistorie

Sie können Kursdaten aus jeder Textdatei sowie aus Historiedateien des MetaTrader 5 (HST) ins eigene Symbol importieren. Wählen Sie ein Symbol aus und gehen Sie zum Reiter "Balken". Wählen Sie ein Symbol aus und gehen Sie zum Reiter "Balken" oder "Ticks".

Import der Preishistorie in ein benutzerdefiniertes Symbol

Geben Sie den Pfad zur Datei mit den Daten im Importdialog an und setzen Sie die Einstellungen:

  • Trennzeichen — Trennzeichen für Elemente in einer Textdatei.
  • Auslassung von Spalten und Zeilen — Anzahl der Spalten (von links nach rechts) und Zeilen (von oben nach unten), die man beim Import auslassen muss.
  • Verschiebung — Zeitverschiebung nach Stunden. Diese Option wird beim Importieren von Daten verwendet, die in einer anderen Zeitzone gespeichert wurden.
  • Nur ausgewählte — diese Option ermöglicht es, nur die im Ansichtsfenster ausgewählten Zeilen zu importieren. Die Zeilen können mit der Maus ausgewählt werden, während man die Taste "Ctrl" oder "Shift" drückt und hält.

Die Datei mit Minutenbalken muss folgendes Format haben: Datum Zeit Open High Low Close Tickvolumen Volumen Spread. Zum Beispiel:

<DATE>        <TIME>      <OPEN>     <HIGH>     <LOW>      <CLOSE> <TICKVOL><VOL>    <SPREAD>
2016.06.27    00:01:00    1.10024    1.10136    1.10024    1.10070    18    54000000    44
2016.06.27    00:02:00    1.10070    1.10165    1.10070    1.10165    32    55575000    46
2016.06.27    00:03:00    1.10166    1.10166    1.10136    1.10163    13    13000000    46
2016.06.27    00:04:00    1.10163    1.10204    1.10155    1.10160    23    51000000    41

Die Datei mit Ticks muss folgendes Format haben: Datum Zeit Bid Ask Last Volume. Zum Beispiel:

<DATE>          <TIME>          <BID>   <ASK>   <LAST>  <VOLUME>
2017.07.03      00:03:47.212    1.14175 1.14210 0.00000 0
2017.07.03      00:03:47.212    1.14168 1.14206 0.00000 0
2017.07.03      00:03:47.717    1.14175 1.14206 0.00000 0
2017.07.03      00:03:54.241    1.14175 1.14205 0.00000 0
2017.07.03      00:03:57.982    1.14165 1.14201 0.00000 0
2017.07.03      00:04:07.795    1.14175 1.14201 0.00000 0
2017.07.03      00:04:55.432    1.14164 1.14200 0.00000 0
2017.07.03      00:14:33.743    1.14173 1.14203 0.00000 0
2017.07.03      00:14:33.743    1.14173 1.14201 0.00000 0
2017.07.03      00:16:44.901    1.14174 1.14195 0.00000 0

Für ein benutzerdefiniertes Symbol können Sie die Daten jedes existierenden Symbols verwenden. Exportieren Sie sie, modifizieren, wenn nötig und importieren sie zurück.

  • Die Preishistorie wird auf der Handelsplattform auf Minutenbalken gespeichert. Alle anderen Zeitrahmen werden basierend auf Minutenbalken erstellt. Beim Import können Sie auch Daten höherer Zeitrahmen verwenden, man muss aber dabei beachten, dass die Grafiken kleinerer Zeitrahmen dabei Lücken haben werden. Beim Import von Stundendaten, zum Beispiel, sehen Sie je einen Balken für jede Stunde auf einem Minutenchart.
  • Beim Import wird das Zeitintervall durch die Daten aus der angegebenen Datei komplett ersetzt. Wenn die Datei die Daten vom 2016.01.01 00:00:00 bis zum 2016.06.01 00:00:00 beinhaltet und in der Historie des benutzerdefinierten Symbols einige Daten aus diesem Intervall bereits vorhanden sind, werden diese komplett durch die neuen ersetzt (auch wenn die importierten Daten weniger sind, als es gegeben hat).
  • Beim Import von Balken gilt das Vorhandensein der sich überschneidenden Einträge in der Import-Datei (Balken mit der gleichen Zeit) als Fehler. In der Plattform kann einer Minute nur ein Balken entsprechen. Beim Import von Ticks ist das Vorhandensein von Ticks mit komplett gleichen Parametern erlaubt.
  • Wenn der Wert für irgendeinen Index in der Zeile kleiner oder gleich Null ist, wird dieser Wert nicht importiert.
  • Beim Import muss der Nutzer selbst die richtige Reihenfolge von Ticks in der Datei sichern: von älteren Ticks zu den neueren.

Die Preisdaten benutzerdefinierter Symbole werden in einem separaten Verzeichnis Custom (nicht in den Verzeichnissen für die Daten konkreter Handelsservern) gespeichert:

C:\Users\[windows account]\AppData\Roaming\MetaQuotes\Terminal\[instance id]\bases\Custom

Preishistorie bearbeiten

Sie können die Historie von Balken und Ticks benutzerdefinierter Symbole im manuellen Modus bearbeiten. Rufen Sie das gewünschte Datenintervall im Reiter "Balken" oder "Ticks" ab.

  • Die Werte können durch einen Doppelklick geändert werden.
  • Für das Hinzufügen oder Löschen von Einträgen, verwenden Sie das Kontextmenü.
  • Um mehrere Balken/Ticks zu löschen, wählen Sie diese mit der Maus aus, während Sie Shift oder Ctrl+Shift drücken und halten.

Bei der Bearbeitung von Balken ist es dringend empfohlen, Daten des Zeitrahmens М1 abzurufen. Die Preishistorie wird als Minutenbalken auf der Handelsplattform gespeichert. Alle anderen Zeitrahmen werden basierend auf Minutenbalken erstellt. Auch wenn Sie ursprünglich die Balken eines anderen Zeitrahmens angefordert haben, werden die Änderungen auf die entsprechenden Minutenbalken angewandt. Zum Beispiel, wenn Sie die Daten von М5 abrufen und einen Balken ändern, werden fünf Minutenbalken durch einen Minutenbalken (der dem Anfang des М5-Balkens entspricht) ersetzt. Das heißt, das ganze bearbeitete Intervall wird komplett ersetzt.

Manuelle Änderung von MinutenBalken und Tickdaten

Die geänderten Einträge werden hervorgehoben:

  • roter Hintergrund — falscher Eintrag (zum Beispiel, Hochkurs ist kleiner als Tiefkurs)
  • grüner Hintergrund — korrekter geänderter Eintrag
  • grauer Hintergrund — gelöschter Eintrag
  • gelber Hintergrund — hinzugefügter Eintrag
  • Beim Hinzufügen eines neuen Balkens wird das erste unbesetzte Datum/Zeit aus dem aktuellen Datenbereich automatisch in die Spalte "Datum" eingefügt.
  • Die Plattform erlaubt es nicht, Balken mit dem gleichen Datum oder der gleichen Zeit zu erstellen. Einer Minute kann nur ein Balken entsprechen.

Um die Änderungen zu speichern, klicken Sie auf "Änderungen übernehmen" im unteren Teil des Fensters.

Verwendung benutzerdefinierter Finanzinstrumente

Die Verwendung benutzerdefinierter Symbole unterscheidet sich kaum von der Verwendung von Symbolen, die vom Broker bereitgestellt werden. Sie werden auch im Fenster "Marktübersicht" angezeigt, und man kann sich ihre Charts ansehen, auf welche Indikatoren und analytische Objekte gezogen werden können.

Preischart eines benutzerdefinierten Symbols mit technischen Indikatoren

Testen anhand benutzerdefinierter Finanzinstrumente

Man kann keine realen Trades mit benutzerdefinierten Symbolen ausführen, sie können aber für das Testen von Handelsrobotern und Indikatoren im Strategietester verwendet werden. Wählen Sie einfach ein benutzerdefiniertes Symbol aus und starten Sie das Testen:

Testem eines Handelsroboters auf einem benutzerdefinierten Symbol

Bei der Berechnung der Margin und des Profits für Trades, die beim Testen ausgeführt werden, verwendet der Strategietester zugängliche Kreuzkurse automatisch, wenn nötig. Zum Beispiel, wenn die Währung des Gewinns der Euro ist, und die Kontowährung der US-Dollar, wird der Strategietester sie nach den entsprechenden Kursen des Währungpaares EURUSD umrechnen.

Mit großer Wahrscheinlichkeit haben benutzerdefinierte Symbole verschiedene Suffixe in ihren Namen, zum Beispiel, EURUSD.1 oder EURUSD.f. Deswegen verwendet der Strategietester einen speziellen Mechanismus, um nach passenden Kreuzkursen für Neuberechnung zu suchen.

Wir haben zum Beispiel ein benutzerdefiniertes Symbol AUDCAD.custom mit dem Typ der Marginberechnung Forex erstellt, unsere Kontowährung ist USD. Anhand des Namens des Forex-Symbols sucht der Tester nach benötigten Symbolen wie folgt:

  1. zuerst werden die Symbole AUDUSD.custom (für die Berechnung der Margin) und USDCAD.custom (für die Berechnung des Profits) gesucht.
  2. danach, falls es eines der Symbole nicht gibt, wird das erste Symbol gesucht, das den benötigten Währungspaaren dem Namen nach entspricht — jeweils AUDUSD und USDCAD. Es wurden, zum Beispiel, AUDUSD.b und USDCAD.b gefunden, das heißt, die Kurse dieser Symbole werden bei der Berechnung der Margin und des Profits verwendet.

Für Symbole mit anderen Typen der Marginberechnung (Futures, Stock Exchange) wird ein Währungspaar für die Umrechnung der Währung des Symbols in die Kontowährung benötigt. Wir haben zum Beispiel ein benutzerdefiniertes Symbol erstellt, die Währung des Profits und der Margin ist der britische Pfund (GBP), die Kontowährung ist der Schweizer Franken (CHF). In diesem Fall wird es nach Symbolen für das Testen wie folgt gesucht:

  1. Es wird geprüft, ob ein Symbol vorhanden ist, das dem Währungspaar GBPCHF (GBP vs CHF) entspricht.
  2. Wenn es kein entsprechendes Symbol gibt, wird das erste Symbol gesucht, das dem Währungspaar GBPCHF dem Namen nach entspricht, zum Beispiel, GBPCHF.b oder GBPCHF.def.
  • Vergewissern Sie sich beim Testen auf eigenen Symbolen, dass alle für Berechnungen notwendigen Währungspaare auf dem Konto vorhanden sind. Andernfalls wird die Berechnung von Finanzergebnissen und Marginanforderungen beim Testen nicht möglich.
  • Die Verwendung von MQL5 Cloud Network für die Optimierung anhand benutzerdefinierter Symbole ist nicht erlaubt. Dies ist damit verbunden, dass es auf den Rechnern verschiedener Nutzer benutzerdefinierte Symbole mit den gleichen Namen aber mit unterschiedlichen Preishistorien geben kann. Dies kann nicht nur zur Diskrepanz zwischen den Ergebnissen des Testens unter einzelnen Testagenten, sondern auch zu erneutem Herunterladen und Synchronisierung historischer Daten führen, was einen überflüssigen Traffic verursacht. Die Verwendung von Agenten eines lokalen Netzes und Remote-Agenten ist erlaubt.

Synthetische Finanzinstrumente mit Kursen in Echtzeit

Die Handelsplattform erlaubt es, synthetische Finanzinstrumente zu erstellen. Das sind Symbole, die auf einem oder mehreren der vorhandenen Symbole basieren. Man muss eine Formel für die Berechnung der Kurse angeben, und die Plattform wird Ticks des synthetischen Symbols in Echtzeit erzeugen sowie eine Minuten-Historie für es erstellen.

Wie es funktioniert

  • Sie erstellen ein synthetisches Finanzinstrument und geben eine Formel für seine Berechnung an.
  • Die Plattform berechnet seine Ticks mit einer Frequenz von 10 Mal pro Sekunde, vorausgesetzt, dass sich der Preis mindestens eines Symbols in der Formel geändert hat.
  • Die Plattform berechnet die Historie von Minutenbalken (für zwei letzte Monate) auf Basis von Minutenbalken der Symbole in seiner Formel. Alle neuen Balken (der aktuelle und der nächste) werden in Echtzeit basierend auf erzeugten Ticks des synthetischen Symbols gezeichnet.

Sie können, zum Beispiel, ein Symbol erstellen, das den Dollarindex (USDX) zeigt. Seine Formel sieht wie folgt aus:

50.14348112*pow(ask(EURUSD),-0.576)*pow(USDJPY,0.136)*pow(ask(GBPUSD),-0.119)*pow(USDCAD,0.091)*pow(USDSEK,0.042)*pow(USDCHF,0.036)

Die Plattform berechnet den Preis des neuen Symbols in Echtzeit basierend auf Kursen der sechs anderen Symbole, die von Ihrem Broker bereitgestellt werden. In der Marktübersicht und auf dem Chart sehen Sie, wie sich sein Preis ändert:

Synthetisches Symbol in der Marktübersicht und dessen Chart

Erstellen Sie ein neues benutzerdefiniertes Symbol, öffnen Sie seine Spezifikation und geben Sie seine Formel an:

Die Spezifikation des Symbols und dessen Formel

Die Berechnung vonTicks und Minutenbalken eines synthetischen Symbols beginnt mit dem Hinzufügen des Symbols zur "Marktübersicht". Gleichzeitig werden der Marktübersicht alle Symbole hinzugefügt, die für dessen Berechnung benötigt werden. Dem Journal der Plattform wird eine Eintragung über den Beginn der Berechnung hinzugefügt: Synthetic Symbol USDX: processing started.

  • Die Berechnung des synthetischen Symbols wird beendet, wenn es in der Marktübersicht ausgeblendet wird.
  • Symbole, die momentan für die Berechnung synthetischer Symbole verwendet werden, können in der Marktübersicht nicht ausgeblendet werden.

Berechnung von Kursen in Echtzeit

Jede 100 Ms (zehn mal pro Sekunde) wird überprüft, ob sich der Preis der Symbole in der Formel geändert hat. Wenn sich der Preis mindestens eines Symbols geändert hat, wird der Preis des synthetischen Symbols berechnet und ein Tick wird generiert. Die Berechnung wird parallel in drei Threads für Bid, Ask und Last-Preise durchgeführt. Zum Beispiel, wenn die Formel EURUSD*GBPUSD ist, werden die Preise des synthetischen Symbols wie folgt berechnet:

  • Bid — bid(EURUSD)*bid(GBPUSD)
  • Ask — ask(EURUSD)*ask(GBPUSD)
  • Last — last(EURUSD)*last(GBPUSD)

Das Vorhandensein der Veränderungen wird für jeden Preis separat geprüft. Wenn sich bei einer Berechnung nur der Bid-Preis des ursprünglichen Symbols verändert hat, wird nur der entsprechende Preis eines synthetischen Symbols berechnet.

Zeichnen der Historie von Munitenbalken

Neben dem Sammeln von Ticks in Echtzeit, erstellt die Plattform eine Minuten-Historie des synthetischen Symbols. Auf diese Weise kann sich der Trader seine Charts wie die Charts einfacher Symbole ansehen und mithilfe von Objekten und Indikatoren technische Analyse durchführen.

Sobald der Trader ein synthetisches Symbol zur Marktübersicht hinzufügt, prüft die Plattform, ob es für ihn eine berechnete Minutenhistorie gibt. Wenn nicht, wird diese für die letzten 60 Tage erstellt. Das macht ungefähr 50 000 aus. Wenn ein kleinerer Wert in Max. Balken im Chart in den Einstellungen der Plattform angegeben wurde, wird diese Beschränkung angewandt.

Wenn einige Balken für diese Perioden bereits gezeichnet wurden, erzeugt die Plattform neue Balken. Eine tiefere Historie wird erst beim Versuch erstellt, sich einen älteren Zeitraum auf dem Chart anzusehen (wenn man zurück scrollt oder die Historie aus einem MQL5-Programm abruft).

Die Historie von Minutenbalken eines synthetischen Symbols wird basierend auf Minutenbalken (nicht Ticks) der Symbole in der Formel berechnet. Um den Open-Kurs eines Minutenbalkens eines synthetischen Symbols zu berechnen, verwendet die Plattform Opеn-Kurse der Symbole in der Formel. Die High-, Low- und Close- Kurse werden gleich berechnet.

Wenn der benötigte Minutenbalken für ein Symbol aus der Formel fehlt, verwendet die Plattform den Close-Kurs des vorherigen Balkens für die Berechnung. Es werden zum Beispiel drei Symbole verwendet: EURUSD, USDJPY und GBPUSD. Fehlt bei der Berechnung eines Balkens, der der Minute 12:00 entspricht, der Minutenbalken von USDJPY, werden folgende Preise verwendet:

  • Für Open — EURUSD Open 12:00, USDJPY Close 11:59, GBPUSD Open 12:00
  • Für High — EURUSD High 12:00, USDJPY Close 11:59, GBPUSD High 12:00
  • Für Low — EURUSD Low 12:00, USDJPY Close 11:59, GBPUSD Low 12:00
  • Für Close — EURUSD Close 12:00, USDJPY Close 11:59, GBPUSD Close 12:00

Wenn der Minutenbalken bei allen Symbolen in der Formel fehlt, wird der entsprechende Minutenbalken des synthetischen Symbols nicht berechnet.

Zeichnen neuer Minutenbalken

Alle neuen Balken (der aktuelle und die darauffolgenden) eines synthetischen Symbols werden basierend auf erzeugten Ticks erstellt. Der Preis, nach welchem die Balken gezeichnet werden, hängt vom Parameter "Zeichnen von Charts" in der Spezifikation ab:

Chartmodus eines synthetischen Symbols

Welche Operationen dürfen in der Formel des Symbols verwendet werden?

In der Formel können Preisdaten sowie einige Eigenschaften der vorhandenen Symbole (bereitgestellt vom Broker) verwendet werden. Dafür geben Sie bitte folgende Informationen an:

  • Symbolname — je nach dem, welcher Preis des synthetischen Symbols berechnet wird, wird in der Formel der Bid-, Ask- oder Last-Preis des angegebenen Finanzinstruments verwendet. Zum Beispiel wenn man EURUSD*GBPUSD angibt, wird Вid als bid(EURUSD)*bid(GBPUSD) und Ask — als ask(EURUSD)*ask(GBPUSD) berechnet.
  • bid(Symbolname) — bei der Berechnung des Bid-Preises des synthetischen Symbols wird die Verwendung des Bid-Preises des angegebenen Symbols erzwungen. Diese Variante entspricht praktisch der vorherigen (ohne Angabe des Preistyps).
  • ask(Symbolname) — bei der Berechnung des Bid-Preises des synthetischen Symbols wird die Verwendung des Ask-Preises des angegebenen Symbols erzwungen. Bei der Berechnung des Ask-Preises wird umgekehrt der Bid-Preis des angegebenen Symbols verwendet. Bei der Berechnung des Last-Preises wird der Last-Preis des angegebenen Symbols verwendet. Zum Beispiel wenn man ask(EURUSD)*GBPUSD angibt, ist die Berechnung wie folgt:
  • Вid = ask(EURUSD)*bid(GBPUSD)
  • Ask = bid(EURUSD)*ask(GBPUSD)
  • Last = last(EURUSD)*last(GBPUSD)
  • last(Symbolname) — der Last-Preis des angegebenen Symbols wird bei der Berechnung aller Preise des synthetischen Symbols (Bid, Ask und Last) verwendet. Wenn man zum Beispiel last(EURUSD)*GBPUSD angibt, ist die Berechnung wie folgt:
  • Вid = last(EURUSD)*bid(GBPUSD)
  • Ask = last(EURUSD)*ask(GBPUSD)
  • Last = last(EURUSD)*last(GBPUSD)
  • volume(Symbolname) — in der Formel wird das Tickvolumen des angegebenen Symbols verwendet. Stellen Sie sicher, dass Volumen-Daten für das angegebene Symbol vom Broker geliefert werden.
  • point(Symbolname) — in die Formel wird der Wert der minimalen Preisveräderung des angegebenen Symbols eingefügt.
  • digits(Symbolname) — in die Formel wird die Anzahl der Nachkommastellen im Preis des angegebenen Symbols eingefügt.

Wenn der Symbol einen komplizierten Namen hat (Bindestrich, Punkte usw. beinhaltet), muss er in Anführungszeichen gesetzt werden. Zum Beispiel, "RTS-6.17".

Folgende Rechenoperationen können in der Formel verwendet werden: Addition (+), Subtraktion (-), Multiplikation (*), Division (/) und Division mit Rest (%). EURUSD+GBPUSD bedeutet, zum Beispiel, dass der Preis als Summe der Preise von EURUSD und GBPUSD berechnet wird. In der Formel kann auch unäres Minus für die Änderung des Vorzeichens verwendet werden: -10*EURUSD.

Die Rechenoperationen werden nach Vorrangregeln ausgeführt:

  • Zunächst werden Multiplikation, Division und Division mit Rest ausgeführt, danach werden Addition und Subtraktion ausgeführt.
  • Die Rechenoperationen werden von links nach rechts ausgeführt. Wenn mehrere Operationen in der Formel (zum Beispiel, Addition und Subtraktion) verwendet werden, wird zunächst die Rechenoperation ganz links ausgeführt.
  • Um die Reihenfolge der Ausführung zu ändern, kann man runde Klammern ( und ) verwenden. Die Ausdrücke in Klammern haben bei der Berechnung den höchsten Vorrang. Für diese Ausdrücke gilt auch das Prinzip von links nach rechts: zuerst wird der Ausdruck in Klammern berechnet, der in der Formel ganz links steht.

Darüber hinaus können Konstanten in der Formel verwendet werden:

  • Nummerische (ganzzahlige und mit Gleitkomma). Zum Beispiel, EURUSD*2+GBPUSD*0.7.
  • Die Symbol-Eigenschaften _Digits und _Point. Sie fügen entsprechende Eigenschaften eines benutzerdefinierten Symbols aus der Spezifikation in die Formel ein. _Digits — Anzahl der Nachkommastellen im Preis des Symbols, _Point — minimale Preisveränderung des Symbols.

Darüber hinaus kann man alle mathematischen Funktionen verwenden, die in MQL5 unterstützt werden, außer MathSrand, MathRand und MathIsValidNuber:

Funktion

Beschreibung

fabs(Zahl)

Gibt den absoluten Wert (Modulo-Wert) der der Funktion übergebenen Zahl zurück.

acos(Zahl)

Gibt den Wert des Arkuskosinus der Zahl im Bogenmaß zurück

asin(Zahl)

Gibt den Wert des Arkussinus der Zahl im Bogenmaß zurück

atan(Zahl)

Gibt den Arkustangens der Zahl im Bogenmaß zurück

ceil(Zahl)

Gibt die nächste ganze Zahl von oben zurück

cos(Zahl)

Gibt den Kosinus der Zahl zurück

exp(Zahl)

Gibt die Exponente der Zahl

floor(Zahl)

Gibt die nächste ganze Zahle von unten zurück

log(Zahl)

Gibt den natürlichen Logarithmus zurück

log10(Zahl)

Gibt den Logarithmus mit der Basis 10 zurück

fmax(Zahl1, Zahl2)

Gibt den größten aus zwei Zahlenwerten zurück

fmin(Zahl1, Zahl2)

Gibt den kleinsten aus zwei Zahlenwerten zurück

fmod(Dividend, Divisor)

Gibt den reellen Rest von der Division zweier Zahlen zurück

pow(Basis, Potenz)

Erhebt die Zahl in die angegebene Potenz

round(Zahl)

Rundet die Zahl auf die nächste ganze Zahl

sin(Zahl)

Gibt den Sinus der Zahl zurück

sqrt(Zahl)

Gibt die Wurzel zurück

tan(Zahl)

Gibt den Tangens der Zahl zurück

expm1(Zahl)

Gibt den Wert des Ausdrucks exp(Zahl)-1 zurück

log1p(Zahl)

Gibt den Wert des Ausdrucks log(1+Zahl) zurück

acosh(Zahl)

Gibt den Wert des hyperbolischen Arkuskosinus zurück

asinh(Zahl)

Gibt den Wert des hyperbolischen Arkussinus zurück

atanh(Zahl)

Gibt den Wert des hyperbolischen Arkustangens zurück

cosh(Zahl)

Gibt den hyperbolischen Kosinus zurück

sinh(Zahl)

Gibt den hyperbolischen Sinus zurück

tanh(Zahl)

Gibt den hyperbolischen Tangens zurück