Vodič za ustvarjanje ZuluScript-a
Nazadnje posodobljeno
Predstavitev
ZuluTrade je predstavil novo generacijo skriptov za trgovanje, ki trgovalcem omogočajo ustvarjanje in uvajanje lastnih trgovalnih robotov ter indikatorjev, neposredno preko njihovega ZuluTrade trgovalnega računa, brez, da bi pri tem potrebovali kakršnokoli dodatno programsko opremo ali registracijo preko tretjih strank!
ZuluScripts se izvajajo preko ZuluTrade Query Language (zql), ki smo ga razvili zaradi združljivosti z najpogosteje uporabljenimi skriptnimi jeziki na trgih Forex.
Vse kar morate storiti za začetek uporabe ZuluScripts je, da odprete trgovalni račun, v katerem omogočite možnost ZuluTrade+ kot je to prikazano v zavihku Nastavitve, Nastavitve povezav posredniškega računa, v vašem računu.
Dostopanje do ZuluTrade urejevalnika skriptov
Za dostopanje do ZuluTrade trgovalnih skriptov morate, potem, ko se prijavite v ZuluTrade in račun povežete s platformo ZuluTrade+, le poiskati ZuluTrade trgovalno postajo in klikniti na zavihek 'Trgovalni skripti'.
Prikazalo se bo novo pojavno okno, imenovano 'Trgovalni odjemalec'.
Na vrhu desne stranske vrstice urejevanlika skriptov lahko najdete 4 različne zavihke, v katerih lahko izbirate med načini delovanja urejevalnika skriptov.
Prvi način nastavi protokol ustvarjanja skript, drugi nastavi način ustvarjanja indikatorjev po meri, tretji način omogoča ustvarjanje glav, zadnji pa prikaže ZQL glosar, v katerem lahko najdete podrobne informacije o slehernem ukazu ZQL jezika.
Na vrh
Ustvarjanje ZuluScripta
Če želite ustvariti lastni ZuluScript, le kliknite na gumb 'Ustvari skript' v urejevalniku skript.
Pri ustvarjanju novega skripta se v podoknu urejevalnika izpiše predloga zql kode - je na plošči v katero vnašate kodo skripta
Pod urejevalnikom in na desni strani so trije gumbi, s katerimi si lahko pomagate pri ustvarjanju vaše ZuluScript - Shrani, Prevedi in Uvedi.
Shrani - gumb Shrani omogoča shranjevanje vašega skripta v vsakem trenutku, zato se nobena sprememba ali posodobitev ne bo izgubila.
Vsekakor pa shranjevanje spremembe skripta še ne pomeni, da je ta že primeren za uporabo. Vsako spremembo morate pred uporabo prevesti in uvesti.
Prevedi - Prevajanje skripta preveri kodo glede napak v sintaksi in uspešnosti zbiranja, ustvari datoteke z binarnim zapisom, ki se lahko povezujejo z našim skriptom, zaradi česar se slednji lahko izvede.
Če se postopek prevajanja ne izvede uspešno, si v plošči 'Rezultati prevajanja' lahko ogledate seznam napak.
Spodaj si lahko ogledate primer neuspešnega prevajanja:
Uvedi - Če želite uvesti skript, ga morate najprej prevesti. Ko je skript preveden in se ustvari zql datoteka ga lahko uvedete in omogočite njegovo izvajanje v ZuluTrade trgovalni postaji!
Meta podatki - Na desni strani okna lahko spreminjate meta podatke vašega skripta.
V polju 'Ime' je navedeno ime, ki bo prikazano, ko boste skript priklopili grafu.
Polje 'Ime datoteke' prikazuje ime, pod katerim bo skript notranje shranjen na ZuluTrade-ovemu strežniku. Tega polja ne rabite obvezno spreminjati, če želite, pa ga lahko, vendar bodite pozorni, da se mora končati s pripono '.zql'.
. V polju 'Opis' je kratek opis, ki se bo prikazal, ko se bo skript priklopil grafu. Opis je koristen, ker vas lahko opomni o natančni njegovi vsebini, zato vanj vključite vse podrobnosti, ki vam kasneje lahko koristijo.
Seznam skript - Pod polji z meta podatki je prikazan seznam vseh shranjenih skript. Upoštevajte, da se bo vsak na novo ustvarjen skript shranil samodejno.
Trenutno izbrani skript (katerega koda je prikazana v plošči urejevalnika) je poudarjen
Brisanje skripta - Če želite skript izbrisati, enostavno kliknite na ikono "x", ki je poleg imena skripta in potrdite brisanje v pojavnem oknu.
Primer skripta - V nadaljevanju je predstavljen primer zql skripta, ki ga lahko uporabljate za namene testiranja:
#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);
}
Ta skript preverja vsak cikel števila odprtih pozicij. Če ni odprte nobene odprte pozicije in obstajajo zahtevani pogoji, bo skript odprl novo pozicijo. V primeru, da obstaja veliko odprtih pozicij, bo skript eno zaprl.
OPOMBA Ta skript ne predstavlja resnične strategije trgovanja in je predviden le za demonstrativne namene.
Če morate na katerikoli točki ustvariti nov skript, lahko enostavno kliknete na gumb 'Ustvari skript' in ta postopek ponovno zaženete.
Na vrh
Ustvarjanje po meri prilagojenega indikatorja
Po želji lahko ustvarjate in v drugem skriptu tudi uporabljate po meri prilagojene indikatorje s čemer razširite obstoječe, v jeziku razpoložljive tehnične indikatorje.
Po meri prilagojene indikatorje lahko uporabljate v kateremkoli ZuluScriptu, pri čemer po shranjevanju, prevajanju in uvajanju po meri prilagojenega indikatorja uporabite ZQL funkcijo iCustom().
Opomba: V tem trenutku ne zagotavljamo upodabljanja po meri prilagojenih indikatorjev na grafih.
Za ustvarjanje po meri prilagojenega indikatorja kliknite na gumb 'Ustvari indikator' v urejevalniku skript.
Poskrbite, da boste imeli v urejevalniku skript odprt zavihek Indikatorji po meri:
Vaš skript kasneje lahko uredite, preimenujete, shranite in uvedete!
Ukazi Uredi, Shrani in Uvedi delujejo na podoben način, kot deluje ZuluScripts
Opomba: ime indikatorja je tisto, s katerem se bo kasneje klicala funkcija iCustom() s katero boste dostopali do vaših ZuluScripts.
Primer po meri prilagojenega indikatorja, ki ga lahko uporabljate za testne namene:
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);
}
Na vrh
Ustvarjanje glave
Tukaj lahko definirate ponovno uporabne funkcije, ki jih lahko uvozite in uporabite v vsakem skriptu ali po meri prilagojenem indikatorju.
Upoštevajte da glave niso ZQL skripti, zato ne zahtevajo nobene init(), start() ali deinit() funkcije.
Če želite ustaviti svojo glavo, kliknite na gumb 'ustvari glavo' v urejevalniku skript.
Poskrbite, da boste imeli v urejevalniku skriptov odprt zavihek Glave:
Opomba I: To je ime datoteke, ki jo boste uporabljali v #include<> direktivi skripta s katerim želite dostopati do funkcij.
Opomba II: Glave se le shranijo. Če boste kodo prevajali in uvajali preko skripta ali po meri prilagojenega indikatorja, potem prevajanje in uvajanje ni potrebno.
Uporaba glave v novem skriptu je tako enostavna, kot je vključevanje datoteke glave kot sledi
#include "my_common_functions.zqh"
int init() {
}
int start() {
printMyBalance();
}
Na vrh
Glosar
V glosarju lahko poiščete podrobne informacije za posamezne ukaze ZQL jezika.
Enostavno kliknite na črko v zgornjem delu ter poiščite naslov, ki je shranjen pod to črko. Če kliknete na glave črk s seznama, lahko razširite/strnete funkcije, ki so navedene pod določeno črko, če pa kliknete na ime/glavo funkcije, lahko razširite/strnete podrobnosti o funkciji.
Na vrh
Uporaba skripta v vašem trgovalnem računu
Potem, ko svoj skript uspešno prevedete in uvedete, lahko zaprete ikono urejevalnika skriptov in skript pripnete grafu.
To lahko storite tako, da po želji izberete valutni par in obdobje. V tem primeru EURUSD graf z obdobjem H1.
Kliknite na gumb Trgovalni skripti (označeno v spodnjem prikazu) in izberite želeni skript.
Če postavite miškin kazalnik na skript, se bo prikazal opis skripta.
Če želite zagnati skript za izbrani graf/obdobje, enostavno kliknite na ime skripta in pojavilo se bo novo okno z opisom skripta ter polji za vnos zunanjih spremenljivk skripta.
Ko nastavite vse parametre po svoji želji, kliknite na gumb "Start" in skript se po pripel grafu!
Note: Ta skript bo odtlej deloval s tem grafom preko ZuluTrade-ovih strežnikov, ne glede ali boste imeli svoj računalnik vklopljen ali ne in ne glede ali boste prijavljeni v račun ali ne.
Zavihek Trgovalni skripti - Tukaj si lahko ogledate vse trenutno aktivne trgovalne skripte za vsak graf/obdobje, hkrati pa je prikazana delujoča različica in čas zadnje posodobitve.
Če si želite ogledati graf v katerem skript deluje, lahko kliknete na ikono Graf.
Zavihek sporočila - V tem predelu so prikazana vsa sporočila glede vašega skripta, tudi sporočila o tem skriptu s strani ZuluTrade itd.
Na vrh
Zaustavitev in umik skripta
Vaš skript lahko kadarkoli zaustavite in umaknete
Zaustavitev skripta - če želite zaustaviti delovanje skripta v grafu/obdobju, morate le odpreti zavihek 'Trgovalni skripti' in klikniti na gumb 'x', ki je na desni strani skripta, ki ga želite zaustaviti, nato pa to zaustavitev še poztrditi v pojavnem oknu.
Opomba: Zaustavitev skripta bo le prekinila njegovo delovanje v grafu/obdobju. Skript bo še vedno ostal v vašem trgovalnem računu in med vašimi trgovalnimi skripti
Umikanje skripta - Če želite umakniti skript morate le odpreti odsek Trgovalni skripti, klikniti na gumb 'x' poleg njegovega imena in potrditi umik v pojavnem oknu.
Opomba: Umikanje skripta bo slednjega le umaknilo s seznama razpoložljivih skriptov v vašem trgovalnem računu, ne bo pa ga izbrisalo iz okna urejevalnika skriptov.
Na vrh
Navodila za uporabo samostojnega prevajalnika ZQL
Začetek dela s samostojnim prevajalnikom ZQL
Samostojni prevajalnik ZQL je samostojna različica prevajalnika ZQL skriptov, ki jo ZuluTrade nudi preko svoje spletne platforme. Uporablja se za prevajanje katerekoli ZQL združljive skripte (npr. mq4) v .tl datoteko.
Prenesi
Samostojni prevajalnik ZQL se distribuira preko ZuluTrade strani.
Računalnik je pripravljen za zip ali tar datotečna formata.
Zahteve
- Java JDK 6 (priporočamo, da uporabite dostopno točko Java JDK 6)
Namestitev
Enostavno izvozite izbrani prenos v želeni imenik. Samostojni prevajalnik ZQL lahko namestite na katerikoli operacijski sistem, ki podpira zip ali tar formata. Dodatne informacije o izdaji, si oglejte v rubriki opombe ob izdaji.
Hitra predstavitev
Prenesli ste samostojni prevajalnik ZQL, naslednji korak je določitev zasnove distribucije in raziskava strukture imenika prevajalnika, ključnih konfiguracijskih datotek, datotek z zgodovino in podobno.
Struktura imenika
Imenik |
Opis |
lib/
|
Vsebuje odvisnosti knjižnice prevajalnika. |
conf/
|
Vsebuje ključne konfiguracijske datoteke, ki jih nikakor ne smete spreminjati. |
run.bat
|
Zagon skripta na napravah Windows. |
run.sh
|
Zagon skripta na napravah Linux/Unix. |
Možnosti prevajalnika
Ime parametra
|
Kratko ime parametra
|
Vrednost
|
Opis
|
help |
h |
- |
V konzoli natisni sporočilo s pomočjo. |
class |
c |
Katerakoli vrednost niza |
Ime ustvarjenega razreda. |
package |
p |
Katerikoli niz obrazca poti do paketa |
Ime ustvarjenega paketa |
output |
o |
Katerakoli vrednost niza |
Ime prevedene izhodne datoteke brez končnice |
zqh |
z |
Katerikoli niz obrazca poti do imenika (relativni ali absolutni) |
Vključi pot do imenika s po meri ustvarjenimi zqh datotekami |
name |
n |
Ime želenega skripta
če imate presledke, poskrbite, da jih boste vnesli med "Windows in \" v Linuxu
|
Ime skripta, ki se bo prikazalo, ko bo naložen na vaš ZuluTrade sistem |
description |
d |
Opis želenega skripta
če imate presledke, poskrbite, da jih boste vnesli med "Windows in \" v Linuxu
|
Opis skripta, ki se bo prikazal, ko bo naložen na vaš ZuluTrade sistem |
Primeri
Prevedi po meri ustvarjen strokovni skript |
Izhod |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" custom_expert.zql
|
my_expert.zl |
Prevedi po meri ustvarjen strokovni skript s po meri ustvarjenim skriptom glave (npr. v imeniku z glavami) |
Izhod |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" -z headers custom_expert.zql
|
my_expert.zl |
Na vrh