ZuluScript Creation Guide

Sidst opdateret den

Indledning

ZuluTrade har skabt en ny generation af handelsscripts, der tillader tradere at oprette og installere deres egne handelsrobotter og indikatorer direkte via deres ZuluTrade Trader-konto uden behov for nogen ekstern software eller tredjepartsregistreringer!
ZuluScripts installeres ved hjælp ZuluTrade Query Language ( zql), som er udviklet til at være kompatibel med de mest almindeligt anvendte scripting-sprog på Forex-markedet.

Alt, hvad du behøver for at bruge ZuluScripts, er en Trader-konto med funktionen ZuluTrade+ aktiveret som vist på fanen Indstillinger, Link-indstillinger for Broker-konto, på din konto.

Adgang til ZuluTrade Trading Scripts Editor

For at få adgang til ZuluTrade Trading Scripts når du har tilmeldt dig ZuluTrade og linket din konto til ZuluTrade+ platformen, skal du navigere til ZuluTrade Trading Station og klikke på "Trading Scripts" (handels-scripts).
Et nyt pop-up vindue med titlen 'Trading Client' (handelsklient) åbnes derefter.
På den øverste højre sidebjælke i Scripts Editor kan du finde fire forskellige faner, der skifter funktionalitet i Scripts Editor.
Den første sætter tilstanden til oprettelse af scripts, den anden sætter tilstanden til oprettelsen af ​​brugerdefinerede indikatorer, den tredje til oprettelsen af ​​titler, og den sidste åbner ZQL-ordlisten, hvor du kan finde detaljerede oplysninger om hver enkelt kommando i ZQL-sproget.

Top

Oprettelse af et ZuluScript

For at oprette dit ZuluScript skal du klikke på knappen ’Create Script' (Opret script) i Scripts Editor.

Når det nye script oprettes, bliver editorens rude fyldt med en zql-kodeskabelon - det er på dette panel, at script-koden skal indtastes


På højre side under editoren er der tre knapper, som vil hjælpe med at oprette dint ZuluScript – Save (gem) Compile (kompiler) og Deploy(implementer)


Save - . Save-knappen gemmer dit script, så eventuelle ændringer og fremskridt ikke går tabt.

Dog vil lagring af en script-ændring ikke indikerer, at denne ændring er klar til brug. Enhver ændring skal kompileres og indsættes, før den er klar til brug.

Compile – Kompilering af et script vil tjekke koden for syntaksfejl, og hvis kompileringen er en succes, oprettes de binære filer, der er forbundet med vores script, så det kan eksekveres.
Hvis kompilationsprocessen mislykkes, vil de identificerede fejl blive opført i panelet 'Compiler Output' (kompilerings-outout)

se et eksempel på en mislykket kompilering nedenfor :
Deploy – Et script skal kompileres, før det kan installeres . Når dette er gjort, og zql-filen er blevet oprettet, kan du derefter installere scriptet og have det til rådighed til brug på din ZuluTrade Trading Station


Metadata ! – Du kan redigere metadataene til dit script på højre side af vinduet.
Feltet ’Name’ (navn) er det navn, der vil blive vist, når du knytter scriptet til et liste .
Feltet ’Filename’ (filnavn) er det filnavn, som scriptet lagres under internt på ZuluTrades server. Det er ikke obligatorisk at ændre dette felt, men hvis du ønsker at gøre det, skal du huske det skal slutte med endelsen . Zql.
Feltet ' Description' (beskrivelse) er en kort beskrivelse, der vil være synlig, når du knytter scriptet til et liste. Beskrivelsen kan hjælpe med at minde dig om scriptets nøjagtige funktionalit, så du bedes uddybe eventuelle oplysninger, du har brug for i dette felt.

List of Scripts (liste over scripts) – Under metadatafelterne vises en liste over alle de gemte scripts. Bemærk, at hvert nyt script, der oprettes, gemmes automatisk
Det aktuelt valgte script (hvis kode vises i editorruden) er fremhævet
Sletning af et script – Hvis du er nødt til at slette et script, skal du blot klikke på ""x""-ikonet ved siden af scriptets navn og bekræfte sletningen på det relevante pop-up-vindue.
Script-eksempel - Lad os se et eksempel på et zql-script, som du kan bruge til testformål:

#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);
}
I hver cyklus kontrollerer dette script antallet af åbne positioner. Hvis der ikke er nogen åbne positioner, og visse indikatorpositioner er opfyldt, åbner scriptet åbner en ny position. Hvis der omvendt er mange åbne positioner, det lukker det en
BEMÆRK: Det er ikke en reel handelsstrategi og er kun til demonstration .

Hvis du på noget tidspunkt er nødt til at oprette et nyt script, skal du blot klikke på knappen 'Create Script' og starte denne proces igen.

Top

Oprettelse af en brugerdefineret indikator

Brugerdefinerede indikatorer kan oprettes og anvendes i et andet handelsscript, hvilket udvider de tekniske indikatorer, der allerede findes på det sprog .

Brugerdefinerede indikatorer kan bruges i ethvert ZuluScript med iCustom () ZQL-funktionen efter at have gemt, kompileret og installeret din brugerdefinerede indikator

Bemærk: I øjeblikket kan vi ikke vise brugerdefinerede indikatorer på listerne.


Opret din brugerdefinerede indikator ved at klikke på knappen 'Create Indicator' k(opret indikator) i Scripts Editor.

Sørg for at Eeditoren er sat til fanen for brugerdefinerede indikatorer:

Du kan skal dernæst redigere, døbe, gemme og installere din brugerdefinerede indikator, når du er klar!

Rediger, Indikatorens navn vil være det, der bruges senere til at kontakte iCustom () for at få adgang til det på dine ZuluScripts.


Lad os se på et eksempel på en brugerdefineret indikator, som du kan bruge til testformål :

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);
}

Top

Oprettelse af en header

Her kan du definere genanvendelige funktioner, der kan importeres og bruges af ethvert script eller brugerdefineret indikator.

Bemærk, at headere ikke er ZQL-scripts, så de ikke kræver en init (), start () eller de-init () funktion .


For at oprette dit header, skal du klikke på knappen 'Create Header' (opret header) i Scripts Editor.

Sørg for at editeren er sat til fanebladet Headers (header):
Note I: Det er filnavnet, der skal anvendes i # include <> direktivet på det script, du skal bruge til at tilgå funktionerne

Bemærk II: headere gemmes kun. Kompilering eller implementering er ikke nødvendig, da koden vil blive udarbejdet og anvendt under import af et script eller brugerdefineret indikator.



Brug af headeren i et nyt script er så simpelt som at inkludere header-filen på følgende måde

#include "my_common_functions.zqh"

int init() {
}

int start() {
printMyBalance();
}

Top

Ordliste

I ordlisten (glossary) kan du finde detaljerede oplysninger om hver enkelt kommando i ZQL-sproget .

Du skal blot klikke på bogstaverne øverst for automatisk at gå til det pågældende bogstavs listevisning . Ved at klikke på headeres bogstaver på listen, kan du udvide /skjule hvert bogstavs funktioner og ved at klikke på en funktions navn /header kan du udvide /skjule funktionens detaljer.

Top

Brug af et script på din Trader-konto

Når et script er blevet kompileret og installeret, kan du lukke Script Editor og knytte scriptet til en liste.

For at kunne gøre dette, er du nødt til at navigere til det ønskede valutapar og periode. I dette eksempel er det EURUSD-listen med perioden 1. halvår.

Klik på knappen Trading Scripts (handels-scripts) fremhævet i skærmbilledet nedenfor )), og vælg det ønskede script.

Hvis du holder musen hen over script, vises et værktøjstip, der indeholder en beskrivelse af scriptet.


For at starte scriptet på den valgte liste/periode, skal du blot klikke på scriptets navn,hvorefter et nyt vindue åbnes med en beskrivelse af scriptet samt eventuelle initialiseringsfelter for de eksterne variabler i scriptet.


Når parametrene er justeret i henhold til dine behov, skal derefter klikke på "Start"-knappen for at knytte scriptet til listen

Bemærk : scriptet vil køre på denne liste fra ZuluTrades servere, uanset om din pc er tændt, eller om du er logget ind på din konto eller ej.

Fanen Trading Scripts (handels-scripts) - Her kan du gennemgå alle de aktuelt aktive handels-scripts på hver liste/periode, sammen med den kørende version og tidspunktet for sidste opdatering.

Du kan også navigere direkte til den liste, hvor scriptet kører, via Chart-ikonet


Fanen Messages (beskeder) - Eventuelle beskeder fra dit script, udskrifter, beskeder fra ZuluTrade vedrørende dit script etc. vil blive vist i denne sektion.

Top

Stop og afinstaller et script

Du kan stoppe og afinstallere et script på ethvert givet tidspunkt


Stop et Script - For at stoppe et script fra at køre på en liste /​​periode skal du blot navigere til fanen ' Trading Scripts ' og klikke på "x" knappen på højre side af det script du ønsker at stoppe, og bekræft afbrydelsen på det relevante pop-up-vindue.

Bemærk : Hvis et script stoppes, vil det kun blive stoppet fra at køre på en listed/periode . Scriptet vil forblive på din Trader-konto og på dine handels-scriåts


Afinstallation af et script - For at afinstallere et script, skal du blot navigere til Trading Scripts og klikke på "x" knappen nær sit navn, og bekræfte afinstallationen på det relevante pop-up-vindue

Bemærk: Afinstallation af scriptet vil blot fjerne det fra listen over tilgængelige scripts på din Trader-konto, det sletter ikke scriptet fra Script Editor-vinduet.

Top

Brugervejledning for ZQL Standalone Compiler

Kom i gang med ZQL Standalone Compiler

ZQL Standalone Compiler er den uafhængige tilstand for ZQL Script compileren, som zulutrade tilbyder på deres web-platform. Det vil kompilere ethvert ZQL-kompatibelt script (f.eks. mq4) til en .zl fil.

Download

ZQL Standalone Compiler distribueres fra ZuluTrades hjemmeside.

Compileren er til rådighed i zip eller tar filformater

MD5 SHA1
zql-standalone-compiler-stable.zip zql-standalone-compiler-stable.zip.md5 zql-standalone-compiler-stable.zip.sha1
zql-standalone-compiler-stable.tar.bz2 zql-standalone-compiler-stable.tar.bz2.md5 zql-standalone-compiler-stable.tar.bz2.sha1

Krav

  • Java JDK 6 (vi anbefaler at du anvender Java JDK 6 hotspot)

Installation

Simpelt hen udpak dit valgte download til en mappe efter dit valg. Du kan installere ZQL Standalone Compiler på ethvert operativ system, som understøtter zip- og tar-formater. Se i versionsnoterne for yderligere oplysninger i forhold til versionen.

En hurtig rundtur

Nu da du har downloadet ZQL Standalone Compiler, er næste trin at diskutere layoutet for distributionen og udforske compilerens mappe-struktur, nøglekonfigurations-filer, log-filer og så videre.

Vejviser-struktur
Vejviser Beskrivelse
lib/
Indeholder compilerens bibliotek-afhængigheder.
conf/
Indeholder vigtige konfigurationsfiler, som ikke bør ændres på nogen måde.
run.bat
Run-scriptet for Windows maskiner.
run.sh
Run-scriptet for Linux/Unix maskiner.
Compiler-muligheder
Parameter navn
Parameter kort navn
Værdi
Beskrivelse
help h - Udskriver hjælpebeskeden til konsollen.
class c Enhver tråd-værdi Det genererede klassenavn
package p Enhver tråd i form af en pakke-sti Det genererede pakkenavn
output o Enhver tråd-værdi Navnet på den kompilerede output-fil uden udvidelse
zqh z Enhver tråd i form af en mappe-sti (relativ eller absolut) Inkluder mappe-sti med tilpassede zqh-filer
name n

Navnet for det ønskede script

Hvis du har mellemrum, så vær sikker på at sætte det mellem " i Windows og \" i Linux

Navnet på scriptet til at vises når det er indlæst i ZuluTrades system
description d

Beskrivelsen af det ønskede script

Hvis du har mellemrum, så vær sikker på at sætte det mellem " i Windows og \" i Linux

Beskrivelsen af scriptet til at vises når det er indlæst i ZuluTrades system
Eksempler
Kompiler et tilpasset ekspert-script Output
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" custom_expert.zql
my_expert.zl
Kompiler et tilpasset ekspert-script med et tilpasset sidehoved-script (f.eks. i mappen for sidehoveder) Output
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" -z headers custom_expert.zql
my_expert.zl
Top