Guide de création de ZuluScripts
Dernière mise à jour le
Introduction
ZuluTrade a créé une nouvelle génération de scripts de trading qui permettent aux traders de créer et d'installer leurs propres robots et indicateurs de trading, directement via leur compte Trader ZuluTrade, sans avoir besoin de logiciel tiers ou d'inscription auprès de parties tierces!
ZuluScripts sont appliqués en utilisant le langage de requête de ZuluTrade (zql) qui a été développé de manière à être compatible avec les langages de script les plus couramment utilisés sur le marché du Forex.
Tout ce dont vous avez besoin pour utiliser ZuluScripts est un compte de Trader avec l'option ZuluTrade+ activée comme indiqué sur votre compte à l'onglet Paramètres, Paramètres de lien du compte de courtier.
Accès à l'éditeur de scripts de trading de ZuluTrade
Pour accéder aux scripts de trading de ZuluTrade, lorsque vous vous inscrivez sur ZuluTrade et vous liez votre compte à la plateforme ZuluTrade+, vous devez naviguer à la Station de Trading de ZuluTrade et cliquer sur "Scripts de trading".
Une nouvelle fenêtre pop-up intitulée "Client de trading" apparaîtra alors.
Sur la barre latérale en haut à droite de l'éditeur de scripts, vous trouverez 4 onglets différents qui changent le mode de fonctionnalité de l'éditeur de scripts.
La première met l'éditeur en mode Création de scripts, la seconde le met en mode Création d'indicateurs personnalisés, la troisième en mode Création d'en-têtes, et la dernière affiche le Glossaire du langage ZQL où vous trouverez des informations détaillées sur chacune des commandes du langage ZQL.
Haut
Créer un ZuluScript
Pour créer votre ZuluScript, vous devez cliquer sur le bouton 'Créer un Script' dans l'éditeur de scripts.
À la création du nouveau script, le panneau de l'éditeur est rempli d'un code zql modèle - c'est sur ce panneau où le code de script doit être saisi.
En bas de l'éditeur sur le côté droit il y a trois boutons qui vous aideront à créer votre ZuluScript: Enregistrer, Compiler et Déployer.
Enregistrer - le bouton Enregistrer enregistre votre script à n'importe quel moment, de sorte que les modifications et les progrès ne soient pas perdus.
Toutefois, l'enregistrement de la modification d'un script n'indique pas que cette modification est prête à l'emploi. Toute modification doit être compilée et déployée avant d'être disponible à l'usage.
Compiler - La compilation d'un script vérifiera le code pour des erreurs de syntaxe et, si la compilation est réussie, créera les fichiers binaires associés à notre script afin que celui-ce puisse être exécuté.
Si le processus de compilation échoue, les erreurs rencontrées seront affichées dans le panneau 'Sortie du Compilateur'.
Veuillez voir ci-dessous un exemple d'échec de compilation:
Déployer - Pour déployer un script, il doit d'abord avoir été compilé. Une fois cela fait et le fichier .zql créé, vous pouvez alors déployer le script et le rendre disponible pour une utilisation sur votre station de trading ZuluTrade!
Métadonnées - Sur le côté droit de la fenêtre, les métadonnées de votre script peuvent être modifiées.
Le champ 'Nom' est le nom qui sera affiché lorsque vous attachez le script sur un graphique.
Le champ 'Nom de fichier' est le nom du fichier avec lequel le script doit être stocké en interne sur le serveur de ZuluTrade. Il n'est pas obligatoire de modifier ce champ, mais si vous souhaitez le faire, n'oubliez pas qu'il doit se terminer par l'extension '.zql'.
Le champ 'Description' est une courte description qui sera visible lorsque vous attachez le script sur un graphique. La description peut vous aider à vous vous rappeler de la fonctionnalité exacte du script, veuillez donc inscrire tous les détails dont vous aurez besoin dans cet espace.
Liste des scripts - En dessous des champs Metadonnées, vous trouverez une liste de tous les scripts enregistrés. Veuillez noter que chaque nouveau script créé sera automatiquement enregistré.
Le script actuellement sélectionné (dont le code est affiché dans le panneau de l'éditeur) est mis en surbrillance
Supprimer un script - Si vous devez supprimer un script, il vous suffit de cliquer sur l'icône "x" à côté du nom du script, et confirmer la suppression dans la fenêtre pop-up pertinente.
Exemple de script - Considérons un exemple d'un script zql que vous pouvez utiliser à des fins de test:
#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);
}
À chaque cycle, ce script vérifie le nombre de positions ouvertes. S'il n'y a aucune position ouverte et certaines conditions d'indicateurs sont remplies, le script ouvre une nouvelle position. Autrement, s'il y a plusieurs positions ouvertes, il en ferme une.
REMARQUE: Ceci n'est pas une stratégie authentique de trading et ne sert qu'à des fins de démonstration.
Si à un moment donné vous avez besoin de créer un nouveau script, il vous suffit de cliquer sur le bouton 'Créer un Script' et recommencer ce processus.
Haut
Créer un indicateur personnalisé
Les indicateurs personnalisés peuvent être créés et utilisés dans un autre script de trading, étendant ainsi les indicateurs techniques déjà disponibles dans le langage.
Les indicateurs personnalisés peuvent être utilisés dans n'importe quel ZuluScript en utilisant la fonction iCustom() du langage ZQL après avoir enregistré, compilé et déployé votre indicateur personnalisé.
Remarque: Pour le moment, nous ne pouvons pas afficher les indicateurs personnalisés sur les graphiques.
Pour créer votre indicateur personnalisé, vous devez cliquer sur le bouton 'Créer un indicateur' dans l'éditeur de scripts.
Veuillez vous assurer que l'éditeur est mis en onglet Indicateurs personnalisés:
Vous devez alors modifier, nommer, enregistrer et déployer votre indicateur personnalisé lorsque vous êtes prêt!
Les commandes Modifier, Nommer, Enregistrer et Déployer fonctionnent de la même manière que celles des ZuluScripts.
Remarque: le nom de l'indicateur sera celui qui devra être utilisé plus tard lors de l'appel de la fonction iCustom() pour y accéder dans vos ZuluScripts.
considérons un exemple d'indicateur personnalisé que vous pouvez utiliser à des fins de test:
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);
}
Haut
Créer un en-tête
Ici, vous pouvez définir des fonctions réutilisables qui peuvent être importées et utilisées par n'importe quel script ou indicateur personnalisé.
Veuillez noter que les en-têtes ne sont pas des scripts ZQL et donc ne nécessitent pas de fonction init(), start() ou deinit().
Pour créer votre en-tête, vous devez cliquer sur le bouton 'Créer un en-tête' dans l'éditeur de scripts.
Veuillez vous assurer que l'éditeur est mis en onglet En-têtes:
Note I: C'est le nom du fichier qui doit être utilisé dans la directive #include<> dans le script dont vous aurez besoin pour accéder aux fonctions.
Note II: Les En-têtes sont uniquement enregistrés. Leur compilation et installation ne sont pas nécessaires car le code sera compilé et installé lorsqu'il est importé par un script ou un indicateur personnalisé.
L'utilisation de l'en-tête dans un nouveau script est aussi simple que l'inclusion du fichier d'en-tête, comme suit
#include "my_common_functions.zqh"
int init() {
}
int start() {
printMyBalance();
}
Haut
Glossaire
Dans le Glossaire, vous trouverez des informations détaillées sur chaque commande du langage ZQL.
Il suffit de cliquer sur une lettre en haut pour faire défiler automatiquement vers la liste de cette lettre. En outre, en cliquant sur les en-têtes des lettres de la liste, vous pouvez développer/réduire les fonctions de chaque lettre, et en cliquant sur le nom/en-tête d'une fonction, vous pourrez afficher/masquer les détails de cette fonction.
Haut
Utiliser un script sur votre compte de Trader
Lorsque vous aurez compilé et déployé avec succès un script, vous pouvez fermer la fenêtre de l'éditeur de scripts et attacher le script à un graphique.
Pour ce faire, vous devez naviguer à la paire de devise et à la période de votre choix. Pour cet exemple, sur le graphique de l'EURUSD avec une période de H1.
Cliquez sur le bouton Scripts de trading (mis en évidence dans la capture d'écran ci-dessous) et sélectionnez le script de votre choix.
Si vous gardez la souris sur le script, une info-bulle apparaît contenant la description du script.
Pour lancer le script sur le graphique/la Période sélectionnés, il vous suffit de cliquer sur le nom du script et une nouvelle fenêtre apparaîtra, contenant la description du script ainsi que tous les champs d'initialisation pour les variables externes du script.
Ayant réglé les paramètres selon vos besoins, vous devez ensuite cliquer sur le bouton "Démarrer" et le script est attaché sur le graphique!
Remarque: Le script sera exécuté sur ce graphique à partir des serveurs de ZuluTrade, indépendamment du fait que votre PC soit allumé ou que vous soyez connecté à votre compte ou non.
Onglet Scripts de Trading - Ici, vous pouvez passer en revue tous les scripts de trading actuellement actifs sur chaque graphique / période, ainsi que la version en cours d'exécution et la date de la dernière mise à jour.
Vous pouvez aussi accéder directement au graphique où le script est en cours d'exécution via l'icône Graphique.
Onglet Messages - Tous les messages de votre script, les impressions, les messages de ZuluTrade concernant votre script etc., apparaîtront dans cette section.
Haut
Arrêter et désinstaller un script
Vous pouvez arrêter et désinstaller un script à n'importe quel moment
Arrêter un script - Pour arrêter l'exécution d'un script sur un graphique / une période, il vous suffit de naviguer à l'onglet 'Scripts de Trading', cliquer sur le bouton 'x' sur la droite du script que vous souhaitez arrêter, et confirmer l'arrêt dans la fenêtre pop-up pertinente.
Remarque: Arrêter un script arrêtera uniquement son exécution sur un graphique / une période. Le script restera sur votre compte de trader et sur la liste vos scripts de trading
Désinstaller un script - Pour désinstaller un script, il suffit de naviguer à la section Scripts de trading, cliquer sur le bouton 'x' près de son nom, et confirmer la désinstallation dans la fenêtre pop-up pertinente.
Remarque: La désinstallation du script l'enlèvera uniquement de la liste des Scripts disponibles sur votre compte de trader, et ne supprimera pas le script de la fenêtre de l'éditeur de scripts.
Haut
Le Guide d'utilisation de ZQL Standalone Compiler
Débuter avec ZQL Standalone Compiler
ZQL Standalone Compiler est le mode autonome du ZQL Standalone Compiler que zulutrade propose dans sa plateforme web. Cela compilera tout script compatible ZQL (ex : mq4) vers un fichier .zl.
Telecharger
ZQL Standalone Compiler est distribué depuis le site de FXCMMarkets.
Le compilateur est disponible aux formats zip ou tar.
Prérequis
- Java JDK 6 (Nous vous recommandons d'utiliser le hotspot Java JDK 6)
Installation
Extrayez simplement votre téléchargement choisi dans le répertoire de votre choix. Vous pouvez installer ZQL Standalone Compiler sur n'importe quel système d'exploitation qui supporte les formats zip ou tar. Référez-vous aux Notes de versions pour plus d'informations sur les mises à jour.
Un tour rapide
Maintenant que vous avez téléchargé ZQL Standalone Compiler, la prochaine chose à discuter est la présentation de la distribution et explorer la structure des répertoires du compilateur, les fichiers de configuration clé, les fichiers de journalisation et ainsi de suite.
Structure de répertoire
Répertoire |
Description |
lib/
|
Contient les dépendances de bibliothèques du compilateur |
conf/
|
Continent des fichiers de configurations cruciaux qui ne devraient être altérés d'aucune façon. |
run.bat
|
Le script fonctionne sur les machines sous Windows |
run.sh
|
Le script fonctionne sur les machines sous Linux/Unix |
Options du compilateur
Paramètre Nom
|
Paramètre Prénom
|
Valeur
|
Description
|
help |
h |
- |
Affiche le message d'aide dans la console |
class |
c |
Toute valeur de chaîne de caractère |
Le nom généré de la classe. |
package |
p |
Toute chaîne de caractère de la forme d'un chemin de paquet |
Le nom du paquet généré |
output |
o |
Toute valeur de chaîne de caractère |
Le nom du fichier compilé sorti sans extension |
zqh |
z |
Toute chaîne de caractère de la forme du chemin du répertoire (relatif ou absolu) |
Inclut les chemins de répertoire avec les fichiers zqh modifiés |
name |
n |
Le nom désiré du script
Si vous avez des espaces, assurez vous de les mettre entre " pour Windows et entre \" pour Linux
|
Le nom du script à montrer une fois qu'il est chargé dans le système de FXCMMarkets |
description |
d |
La description désirée du script
Si vous avez des espaces, assurez vous de les mettre entre " pour Windows et entre \" pour Linux
|
La description du script à montrer une fois qu'il est chargé dans le système de FXCMMarkets |
Exemples
Compilez un script |
Sortie |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" custom_expert.zql
|
my_expert.zl |
Compilez un script personnalisé d'expert avec un en-tête de script personnalisé (ex : dans le répertoire des en-têtes) |
Sortie |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" -z headers custom_expert.zql
|
my_expert.zl |
Haut