Opas ZuluScriptien luomiseen
Viimeksi päivitetty
Johdanto
ZuluTrade on kehittänyt uuden kaupankäyntiskriptit-toiminnon, jonka avulla treidaaja voi luoda ja käyttää omia kaupankäyntirobotteja ja -indikaattoreita suoraan ZuluTrade-tilin kautta ilman ulkopuolista ohjelmistoa tai rekisteröitymistä kolmannelle osapuolelle.
ZuluScripteissä käytetään ZuluTrade-kyselykieltä (zql, ZuluTrade Query Language), joka on yhteensopiva valuuttamarkkinoilla yleisimmin käytettyjen skriptikielien kanssa.
Tarvitset ZuluScriptien käyttämiseen vain kaupankäyntitilin, jonka ZuluTrade+-valinta on aktivoitu kohdasta Asetukset, Välittäjätilin yhteysasetukset.
ZuluTraden kaupankäyntiskriptieditorin avaaminen
Rekisteröidyttyäsi ZuluTraden käyttäjäksi ja yhdistettyäsi tilisi ZuluTrade+-alustaan saat ZuluTraden kaupankäyntiskriptit käyttöösi menemällä ZuluTraden kaupankäyntiasemaan ja valitsemalla 'Kaupankäyntiskriptit'.
Esiin tulee uusi 'Kaupankäyntiasiakas'-ponnahdusikkuna.
Sivupalkista, joka on skriptieditorin oikealla puolella ylimpänä, löydät neljä eri vaihtoehtoa skriptieditorin toimintamoodiksi.
Ensimmäisestä voit valita skriptien luomisen, toisesta perusindikaattorien luomisen, kolmannesta otsikoiden luomisen ja neljännestä ZQL-sanaston, josta löytyvät yksityiskohtaiset tiedot kaikista skriptikielen komennoista.
Ylös
ZuluScriptin luominen
Aloita ZuluScriptin luominen napsauttamalla skriptieditorin kohtaa 'Luo skripti'.
Kun alat luoda uutta skriptiä, editoriruutuun tulee malli zql-koodista. Skriptikoodi on kirjoitettava tähän kohtaan.
Editorin alla oikealla on kolme painiketta, joita käytetään ZuluScript-kielen luomisessa: Tallenna, Käännä ja Ota käyttöön.
Tallenna - Tallenna-kohdasta voit tallentaa skriptisi milloin tahansa, niin ettet menetä muutoksia.
Skriptin muutoksen tallentaminen ei kuitenkaan takaa, että muutos on valmis käytettäväksi. Kaikki muutokset on käännettävä ja otettava käyttöön, ennen kuin ne ovat käytettävissä.
Käännä - Skriptin kääntäminen tarkoittaa, että koodi tarkistetaan syntaksivirheistä. Jos kääntäminen onnistuu, luodaan skriptiin liittyvät binaaritiedostot skriptin suorittamiseksi.
Jos kääntämisprosessi epäonnistuu, virheet luetellaan kohdassa "Kääntämisen tulos"
Alla on esimerkki epäonnistuneesta kääntämisestä:
Ota käyttöön - Jotta skripti voidaan ottaa käyttöön, sen täytyy olla käännetty. Kun tämä on tehty ja .zql-tiedosto on luotu, voit ottaa skriptin käyttöön ja pitää sitä saatavissa ZuluTraden kaupankäyntiasemassa.
Metadata - Skriptin metadataa voi muuttaa ikkunan oikeasta laidasta.
'Nimi'-kenttä tarkoittaa nimeä, joka näytetään liitettäessä skripti kaavioon.
'Tiedoston nimi' on nimi, jolla tiedosto tallennetaan ZuluTraden palvelimeen. Tähän kenttään ei tarvitse tehdä muutoksia, mutta jos haluat tehdä niitä, koodin täytyy loppua suffiksiin '.zql'.
'Kuvaus'-kenttään kirjoitetaan lyhyt kuvaus, joka näkyy, kun skripti liitetään kaavioon. Kuvaus auttaa muistamaan skriptin toiminnan, joten tähän kenttään kannattaa kirjoittaa tarvittavat yksityiskohdat.
Luettelo skripteistä - Metadata-kenttien alla on lista kaikista tallennetuista skripteistä. Huomaa, että jokainen uusi skripti, joka luodaan, tallennetaan automaattisesti.
Valittu skripti (jonka kaava on editoripaneelissa) on väritetty.
Skriptin poistaminen - Jos haluat poistaa skriptin, paina skriptin vieressä olevaa "x"-kuvaketta ja vahvista poistaminen pyydettäessä.
Esimerkki skriptistä - Seuraavassa on esimerkki zql-skriptistä, jota voit käyttää testaamiseen:
#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);
}
Tämä skripti tarkistaa avoimet positiot jokaisella kierroksella. Jos avoimia positioita ei ole ja tietyt indikaattorit täyttyvät, skripti avaa uuden position. Muussa tapauksessa skripti sulkee löytämänsä avoimet positiot.
HUOM: Tämä ei ole kaupankäyntistrategia, vaan ainoastaan esimerkki.
Jos haluat luoda uuden skriptin, voit milloin tahansa napsauttaa "Luo skripti", josta prosessi alkaa.
Ylös
Perusindikaattorin luominen
Perusindikaattoreita on mahdollista luoda ja käyttää toisissa kaupankäyntiskripteissä, mikä laajentaa skriptikielellä saatavissa olevien teknisten indikaattorien valikoimaa.
Perusindikaattoreita voi käyttää tallentamisen, kääntämisen ja käyttöönoton jälkeen missä tahansa ZuluScriptissä, joka käyttää iCustom() ZQL-toimintoa.
Huom: Tällä hetkellä perusindikaattoreita ei ole tarjolla kaavioille.
Jos haluat luoda perusindikaattorin, paina skriptieditorin kohtaa 'Luo indikaattori'.
Tarkista, että editorissa on valittuna Perusindikaattorit-moodi:
Kun olet luonut perusindikaattorin, se on editoitava, nimettävä, tallennettava ja otettava käyttöön.
Editoi, nimeä, tallenna ja ota työ käyttöön samalla tavalla kuin ZuluScriptit.
Huom: Indikaattorin nimeä tarvitaan myöhemmin iCustom()-toiminnossa. Sillä pääset jatkossa ZuluScripteihin.
Seuraavassa on esimerkki perusindikaattorista, jota voit käyttää testaamiseen:
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);
}
Ylös
Otsikon luominen
Tässä voit määrittää uudelleenkäytettävät toiminnot, joita mikä tahansa skripti tai perusindikaattori voi importoida tai käyttää.
Huomioi, etteivät otsikot ole ZQL-skriptejä, joten ne eivät vaadi init()-, start()- tai deinit()-toimintoa.
Voit luoda otsikon skriptieditorin kohdasta "Luo otsikko".
Tarkista, että editorissa on valittuna Otsikot-moodi:
Huom. I: Skriptin #include<> -komennossa pitää käyttää tiedoston nimeä näihin toimintoihin pääsemiseksi.
Huom. II: Otsikot on ainoastaan tallennettu. Kääntämistä ja käyttöönottoa ei tarvita, sillä skripti tai perusindikaattori kääntää ja ottaa käyttöön koodin importoidessaan sen.
Otsikon käyttäminen uudessa skriptissä on yhtä helppoa kuin otsikko-tiedoston sisällyttäminen
#include "my_common_functions.zqh"
int init() {
}
int start() {
printMyBalance();
}
Ylös
Sanasto
Sanastosta löydät yksityiskohtaiset tiedot ZQL-kielen kaikista komennoista.
Napsauta kirjainta ja skrollaa haluamaasi kohtaan. Napsauttamalla listan kirjainotsikoita saat näkyviin/pois näkyvistä jokaisen kirjaimen toiminnot. Napsauttamalla toiminnon nimeä/otsikkoa saat näkyviin/pois näkyvistä toiminnon tiedot.
Ylös
Skriptin käyttäminen kaupankäyntitililläsi
Kun skripti on käännetty ja otettu käyttöön, voit sulkea skriptieditori-ikkunan ja liittää skriptin kaavioon.
Tämän tekemiseksi sinun on valittava valuuttapari ja aika. Tässä esimerkissä kaaviona on EURUSD ja aikana H1.
Napsauta Kaupankäyntiskriptit -painiketta (väritettynä alla olevassa kuvassa) ja valitse haluamasi skripti.
Kun pidät hiirtä skriptin päällä, näkyviin tulee skriptin kuvaus.
Käynnistääksesi skriptin valitsemassasi kaaviossa/valitulle ajalle napsauta skriptin nimeä, jolloin näkyviin tulee uusi ikkuna, jossa on kuvaus skriptista ja sen ulkoiset muuttujat.
Kun olet muokannut parametrejä haluamallasi tavalla, napsauta "Aloita", niin skripti yhdistetään kaavioon.
Huom: Skripti on käynnissä tässä kaaviossa ZuluTraden palvelimilta siitä huolimatta, onko tietokoneesi päällä vai ei tai oletko kirjautunut sisään tilillesi vai et.
Kaupankäyntiskriptit-sarkain - Tästä voit tarkastella jokaisen kaavion/ajan nykyisiä kaupankäyntiskriptejä, käynnissä olevaa versiota ja viimeisimpiä päivityksiä.
Kaavio-kuvakkeen kautta pääset suoraan kaavioon, jossa skripti on käynnissä.
Viestit-sarkain - Kaikki viestit skriptiltäsi, skriptiäsi koskevat viestit ZuluTradelta jne. näkyvät tässä kohdassa.
Ylös
Keskeytä ja poista skripti käytöstä
Voit keskeyttää ja poistaa skriptin käytöstä milloin tahansa
Skriptin keskeyttäminen - Jos haluat poistaa skriptin kaaviosta tai ajasta, mene kohtaan Kaupankäyntiskriptit, napsauta 'x' skriptin oikealta puolelta ja vahvista keskeytys pyydettäessä.
Huom: Skriptin keskeyttäminen pysäyttää ainoastaan sen käymisen valitussa kaaviossa/valitulle ajalle. Skripti pysyy kaupankäyntitililläsi ja kaupankäyntiskripteissäsi
Skriptin poistaminen käytöstä - Jos haluat poistaa skriptin käytöstä, mene Kaupankäyntiskriptit-kohtaan ja napsauta 'x' skriptin nimen vieressä ja vahvista poistaminen pyydettäessä.
Huom: Skriptin poistaminen käytöstä poistaa skriptin kaupankäyntitililläsi saatavissa olevien skriptien listalta, ei skriptieditori-ikkunasta.
Ylös
ZQL Standalone Compiler Käyttöopas
Alkutoimista
ZQL Standalone Compiler on ZQL Script Compiler 'in erillinen tila, jonka ZuluTrade tarjoaa web-alustallaan. Se kääntää kaikki ZQL kelpoiset skriptit (esi. Mq4) .zl tiedostoksi.
Lataa
ZQL Standalone Compiler on saatavana FXCMMarkets n sivustolta.
Comipler on saatavilla zip tai tar muodossa.
Vaatimukset
- Java JDK 6 (Suosittelemme ettö käytät Java JDK 6 hotspot)
Asennus
Pura yksinkertaisesti valitsemasi tiedost haluamaasi kansioon. Voit asentaa ZQL Standalone Compiler 'in kaikkiin käyttöohjelmiin jotka tukevat zip tai tar muodot. Löydät julkaisutiedotteesta lisätietoa julkaisusta.
Lyhyt esittely
Nyt kun olet ladannut ZQL Standalone Compiler, seuraava askel on jakelun asetelma sekä hakemistorakenne , keskeiset asetustiedostot jne.
Hakemiston Rakenne
hakemisto |
Kuvaus |
lib/
|
Sisältää compilerin kirjasto riippvuudet. |
conf/
|
sisältää tärkeitä konfiguraatiotedostoja joita ei saa muuttaa millään tavalla. |
run.bat
|
Ajo -komentosarja Linux/Unix Koneille. |
run.sh
|
Ajo -komentosarja Linux/Unix Koneille. |
Kääntäjän asetukset
Parametrin Nimi
|
Parametrin Lyhyt Nimi
|
Arvo
|
Kuvaus
|
help |
h |
- |
Tulostaa opastusviestin konsoliin. |
class |
c |
Mikä tahansa merkkiarvo |
Tuotetun skriptin luokkanimi |
package |
p |
Mikä tahansa merkkijono muodossa package path |
Tuotetun skriptin pakettinimi |
output |
o |
Mikä tahansa merkkiarvo |
Kootun tulostiedoston nimi ilman päätettä |
zqh |
z |
Mikä tahansa merkkijono muodossa hakemistopolku (suhteellinen tai absoluuttinen) |
sisällytä hakemistopolku ja mukautetut tiedostot |
name |
n |
Halutun skriptin nimi
Jos sinulla on välilyöntejä varmista että laitat ne välille " Windowsissa ja \" Linuxissa
|
Skriptin nimi näyttöön kun se on ladattu FXCMMarketsn järjestelmään |
description |
d |
Halutun skriptin kuvaus
Jos sinulla on välilyöntejä varmista että laitat ne välille " Windowsissa ja \" Linuxissa
|
Skriptin kuvaus, kun se on ladattu FXCMMarketsn järjestelmään |
Esimerkkejä
Kokoa mukautettu asiantuntijan skripti |
Tuloste |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" custom_expert.zql
|
my_expert.zl |
Kokoa mukautettu asiantuntijan skripti ja mukautettu otsikko skripti (esim. Otsikon hakemistoon) |
Tuloste |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" -z headers custom_expert.zql
|
my_expert.zl |
Ylös