Erstellungsanleitung für ZuluScripts
Zuletzt aktualisiert am
Einführung
ZuluTrade hat eine neue Generation von Handels-Scripts geschaffen, mit denen Händler Ihre eigenen Handelsroboter und -indikatoren direkt über ihre ZuluTrade-Händlerkonten erstellen und installieren können, ohne dass sie eine externe Software oder eine Anmeldung durch Dritte brauchen!
ZuluScripts werden mit ZuluTrade Query Language (zql) installiert, die so entwickelt wurde, dass sie mit fast allen gebräuchlichen Script-Sprachen auf dem Forexmarkt kompatibel sind.
Sie brauchen nur ein Händlerkonto mit einer aktivierten ZuluTrade+ Option, wie in der Registerkarte Einstellungen, Einstellungen für den Brokerkonto-Link ihres Konto angezeigt, um die ZuluScripts zu nutzen.
Auf den ZuluTrade Handels-Scripts Editor zugreifen
Nachdem Sie sich bei ZuluTrade registriert und Ihr Konto mit der ZuluTrade+ Plattform verlinkt haben, müssen Sie zu der ZuluTrade Handelsstation navigieren und "Handelsscripts" anklicken, um auf die ZuluTrade Handelsscripts zuzugreifen.
Dann wird sich ein neues Popup-Fenster mit dem Titel "Trading-Client" öffnen.
Oben rechts auf der vertikalen Leiste des Scrips Editors finden Sie 4 verschiedene Registerkarten, die den Funktionsmodus des Scripts Editors ändern.
Der erste ändert den Modus zu Scripts erstellen, der zweite zu Personalisierte Indikatoren erstellen, der dritte zu Überschriften erstellen und der letzte öffnet das ZQL-Glossar, in dem alle Kommandos der ZQL-Sprache detailliert erklärt werden.
Zum Anfang
Einen ZuluScript erstellen
Um Ihren eigenen ZuluScript zu erstellen, müssen Sie die Schaltfläche "Script erstellen" im Scripts Editor anklicken.
Wenn Sie einen neuen Script erstellen, füllt sich das Editor-Fenster mit einer Vorlage des zql-Codes - in diesem Fenster muss der Script-Code eingegeben werden.
Unter dem Editor auf der rechten Seite befinden sich drei Schaltflächen, mit denen Sie Ihren ZuluScript erstellen können - Speichern, Kompilieren und Installieren.
Speichern - die Schaltfläche Speichern speichert Ihren Script jederzeit, damit Änderungen und Fortentwicklungen nicht verloren gehen.
Wenn Sie aber eine Änderung des Scripts speichern, heißt das nicht, dass diese Änderung benutzt werden kann. Jede Änderung muss Kompilieren und Installieren durchlaufen, bevor Sie zur Nutzung bereit ist.
Kompilieren - Das Kompilieren eines Scripts überprüft den Code auf Syntaxfehler. Wenn die Kompilierung erfolgreich ist, werden die Binärdateien erstellt, die mit unserem Script assoziiert sind, damit er ausgeführt werden kann.
Wenn der Kompilierungsprozess fehlschlägt, werden die gefundenen Fehler in dem Fenster 'Compiler Output' dargestellt.
Nachfolgend finden Sie ein Beispiel für eine erfolglose Kompilierung:
Installieren - Um einen Script zu installieren, muss er zuerst kompiliert werden. Wenn dies erfolgt ist und die .zql-Datei erstellt wurde, können Sie den Script installieren, damit er in Ihrer ZuluTrade-Handelsstation verfügbar ist!
Meta Data - Auf der rechten Seite des Fensters können die Metadaten Ihres Scripts verändert werden.
Das Feld "Name" enthält den Namen, der angezeigt wird, wenn der Script an einen Chart angehängt wird.
Das Feld "Dateiname" enthält den Dateinamen, mit dem der Script intern auf dem Server von ZuluTrade gespeichert wird. Dieses Feld muss nicht unbedingt geändert werden, wenn Sie es aber ändern möchten, denken Sie daran, dass der Name mit dem Suffix".zql" enden muss.
Das Feld "Beschreibung" enthält eine kurze Beschreibung, die angezeigt wird, wenn Sie den Script an einen Chart anhängen. Die Beschreibung kann Ihnen helfen, sich an die genaue Funktion des Scripts zu erinnern. Geben Sie also alle Details an, die Sie in diesem Bereich brauchen.
Scriptliste - Unter den Metadaten-Feldern finden Sie eine Liste aller gespeicherten Scripts. Beachten Sie bitte, dass alle neu erstellten Scripts automatisch gespeichert werden.
Der aktuell ausgewählte Script (sein Code wird im Editor-Fenster angezeigt) ist markiert
Einen Script löschen - Wenn Sie einen Script löschen müssen, müssen Sie nur das Icon "x" neben dem Scriptnamen anklicken und die Löschung in dem entsprechenden Popup-Fenster bestätigen.
Beispiels-Script - Dies ist ein Beispiel für einen zql-Script, den Sie zu Testzwecken benutzen können:
#property copyright "Copyright © 2014, Zulutrade Inc"
#property link "www.zulutrade.com"
extern int BuyThreshold = 40;
extern int SellThreshold = 30;
extern double Lots = 1;
extern int MagicNumber = 33;
extern string comment = "by example script";
extern int maxOpenPositions = 3;
extern int shift = 1;
int RSILength = 14;
int TimeOfFirstBar = 0;
int init() {
}
int start() {
double RSI = 0.0;
if (isFirstTickOfCurrentBar()) {
RSI = iRSI(NULL, PERIOD_H1, RSILength, PRICE_CLOSE, shift);
Print("Got RSI value for period H1 and shift ", shift, " equals to ", RSI);
// Buy Condition
if ( RSI >= BuyThreshold && OrdersTotal() < maxOpenPositions) {
if (doBuy() == false) {
return (0);
}
}
// Close condition
if ( RSI <= SellThreshold && OrdersTotal() > 0) {
if(doClose() == false) {
return(0);
}
}
}
}
// Figures out the first tick of a new bar
bool isFirstTickOfCurrentBar() {
if (TimeOfFirstBar != Time[1]) {
TimeOfFirstBar = Time[1];
return (true);
}
return (false);
}
// Close an order checking magic number to make sure it is generated from current script
bool doClose() {
OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
if (OrderClose( OrderTicket(), OrderLots(), Ask, 0, White) == -1) {
Print ("Failed to close trade ", OrderTicket(),", error # ", GetLastError());
return(false);
}
Print ("Successfully closed trade ", OrderTicket(),", error # ", GetLastError());
return(true);
}
// Open a new order
bool doBuy() {
int ticket = OrderSend( Symbol(), OP_BUY, Lots, Ask, 0, 0.0, 0.0, comment, MagicNumber, 0, Lime);
if (ticket < 0) {
Print ("Failed to open trade, error # ", GetLastError());
return (false);
}
Print ("Successfully opened ticket ", ticket);
return (true);
}
Dieser Script überprüft in jedem Zyklus die Anzahl der offenen Positionen. Wenn keine Positionen offen sind und einige der Indikatorenbedingungen erfüllt sind, öffnet der Script eine neue Position. Wenn jedoch viele Positionen offen sind, schließt er eine.
ANMERKUNG: Dies ist keine echte Handelsstrategie und dient nur zu Illustrationszwecken.
Wenn Sie einen neuen Script erstellen müssen, klicken Sie einfach die Schaltflache "Script erstellen" an und starten den Prozess erneut.
Zum Anfang
Einen personalisierten Indikator erstellen
Personalisierte Indikatoren können in einem anderen Handelsscript erstellt und benutzt werden, der die schon in der Sprache verfügbaren technischen Indikatoren erweitert.
Personalisierte Indikatoren können in allen ZuluScripts benutzt werden, wenn Sie die iCustom() ZQL-Funktion benutzen, nachdem Sie Ihren personalisierten Indikator gespeichert, kompiliert und installiert haben.
Anmerkung:Derzeit können wir personalisierte Indikatoren nicht in den Charts wiedergeben.
Um Ihren personalisierten Indikator zu erstellen, müssen Sie die Schaltfläche "Indikator erstellen" im Scripts Editor anklicken.
Achten Sie bitte darauf, dass der Editor zur Registerkarte Personalisierte Indikatoren umgeschaltet ist:
Sie müssen dann Ihren personalisierten Indikator bearbeiten, benennen und installieren, wenn Sie soweit sind!
Bearbeiten, Benennen, Speichern und Installieren funktionieren auf ähnliche Art wie die ZuluScripts
Anmerkung: der Name des Indikators ist der Name, der später benutzt wird, um die iCustom()-Funktion aufzurufen, um auf Ihre ZuluScripts zuzugreifen.
Hier finden Sie ein Beispiel für einen personalisierten Indikator, den Sie zu Testzwecken verwenden können:
extern int index = 0;
int MODE = 0;
int init() {
return(0);
}
int start() {
double value = iCustom(NULL, NULL, "my_new_indicator", 0, index);
Print("my_new_indicator value for bar ", index, " is ", value);
}
Zum Anfang
Eine Überschrift erstellen
Hier können Sie wiederverwendbare Funktionen definieren, die von jedem Script oder personalisierten Indikator benutzt werden können.
Bitte beachten Sie, dass die Überschriften keine ZQL-Scripts sind, sie brauchen also keine init(), start() oder deinit() Funktion.
Um Ihre Überschrift zu erstellen, müssen Sie die Schaltfläche "Überschrift erstellen" im Scripts Editor anklicken.
Stellen Sie bitte sicher, dass der Editor auf die Registerkarte Überschriften umgeschaltet ist:
Bemerkung 1: Das ist der Dateiname, der in dem Befehl #include<> in dem Script benutzt werden sollte, den Sie brauchen, um auf die Funktionen zuzugreifen.
Bemerkung 2: Überschriften werden nur gespeichert. Kompilieren oder Installieren ist nicht erforderlich, da der Code kompiliert und installiert wird, wenn er von einem Script oder personalisierten Indikator importiert wird.
Eine Überschrift in einem neuen Script zu benutzen, ist so einfach, wie die Aufnahme der Überschriftsdatei wie folgt vorzunehmen
#include "my_common_functions.zqh"
int init() {
}
int start() {
printMyBalance();
}
Zum Anfang
Glossar
Im Glossar finden Sie detaillierte Informationen zu allen Kommandos der ZQL-Sprache.
Klicken Sie einfach den Buchstaben oben an und scrollen automatisch zu den Eintragungen unter diesem Buchstaben. Wenn Sie die Buchstabenüberschriften der Liste anklicken, können Sie die Funktionen des Buchstaben anzeigen und verbergen, und wenn Sie einen Funktionsnamen/Funktionsüberschrift anklicken, können Sie die Details dieser Funktion anzeigen oder verbergen
.
Zum Anfang
Einen Script in Ihrem Händlerkonto erstellen
Wenn Sie einen Script erfolgreich kompiliert und installiert haben, können Sie das Fenster des Script Editors schließen und den Script an einen Chart anhängen.
Dafür müssen Sie zu dem Währungspaar und dem Zeitraum Ihrer Wahl navigieren. Für dieses Beispiel auf dem EUR/USD Chart mit einer Dauer von H1.
Klicken Sie auf die Schaltfläche Handelsscripts (unten auf dem Bildschirmfoto markiert) und wählen den Script Ihrer Wahl aus.
Wenn Sie die Maus über Ihrem Script lassen, erscheint ein Fenster mit der Beschreibung des Scripts.
Um den Script über den ausgewählten Chart/Zeitraum zu starten, klicken Sie einfach auf den Namen des Scripts. Es werden sich ein neues Fenster mit der Beschreibung des Scripts und einige Initialisierungsfelder für die externen Variablen des Scripts öffnen.
Wenn Sie die Parameter nach Ihren Bedürfnissen angepasst haben, müssen Sie die Schaltfläche "Start" anklicken, und der Script wird an den Chart angehängt!
Anmerkung: Der Script wird auf diesem Chart von den ZuluTrade-Servern laufen, egal ob Ihr PC eingeschaltet ist oder nicht oder ob Sie sich in Ihrem Konto angemeldet haben oder nicht.
Registerkarte Handelsscripts - Hier können Sie jeweiligen in den Charts/Zeiträumen aktiven Handelsscripts sowie die aktuelle Version und den Zeitpunkt des letzten Updates einsehen.
Sie können auch direkt über das Chart Icon zu dem Chart navigieren, in dem der Script läuft.
Registerkarte Mitteilungen - Alle Nachrichten aus Ihrem Script, Ausdrucke, Nachrichten von ZuluTrade über Ihren Script etc. erscheinen in diesem Abschnitt.
Zum Anfang
Einen Script stoppen und deinstallieren
Sie können eine Script jederzeit stoppen und deinstallieren.
Einen Script stoppen - Um einen Script in einem laufenden Chart/Zeitraum zu stoppen, müssen Sie nur zu der Registerkarte "Handelsscripts" navigieren, die Schaltfläche "x" rechts neben dem Script, den Sie stoppen möchten, anklicken und den Stopp in dem jeweiligen Popup-Fenster bestätigen.
Anmerkung: Wenn ein Script gestoppt wird, wird er nur für einen Chart/Zeitraum gestoppt. Der Script bleibt in Ihrem Händlerkonto und in Ihren Handelsscripts
. Einen Script deinstallieren - Um einen Script zu deinstallieren, müssen Sie nur in den Abschnitt Handelsscripts navigieren, die Schaltfläche "x" neben dem Namen anklicken und die Deinstallation in dem jeweiligen Popup-Fenster bestätigen.
Anmerkung: Die Deinstallation des Scripts wird ihn nur aus der Liste der in Ihrem Händlerkonto verfügbaren Scripts entfernen. Sie wird den Script nicht aus dem Script Editor Fenster löschen.
Zum Anfang
ZQL Standalone Compiler Investor-Anleitung.
Einstig in den ZQL Standalone Compiler
ZQL Standalone Compiler ist der Standalone-Modus vom ZQL Script Compiler, welcher von zulutrade auf der eigenen Web-Plattform angeboten wird. Es kompiliert jedes ZQL kompatible Skript (bspw. mp4) in eine .zt Datel.
Download
ZQL Standalone Compiler wird von FXCM Seite herausgegeben.
Der Compiler ist in zip oder tar Daten-Formanten erhältlich.
Anforderungen
- Java JDK 6 (Wir empfehlen, dass Sie den Java JDK 6 Hotstop benutzen)
Installation
Extrahiere einfach den gewählten Download in das Verzeichnis ihrer Wahl. Du kannst ZQL Standalone Compiler auf jedem Betriebssystem, das zip oder tar Formate unterstützt, installieren. Schauen Sie sich die Veröffentlichungsnotizen an, um weitere Informationen zum Release zu erhalten.
Eine schnelle Tour
Jetzt, wo Sie den ZQL Standalone Compiler runtergeladen haben, sollten wir als nächstes über das Layout der Distribution reden und die Verzeichnisstruktur des Compilers, die Schlüssel Konfigurationsdateien, Protokoll Dateien und so weiter untersuchen.
Verzeichnis-Struktur
Verzeichnis |
Beschreibung |
lib/
|
Beinhaltet die Bibliothek der Compiler-Abhängigkeiten |
conf/
|
Beinhaltet wichtige Konfigurationsdateien, die in keinster Weise verändert werden sollten. |
run.bat
|
Das Run-Skript für Windows-Maschinen. |
run.sh
|
Das Run-Skript für Linux/Unix-Maschinen. |
Compiler-Optionen
Parameter Name
|
Kurzer Paramater Name
|
Wert
|
Beschreibung
|
help |
h |
- |
Druckt die Hilfe-Nachricht in der Konsole aus |
class |
c |
Irgendein String-Wert |
Der generierte Klassenname. |
package |
p |
Irgendeinen String in der Form eines Paket-Pfads |
Der generierte Paketname. |
output |
o |
Irgendein String-Wert |
Der Name der kompilierten Output-Datei ohne Erweiterung. |
zqh |
z |
Irgendeinen String in der Form eines Verzeichnis-Pfads (Relativ oder Absolut) |
Beinhaltet den Verzeichnis-Pfad mit benutzerdefierten zqh Dateien |
name |
n |
Der Name des gewünschten Skripts
sollten Sie leerstellen haben, stellen Sie sicher, dass sie zwischen " in Windows und \" in Linux sind
|
Der Name des Skriptes, sobald es im FXCM System geladen ist. |
description |
d |
Die Beschreibung vom gewünschten Skript
sollten Sie leerstellen haben, stellen Sie sicher, dass sie zwischen " in Windows und \" in Linux sind
|
Die Beschreibung des Skripts, sobald es im FXCM System geladen ist |
Beispiele
Kompiliere ein benutzerdefiniertes Experten-Skript |
Output |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" custom_expert.zql
|
my_expert.zl |
Kompiliere ein benutzerdefiniertes Experten-Skript mit einem benutzerdefinierten Header-Skript (bspw. im Header-Verzeichnis) |
Output |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" -z headers custom_expert.zql
|
my_expert.zl |
Zum Anfang