ZuluSkripts Kreationsguide
Senast uppdaterad
Introduktion
ZuluTrade har skapat en ny generation av handelsskript, som tillåter handlare att skapa och distribuera sina egna handelsrobotar och indikatorer, direkt via deras Zulu Tradekonto, utan att det behövs någon extern programvara eller 3: e parts registrering!
ZuluScripts genomförs med hjälp av Zulu Query Language (zql) som har utvecklats för att vara kompatibel med de vanligaste skriptspråk i Forex marknaden.
Allt du behöver göra för att kunna använda ZuluScripts är ett handelskonto med alternativet Zulu + aktiverat som visas under fliken Inställningar, Mäklarkonto-inställningar, i ditt konto.
Få åtkomst till ZuluTrade Handelskript Redaktör
För att få tillgång till ZuluTrade Handelsskripts, när du har registrerat dig hos ZuluTrade och länkat ditt konto med ZuluTrade + plattformen, måste du navigera till ZuluTrade Handelsstation och klicka på "Handelsskripts".
Ett nytt pop-up fönster visas då med titeln "Handelsklient".
ovanpå högra sidofältet av Skriptsredaktör, kan du hitta 4 olika flikar som växlar funktionalitet för Skriptredaktören.
den första ställer in läget för att skapa skript, det andra ställer in läget till skapandet av anpassade indikatorer, den tredje till skapandet av headers och den sista tar upp ZQL Ordlista, där du hittar detaljerad information för varje kommando i ZQL språket.
Topp
Skapa ZuluSkript
För att skapa dina ZuluSkript , måste du klicka på knappen "" Skapa skript "" på Skriptsredaktör.
När du skapar den nya skript , blir redaktörrutan fylld med en mall zql koder - det är på denna panel där skriptet koden ska matas in nedan.
Under redaktören på höger sida finns det tre knappar , som kommer att hjälpa till att skapa dina ZuluSkript - Spara , Sammanställas och Utvecklas.
Spara - . knappen Spara sparar dina skript på varje given tidpunkt, så att eventuella förändringar och framsteg inte går förlorade.
Men sparas en ändring på ett skript betyder inte det att denna förändring är klar för användning . Alla ändringar måste Sammanställas och Utvecklas innan att vara tillgängliga för användning.
Sammanställa - . Bygga skript kommer att kontrollera koden för syntaxfel och om sammanställningen är framgångsrik , då kommer det även skapas binära filer som hör till skripten så att den kan verkställas
Om sammanställningsprocessen misslyckas , kommer de fel som uppstått listas i ""Sammanställningsproduktion"" panelen
se nedan ett exempel på en misslyckad sammanställning :
Utveckla - för att sätta in ett skript , måste det först ha sammanställts. När detta har skett och det .zql filen har skapats , kan du sedan Distribuera skriptet och ha den tillgänglig för användning på din ZuluTrade Trading Station
metadata ! - på den högra sidan av fönstret metadata kan ditt skript ändras.
'Namn' fältet är det namn som kommer att visas när du sätter skriptet till ett diagram.
Filnamnfältet är filnamnet med vilken skriptet skall lagras internt i Zuluserver. Det är inte obligatoriskt att ändra på detta område , men om du vill göra det, tänk på det måste sluta med "". zql"" Suffix.
""Beskrivnings ""-fältet är en kort beskrivning som kommer att synas när du sätter skriptet till ett diagram. Beskrivningen kan hjälpa till att påminna dig exakt om skriptets funktionalitet, så vänligen utarbeta några detaljer som du behöver i detta utrymme .
Skriptlista - Under metadata fältet finns en lista över alla sparade skript som tillhandahålls . Observera att varje nytt skript som skapas , sparas automatiskt
Det valda skript (vars kod visas i redaktörpanelen) är markerat
Radera ett manus -. Ska du ta bort ett manus, är det bara att klicka på ""x"" -ikonen bredvid skriptnamn och bekräfta raderingen på den aktuella pop-up.
Exempel Skript - Låt oss titta på ett exempel zql skript , som du kan använda för testning:
#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);
}
Dessa skriptkontroller i varje cykel för antalet öppna positioner. Om det inte finns någon öppen position och vissa indikator villkor är uppfyllda , öppnas skriptet en ny position. Annars, om det finns många öppna positioner stängs den ena
. OBS: Det är inte en riktig handelsstrategi och är endast i demonstrationssyfte.
Om du vid något tillfälle måste du skapa ett nytt skript, kan du klicka på "" Skapa Skript ""-knappen och starta processen igen .
"
Topp
Skapa en Anpassad Indikator
Anpassade indikatorer kan skapas och användas i en annan handelsskript och utvidgar de tekniska indikatorer som redan finns i språket.
Anpassade indikatorer kan användas i alla ZuluScript och iCustom() ZQL funktionen efter att ha sparat, sammanställt och utvecklat din anpassad indikator
Notera: För tillfället kan vi inte göra anpassade indikatorer på diagrammen
för att skapa din anpassade indikator måste du klicka på " Skapa Indikator " knappen under Skriptsredaktör.
Se till redaktören kopplas till anpassade indikatorer-fliken:
Du behöver sedan Redigera, Namnge, Spara och Distribuera din egen indikator när du är klar!
Redigera, Namnge, Spara och Distribuera arbete på ett liknande sätt som ZuluScripts
Notera: Namnet på indikatorn kommer att vara den som ska användas senare i iCustom funktionen() för att komma åt den på dina ZuluSkripts.
Låt oss titta på ett exempel av anpassad indikator, som du kan använda för testning:
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
Skapa en Header
Här kan du definiera återanvändbara funktioner som kan importeras och användas av alla skript eller anpassade indikatorer.
Observera att Hearders är inte ZQL skripts så de kräver inte en init(), start() eller deinit() funktion.
för att skapa din Header, måste du klicka på "Skapa Header"-knappen på Skriptsredaktör.
Se till att redaktören är inställd till Header:
Notera I: Det filnamnet som ska användas i #include<> direktiv om skript, som du behöver för att komma åt dessa funktioner.
Notera II: Headers sparas endast. Sammanställning eller utvecklingen ärr inte nödvändigt eftersom koden kommer att sammanställas och användas vid import av ett skript eller anpassad indikator.
Att använda headern i ett nytt Skript är så enkelt som att inkludera header-filen enligt följande
#include "my_common_functions.zqh"
int init() {
}
int start() {
printMyBalance();
}
Topp
Ordlista
Inne i ordlistan kan du hitta detaljerad information om varje kommando i ZQL språk.
Klicka bara på bokstäverna på toppen för att rulla på listan i bokstavsordning. Dessutom, genom att klicka på headers i listan, du kan expandera/kollapsa varje bokstavs funktioner och genom att klicka på ett funktionsnamn/ header du kan expandera/kollapsa funktionsdetaljer.
Topp
Med hjälp av ett Skript på ditt Handelskonto
Efter att ett skript framgångsrikt sammanställts och distribuerats, kan du stänga skriptredaktör-fönstret och lägga till skriptet till ett diagram.
För att göra detta måste du navigera till det valutapar och tid som du väljer. I det här exemplet på EURUSD diagrammet med en period av H1.
Klicka på knappen Handelsskripts (markerat på skärmen nedan) och välj det skriptet som du vill ha.
Om du drar med musen över skriptet, kommer ett verktygstips visas innehållande en skriptbeskrivning.
För att starta skriptet på det valda Diagrammet/Perioden, klicka bara på skriptnamnet och ett nytt fönster kommer att visas, som innehåller en beskrivning av skriptet och eventuella initieringsfält för externa variabler i skriptet.
Genom att justera parametrar efter dina behov, kan du sedan klicka på "Start "-knappen , och skriptet är flyttat till diagrammet.
Notera: Skriptet kommer att köras på det här diagrammet från ZuluTrades-servrar, oavsett om datorn slås på eller om du är inloggad på ditt konto eller inte.
Fliken Handelsskript - Här kan du se alla de aktiva handelsskript på varje diagram, tillsammans med den nuvaranade versionen och tidpunkten för senaste uppdateringen.
Du kan även navigera direkt till diagramet där Skript körs via ikonen Diagram.
Meddelandenfliken - Eventuella meddelanden från dina skript, grafik , meddelanden från Zulu om din Script etc kommer att visas på denna flik.
Topp
Stanna och ta bort ett Skript
Du kan Stoppa och Utveckla ett skript vid varje given tidpunkt
Stoppa ett skript - För att stoppa ett skript från att köras på ett Diagram/Period är allt du behöver göra att navigera till fliken "Handelsskript", klicka på "x"-knappen till höger om Skript om du vill sluta, och bekräfta Stopp vid den aktuella pop-up.
Notera: Stoppa ett skript, kommer bara stoppa den skriptet från att köras på ett Diagram/ Period. Skriptet kommer att finnas kvar på ditt Handelskonto och på dina Handelsskript
Undeploying en Script - För att ta bort ett skript är allt vi behöver göra att gå till Handelsscriptspråk, klicka på "x" knappen nära namnet, och bekräfta Ta bort på relevant pop-up
Notera: Genom att ta bort skriptet så kommer det bara ta bort den från listan över tillgängliga skript på ditt Handelskonto, det kommer inte att ta bort skriptet i Skriptredigeraren.
Topp
ZQL Standalone Compiler Användarhandbok
För att komma igång med ZQL Standalone Compiler
ZQL Standalone Compiler är det fristående läget i ZQL Script compiler som ZuluTrader erbjuder i sin webbplattform. Den sammanställer all ZQL kompatibel skrift (t.ex. mq4) till en .zl fil.
Ladda ner
ZQL Standalone Compiler distribueras från Moneta Marketss webbplats.
Kompilatorn är tillgänglig i zip eller tar tar-format
Förutsättningar
- Java JDK 6 (vi rekommenderar att du använder Java JDK 6 hotspot)
Installation
Extrahera helt enkelt din valda nedladdning till den katalog du väljer. Du kan installera ZQL Kompilatorn i samtliga operativsystem som stöder zip eller tar-format. Se Versionskommentarerna För mer information gällande utgåvan.
Snabbintroduktion
Nu när du laddat ner ZQL Standalone Compiler, är nästa sak att tänka på layouten av distributionen samt att utforska kompilatorns katalogstruktur, kritiska konfigurationsfiler, loggfiler och så vidare.
Katalog Struktur
Katalog |
Beskrivning |
lib/
|
Innehåller kompilatorns biblioteksberoenden. |
conf/
|
Innehåller kritiska konfigurationsfiler som inte bör ändras på något sätt. |
run.bat
|
Run skript för Windows- maskiner. |
run.sh
|
Run skript för Linux / Unix-maskiner. |
Compiler alternativ
Parameternamn
|
Parameter Kortnamn
|
Värde
|
Beskrivning
|
help |
h |
- |
Skriver ut hjälpmeddelandet till konsolen |
class |
c |
Varje strängvärde |
Det skapade class name. |
package |
p |
Varje sträng i form av en package path |
Det skapade package name. |
output |
o |
Varje strängvärde |
Name på den sammanställda output filen utan förlängning |
zqh |
z |
Varje sträng i form av en sökväg (relativ eller absolut) |
Inkludera sökvägen med anpassade zqh filer |
name |
n |
Önskat skript namn
Om du har mellanslag se till att du satte dem mellan " i Windows och \" i Linux
|
Skript name att visas när den laddats i Moneta Marketss system |
description |
d |
Önskad skript beskrivning
Om du har mellanslag se till att du satte dem mellan " i Windows och \" i Linux
|
The description av skriptet att visas när den laddats i Moneta Markets's systemet |
Exemplar
Kompilera ett anpassat expertskrift |
Output |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" custom_expert.zql
|
my_expert.zl |
Kompilera ett anpassat expertskrift med anpassad header script (t.ex. i headerkatalogen) |
Output |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" -z headers custom_expert.zql
|
my_expert.zl |
Topp