Guide for opprettelse av Zulu-skript
Sist oppdatert den
Introduksjon
ZuluTrade har opprettet en ny generasjon trading-skript som lar deg som trader opprette og bruke egne tradingprogrammer og indikatorer direkte via trader-kontoen i ZuluTrade, uten behov for ekstern programvare eller tredjepartsregistreringer!
Zulu-skript implementeres med ZuluTrade Query Language (zql), som har blitt utviklet for å være kompatibelt med de vanligste skriptspråkene i valutamarkedet.
Alt du trenger å gjøre for å bruke Zulu-skript er en trader-konto med ZuluTrade+ aktivert, som vist under Innstillinger, Innstillinger for meglerkonto.
Åpne redigeringsprogrammet for trading-skript i ZuluTrade
For å åpne trader-skript i ZuluTrade må du være registrert hos ZuluTrade, og kontoen din må være tilkoblet plattformen ZuluTrade+. Du må gå til Trading Station og klikke på "trading-skript" .
Et nytt popup-vindu med tittelen "Trading-klient" åpnes.
Øverst i den høyre sidemenyen i redigeringsprogrammet for skript finner du 4 ulike faner for å endre redigeringsprogrammets modus.
Den første modusen åpner for å lage nye skript, den andre velger modus for å lage egendefinerte indikatorer, den tredje for å lage titler, og den siste åpner ZQLs begrepsliste med detaljert informasjon om hver kommando i ZQL-språket.
Topp
Lage et Zulu-skript
For å opprette Zulu-skript må du klikke på "Lage skript"-knappen i redigeringsprogrammet for skript.
Når du lager et nytt skript fylles redigeringsvinduet med forhåndsdefinert zql-kode – skriptkoden oppgis i dette vinduet.
Nedenfor redigeringsprogrammet, på høyre side, finner du tre knapper som brukes til oppretting av Zulu-skript – Lagre, Kompilere og Anvende.
Lagre – Lagre-knappen lagrer skriptet når du måtte ønske, slik at nye endringer ikke går tapt.
Når en endring lagres betyr ikke dette at endringen er klar til å tas i bruk. Alle endringer må kompileres og distribueres før de kan tas i bruk.
Kompilere – Når du kompilerer et skript kontrolleres koden for syntaksfeil og, hvis kompileringen er vellykket, opprettes de binære filene forbundet med skriptet slik at det kan utføres.
Hvis kompileringsprosessen misslykkes vil feilene som oppdages listes i vinduet "Kompileringsresultater".
Se eksemplet nedenfor om misslykket kompilering:
Anvende – For å distribuere skriptet må det først kompileres. Når dette er gjort og .zql-filen har blitt opprettet kan du Anvende skriptet slik at det blir tilgjengelig for å brukes i din ZuluTrade Trading Station!
Metadata – På høyre side av vinduet kan skriptets metadata endres.
Navnefeltet er det samme som vil vises når skriptet tilknyttes et diagram.
Filnavn-feltet viser navnet skriptet blir lagret under internt på ZuluTrade-serveren. Det er ikke nødvendig å endre dette feltet, men hvis du ønsker å endre det, husk at det må ende med suffikset ".zql".
Feltet "Beskrivelse" viser en kort beskrivelse som vil være synlig når du tilknytter skriptet til et diagram. Beskrivelsen kan være en nyttig påminnelse om skriptets funksjon, så bruk dette feltet til å oppgi nødvendige detaljer.
Skriptliste – Nedenfor feltet for metadata ser du en liste med alle skript som er lagret. Merk at alle nye skript som opprettes lagres automatisk.
Det valgte skriptet (koden vises i redigeringsvinduet) utheves.
Slette skript – Hvis du vil slette et skript trenger du bare å klikke på "x" ved siden av skriptnavnet og bekrefte handlingen i popup-vinduet som åpnes.
Eksempelskript – La oss se på et eksempel av et zql-skript, som du kan bruke til testing:
#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);
}
Dette skriptet sjekker antall åpne posisjoner i hver syklus. Hvis ingen er åpne og visse indikatorbetingelser oppfylles vil skriptet åpne en ny posisjon. Hvis ikke, hvis det finnes mange åpne posisjoner, lukkes én.
MERK: Dette er ikke en reell tradingstrategi, og er kun ment som en demonstrasjon.
Hvis du trenger å lage et nytt skript kan du klikke på "Lage skript"-knappen og starte denne prosessen på nytt.
Topp
Lage en egendefinert indikator
Egendefinerte indikatorer kan opprettes og brukes i andre trading-skript for å utfylle de tekniske indikatorene som allerede er tilgjengelig i språket.
Egendefinerte indikatorer kan brukes i alle Zulu-skript med ZQL-funksjonen iCustom() etter at indikatoren har blitt lagret, kompilert og distribuert.
Merk: Det er foreløpig ikke mulig å anvende egendefinerte indikatorer i diagrammet.
For å lage egendefinerte indikatorer, klikk på "Lage indikator" i skriptredigeringsprogrammet.
Sørg for at fanen for egendefinerte indikatorer er valgt i redigeringsprogrammet:
Du må deretter Lagre og Distribuere den egendefinerte indikatoren når du er klar!
Du kan redigere, navngi, lagre og distribuere på nesten samme måte som med Zulu-skript
Merk: Navnet på indikatoren vil være det som senere anmoder iCustom()-funksjonen om å åpne den i ditt Zulu-skript.
La oss se på et eksempel på en egendefinert indikator, som du kan bruke til testing:
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);
}
Topp
Lage en topptekst
Her kan du definere gjenbrukbare funksjoner som kan importeres og brukes av alle skript og egendefinerte indikatorer.
Merk at Topptekst ikke er ZQL-skript, og krever ikke init(), start() eller deinit()-funksjon.
For å lage en topptekst, trykk på "Lag tittel" i skriptredigeringsprogrammet.
Sørg for at Topptekst-fanen er valgt i redigeringsprogrammet:
Merk I: Dette er filnavnet som skal brukes i #include<> -direktivet i skriptet, som du vil trenge for tilgang til funksjonen.
Merk II: Topptekst vil kun lagres. Det er ikke nødvendig å kompilere eller distribuere, da koden vil bli kompilert og distribuert når den importeres av et skript eller egendefinert indikator.
Å bruke toppteksten i et nytt skript er like enkelt som å inkludere topptekstfilen på følgende måte
#include "my_common_functions.zqh"
int init() {
}
int start() {
printMyBalance();
}
Topp
Begrepsliste
I begrepslisten finner du detaljert informasjon om alle kommandoer i ZQL-språket.
Du kan klikke på bokstavene øverst for å gå automatisk til bokstavens liste. Du kan også, ved å klikke på bokstavoverskriften i listen, utvide/minimere funksjonene for hver bokstav, og ved å klikke på funksjonenes navn/topptekst kan du utvide/minimere funksjonenes detaljer.
Topp
Bruke et skript i traderkontoen din
Når et skript har blitt kompilert og distribuert kan du lukke vinduet for skriptredigeringsprogrammet og tilordne skriptet til et diagram.
For å gjøre dette må du velge valutaparet og perioden du ønsker. I dette eksemplet EURUSD-diagrammet med perioden H1.
Klikk på knappen for trading-skript (uthevet i skjermbildet nedenfor) og velg skript.
Hvis du beveger musepekeren over skriptet vil du se et verktøytips med en beskrivelse av skriptet.
For å ta i bruk skriptet i det valgte diagrammet/perioden, klikk på skriptets navn slik at et nytt vindu åpnes, hvor du kan se en beskrivelse av skriptet samt initialiseringsfelter for skriptets eksterne variabler.
Når du har justert parametrene, klikk på "Start" slik at skriptet tilordnes diagrammet!
Merk: Skriptet vil kjøre for dette diagrammet fra ZuluTrades servere, uavhengig av om PCen din er av eller på, og om du er innlogget på kontoen din eller ikke.
Fane for trading-skript – Her kan du gjennomgå alle aktive trading-skript for alle diagrammer/perioder, samt gjeldende versjon og tidspunkt for siste oppdatering.
Du kan også navigere direkte til diagrammet hvor skriptet kjører via diagramsymbolet.
Fane for meldinger – Alle meldinger fra skriptet, utskrifter, meldinger fra ZuluTrade om skriptet osv. vil vises her.
Topp
Stoppe og fjerne distribusjon av et skript
Du kan stoppe og fjerne distribusjon for et skript når som helst
Stoppe et skript – For å stoppe et skript fra å kjøre i et diagram/periode trenger du bare å navigere til fanen "Trading-skript" og klikke på "x" til høyre for skriptet du ønsker å stoppe, og deretter bekrefte handlingen i popup-vinduet som åpnes.
Merk: Når du stopper et skript vil det kun stoppes fra å kjøre i et diagram/periode. Skriptet vil bevares i traderkontoen din og under trading-skript
Fjerne distribusjon av skript – For å fjerne distribusjon av et skript må du gå til området for trading-skript, klikke på "x" ved siden av navnet og bekrefte handlingen i popup-vinduet som åpnes.
Merk: Fjerning av distribusjon av skriptet vil bare fjerne det fra listen over tilgjengelige skript i traderkontoen din, skriptet vil ikke slettes fra skriptredigeringsvinduet.
Topp
ZQL Standalone Compiler brukermanual
Komme i gang med ZQL Standalone Compiler
ZQL Stanalone Compiler er frittstående modus av ZQL Script Compiler som zulutrade tilbyr på sin web-plattform. Det vil utarbeide enhver ZQL kompitable skript (f.eks. Mq4) til en .zl fil.
Last ned
ZQL Standalone Compiler er distribuert fra NatureForex sin side.
Utarbeideren er tilgjengelig som zip eller tar filformater.
Krav
- Java JDK 6 (vi anbefaler at du bruker Java JDK 6 hotspot)
Installasjon
Helt enkelt pakk ut din valgte nedlastning til en mappe av ditt valg. Du kan installere ZQL Standalone Compiler på ethvert operativsystem som støtter zip eller tar formater. Vennligst se Utgivelses Notater for mer informasjon relatert til utgivelsen.
En Hurtigomvisning
Nå som du har lastet ned ZQL Standalone Compiler, blir det neste å diskutere oppsettet av distribusjonen og utforske utarbeiderens katalogstruktur, viktige konfigurasjonsfiler, loggfiler og så videre.
Mappestruktur
Mappe |
Beskrivelse |
lib/
|
Inneholder Utarbeiderens bibliotek avhengigheter |
conf/
|
Inneholder viktige konfigureringsfiler som ikke bør endres på noen måte. |
run.bat
|
Kjøreskript for Windows maskiner. |
run.sh
|
Kjøreskript for Linux/Unix maskiner. |
Utarbeidings Alternativer
Parameter Navn
|
Parameter Kort Navn
|
Verdi
|
Beskrivelse
|
help |
h |
- |
Printer hjelp melding til konsolen. |
class |
c |
Enhver strengverdi |
Det genererte klassenavnet. |
package |
p |
Enhver streng i form av en package path |
Det genererte pakkenavnet. |
output |
o |
Enhver strengverdi |
Navnet på den utarbeidede utgangsfilen uten forlengelse |
zqh |
z |
Enhver streng i form av en katalogbane (relativ eller absolutt) |
inkluder katalogbane med egendefinerte zqh filer |
name |
n |
Ønsket skript navn
om du har mellomrom, pass på å bruk det i mellom " i Windows, og \" i Linux
|
Navnet på skriptet som vises når det er lastet i NatureForex sitt system |
description |
d |
Den ønskede skript beskrivelsen
om du har mellomrom, pass på å bruk det i mellom " i Windows, og \" i Linux
|
Beskrivelsen av skriptet som vises når det er lastet i NatureForex sitt system |
Eksempler
Utarbeid et egendefinert ekspert skipt |
Utgang |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" custom_expert.zql
|
my_expert.zl |
Utarbeid et egendefinert ekspert skript med egendefinert topptekst skript (f.eks. I topptekst katalogen) |
Utgang |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" -z headers custom_expert.zql
|
my_expert.zl |
Topp