Panduan Membuat ZuluScript

Terakhir diperbarui pada

Perkenalan

ZuluTrade telah menciptakan script trading generasi baru, yang memungkinkan Trader untuk membuat dan menginstall robot trading dan indikator mereka sendiri, secara langsung melalui akun Trader ZuluTrade mereka, tanpa membutuhkan software lain atau pendaftaran pihak ketiga!
ZuluScripts diimplementasikan menggunakan ZulTrade Query Language (ZQL) yang telah dikembangkan agar kompatibel dengan bahasa scripting yang paling banyak digunakan pada market Forex.

Untuk menggunakan ZuluScript yang Anda perlukan adalah sebuah akun Trader dengan opsi ZTP yang telah diaktifkan seperti yang terlihat pada tab Pengaturan, Pengaturan Tautan Akun Broker, dari akun Anda.

Mengakses Editor Skript Trading ZuluTrade

Untuk mengakses Script Trading ZuluTrade, setelah Anda mendaftar dengan ZuluTrade dan menghubungkan akun Anda dengan platform ZTP, Anda perlu navigasi ke Stasun Trading ZuluTrade dan klik pada 'Trading Scripts'.
Sebuah jendela pop-up dengan judul 'Trading Client' akan muncul.
Di sidebar kanan atas dari Scripts Editor, Anda dapat menemukan 4 tab berbeda yang mengubah mode fungsionalitas dari Scripts Editor.
Yang pertama mengatur untuk membuat Script, yang kedua mengatur mode untuk membuat Custom Indicator, yang ketiga mengatur pembuatan Header dan terakhir memunculkan Glosarium ZQL, dimana Anda dapat menemukan informasi detail untuk setiap perintah dari bahasa ZQL.

Top

Membuat ZuluScript

Untuk membuat ZuluScript, Anda harus klik pada tombol 'Create Script' pada Scripts Editor.

Saat membuat script baru, panel editor diisi dengan template kode zql - yang ada di panel ini dimana kode script harus diisikan.


Di bawah editor dan pada sisi kanan ada tiga tombol, yang akan membantu Anda membuat ZuluScript - Simpan, Compile dan Deploy.


Compile - Mengkompilasi script akan mengecek kode untuk error syntax dan, jika kompilasi berhasil, akan menciptakan file binary yang berkaitan dengan script kami agar dapat dieksekusi.
Jika proses kompilasi gagal, error yang ditemu akan didaftar pada panel 'Compiler Output'.

Silakan lihat di bawah ini sebuah contoh dari kompilasi yang tidak berhasil:
Deploy - Untuk deploy sebuah script, sebelumnya harus dicompile dulu. Setelah dilakukan dan file .zql telah dibuat, Anda kemudian dapat Deploy script tersebut dan membuatnya jadi siap digunakan di Trading Station ZuluTrade Anda!


Meta Data - Di sisi sebelah kanan jendela Meta Data dari script Anda dapat diubah.
Kolom 'name' adalah nama yang akan ditampilkan saat melampirkan script pada sebuah chart.
Kolom 'Filename' adalah nama file yang akan digunakan untuk menyimpan script secara internal di server ZuluTrade. Kolom ini tidak wajib diubah, namun jika Anda ingin mengubahnya, harap diingat untuk mengubahnya dengan akhiran '.zql'.
Kolom 'Description' adalah deskripsi pendek yang akan terlihat saat melampirkan script pada chart. Deskripsi ini dapat membantu mengingatkan Anda fungsi tepatnya dari script tersebut, jadi mohon jelaskan detail yang Anda perlukan di kolom ini.

Daftar Script - Di bawah kolom Meta Data, tersedia daftar semua script tersimpan. Mohon diperhatikan bahwa tiap script terbaru yang dibuat, akan disimpan secara otomatis.
Script yang saat ini dipilih (yang kode-nya tampil pada panel editor) disorot
Menghapus sebuah script - Jika Anda perlu menghapus sebuah script, Anda hanya perlu klik pada ikon ""x"" didekat nama script dan mengkonfirmasi penghapusan pada pop-up terkait.
Contoh Script - Mari lihat pada contoh script zql, yang dapat Anda gunakan untuk tujuan pengujian:

#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);
}
Script ini menguji setiap siklus untuk mengetahui jumlah dari open posisi. Jika tidak ada yang terbuka dan beberapa kondisi indikator terpenuhi, script akan membuka posisi baru. Jika tidak, apabila ada banyak open posisi, script ini akan menutup satu.
CATATAN: Ini bukan strategi trading riil dan hanya untuk tujuan demo saja.

Jika suatu saat Anda perlu untuk membuat script baru, Anda cukup klik pada tombol 'Create Script' dan memulai proses ini lagi.

Top

Membuat Indikator Khusus

Indikator kustom dapat dibuat dan digunakan di skrip trading lain untuk mengembangkan indikator teknikal yang sudah tersedia dalam bahasa tersebut.

Indikator kustom dapat digunakan di ZuluScript manapun menggunakan fungsi iCustom() ZQL setelah menyimpan, mengcompile dan mendeploy indikator kustom Anda.

Catatan: Untuk saat ini, kami tidak dapat menampilkan indikator kustom pada chart.


Untuk membuat indikator kustom, Anda harus klik pada tombol 'Create Indicator' (Buat Indikator) pada Scripts Editor.

Mohon pastikan Editor telah beralih pada tab Indikator Kustom:

Setelah itu Anda perlu mengedit, menyimpan dan mendeploy Indikator Kustom Anda jika sudah siap!

Edit, Name, Save dan Deploy bekerja dengan cara yang sama terhadap ZuluScripts
Catatan: Nama pada indikator adalah yang akan digunakan nanti memanggil fungsi iCustom() untuk mengaksesnya di ZuluScripts Anda.


mengunakan indikator kustom di sebuah script baru semudah seperti berikut ini:

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

Membuat Header

Di sini Anda dapat menentukan fungsi yang dapat digunakan kembali yang dapat diimport dan digunakan oleh semua Indikator atau Script Kustom.

Mohon diperhatikan bahwa Header bukanlah script ZQL sehingga mereka tidak memerlukan fungsi init(), start() atau deinit().

Untuk membuat Header, Anda harus klik pada tombol 'Create Header' (Buat Header) pada Script Editor.

Mohon pastikan Editor telah beralih ke tab Header:
Catatan I: Yang harus digunakan dalam perintah #include<> adalah nama file yang akan Anda perlukan untuk mengakses fungsi tersebut.

Catatan II: Header hanya disimpan. Kompilasi atau instalasi tidak diperlukan karena kode akan dikompile dan dideploy saat diimport oleh sebuah Script atau Indikator Kustom.



Menggunakan header dalam sebuah Script baru sama mudahnya seperti memasukkan file header seperti berikut

#include "my_common_functions.zqh"

int init() {
}

int start() {
printMyBalance();
}

Top

Glosarium

Di dalam Glossarium, Anda dapat menemukan informasi terperinci untuk setiap perintah pada bahasa ZQL.

Cukup klik pada huruf yang ada di atas untuk auto-scroll pada daftar huruf. Selain itu, dengan klik pada kepala huruf pada daftar, Anda dapat membuka/menutup tiap fungsi huruf dan dengan klik pada nama/kepala fungsi Anda dapat membuka/menutup rincian fungsi.

Top

Menggunakan sebuah skrip di akun Trader Anda

(!) zuluscriptguide.aspx.Section7

Top

Stop dan Undeploy sebuah Skrip ?

Anda dapat Berhenti dan Undeploy sebuah Script kapanpun pada waktu yang diberikan


Memberhentikan Script - Untuk menghentikan sebuah script supaya tidak berjalan pada sebuah Chart/Periode yang Anda perlu lakukan adalah navigasi ke tab 'Trading Scripts', klik pada tombol 'x' pada sebelah kanan Script yang ingin Anda Hentikan, dan konfirmasi pemberhentian pada pop-up yang relevan.

Catatan: Memberhentikan sebuah script, hanya akan menghentikan script tersebut agar tidak berjalan lagi pada sebuah Chart/Periode. Script tersebut akan tetap ada di akun Trader dan Trading Scripts Anda


Undeploy Sebuah Script - Untuk Undeploy sebuah script yang perlu kita lakukan adalah navigasi ke bagian Trading Script, klik pada tombol 'x' yang ada di dekat namanya, kemudian konfirmasi Undeployment pada pop-up yang relevan.

Catatan: Undeploy script tersebut hanya akan menghapusnya dari daftar Script tersedia di akun Trader Anda, tindakan ini tidak akan menghapus script tersebut dari kendela Script Editor.

Top

Panduan Compiler Mandiri ZQL untuk Investor

Memulai dengan ZQL Standalone Compiler

ZQL Standalone Compiler adalah versi mandiri dari compiler script ZQL yang ditawarkan ZuluTrade di platform webnya. Ia akan menyusun semua script ZQL yang kompatible (misalnya mq4) menjadi file .zl.

Download

ZQL Standalone Compiler didistribusikan dari situs ZuluTrade.

Kompiler tersedia dalam format file zip atau tar.

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

Yang diperlukan

  • Java JDK 6 (kami sarankan Anda untuk menggunakan hotspot Java JDK 6)

Instalasi

Cukup ekstrak download yang Anda pilih ke direktori pilihan Anda. Anda dapat menginstall ZQL Standalone COmpiler pada sistem operasi manapun yang mendukung format zip atau tar. Lihat Release Notes untuk informasi tambahan mengenai rilis tersebut.

Tur Kilat

Sekarang karena Anda telah mendownload ZQL Standalone Compiler, hal selanjutnya yang perlu didiskusikan adalah layout dari distribusi dan mengeksplorasi struktur direktori dari kompiler tersebut, file-file kunci konfigurasi, file log dan lain-lain.

Struktur Direktori
Direktori Deskripsi
lib/
Mengandung dependensi pustaka compiler.
conf/
Mengandung file-file konfigurasi penting yang tidak boleh diubah dengan cara apapun.
run.bat
Run script untuk mesin Windows.
run.sh
Run script untuk mesin Unix/Linux.
Opsi Compiler
Nama Parameter
Nama Pendek Parameter
Nilai
Deskripsi
help h - Cetak pesan bantuan ke konsol.
class c String value apapun Nama kelas yang telah dihasilkan.
package p String apapun dalam bentuk sebuah package path Nama paket yang dibuat
output o String value apapun Nama file yang telah dikompilasikan tanpa ekstensi
zqh z String apapun dalam bentuk sebuah jalur direktori (relative atau absolute) Sertakan jalur direktori dengan file zqh khusus
name n

Nama skrip yang diinginkan

Jika ada spasi pastikan Anda menempatkanya diantara " di Windows dan \" di Linux

Nama script yang akan ditampilkan setelah dimuat di sistem ZuluTrade.
description d

Deskripsi skrip yang diinginkan

Jika ada spasi pastikan Anda menempatkanya diantara " di Windows dan \" di Linux

Deskripsi dari script yang akan ditampilkan setelah dimuat di sistem ZuluTrade.
Contoh
Kumpulkan script expert khusus Output
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" custom_expert.zql
my_expert.zl
Compile script expert kustom dengan script header (misal dalam direktori header) Output
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" -z headers custom_expert.zql
my_expert.zl
Top