Panduan Pembuatan ZuluScript
Terakhir dikemas kini pada
Pengenalan
ZuluTrade telah mewujudkan generasi baharu bagi skrip dagangan, yang membolehkan para Pedagang untuk membuat dan mengerahkan robot dan penunjuk dagangan mereka sendiri, secara terus melalui akaun Pedagang ZuluTrade mereka, tanpa memerlukan sebarang perisian luar atau pendaftaran pihak ke-3!
ZuluScripts dilaksanakan menggunakan Bahasa Pertanyaan ZuluTrade (zql) yang telah dibentuk untuk serasi dengan bahasa skrip yang paling biasa digunakan untuk pasaran Forex.
Untuk menggunakan ZuluScripts, anda perlukan akaun Pedagang dengan ZuluTrade + pilihan didayakan seperti yang ditunjukkan pada tab Tetapan, Tetapan Pautan Akaun Broker, bagi akaun anda.
Mengakses Editor Skrip Perdagangan ZuluTrade
Untuk mengakses Skrip Perdagangan ZuluTrade, sebaik sahaja anda mendaftar dengan ZuluTrade dan menghubungkan akaun anda dengan platform ZuluTrade+, anda perlu menavigasi ke Stesen Perdagangan ZuluTrade dan klik pada 'Skrip Perdagangan'.
Tetingkap pop timbul baharu bertajuk 'Klien Perdagangan' kemudiannya akan muncul .
Di bar sisi di sebelah kanan atas Editor Skrip, anda akan mendapati 4 tab berbeza yang menukarkan mod fungsi Editor Skrip.
Tab yang pertama akan menetapkan mod kepada pembuatan Skrip, tab yang kedua akan menetapkan mod kepada pembuatan Penunjuk Tersuai, tab yang ketiga menetapkan mod pembuatan Pengepala dan yang terakhir membawa kepada Glosari ZQL, yang anda boleh mendapatkan maklumat terperinci bagi setiap arahan Bahasa ZQL.
Atas
Membuat ZuluScript
Untuk membuat ZuluScript anda, anda perlu klik pada butang 'Buat Skrip' bagi Editor Skrip.
Selepas membuat skrip baharu, anak tetingkap editor akan diisi dengan templat kod zql - kod skrip perlu dimasukkan pada panel ini.
Di bawah editor dan di sebelah kanan terdapat tiga butang, yang akan membantu membuat ZuluScript anda - Simpan, Susun dan Kerahkan.
Simpan - Butang Simpan akan menyimpan skrip anda pada bila-bila masa, supaya sebarang perubahan dan perkembangan tidak hilang.
Walau bagaimanapun, menyimpan perubahan pada skrip tidak menunjukkan bahawa perubahan ini sedia untuk digunakan. Sebarang perubahan perlu Dikompil dan Diatur Kedudukan sebelum sedia untuk digunakan.
Susun - Menyusun skrip akan menyemak kod untuk ralat sintaks dan, jika pengkompilan itu berjaya, akan menghasilkan fail binari yang berkaitan dengan skrip kita supaya ia boleh dilaksanakan.
Jika proses pengkompilan gagal, ralat yang ditemui akan disenaraikan dalam panel 'Output Pengkompil'.
Sila lihat di bawah contoh pengkompilan yang tidak berjaya:
Kerahkan - Untuk Mengerahkan skrip, ia perlu terlebih dahulu dipenyusunankan. Sebaik sahaja ini telah dibuat dan fail .zql telah dibuat, anda boleh kemudian Mengerahkan skrip dan ia sedia untuk digunakan pada Stesen Perdagangan ZuluTrade anda!
Data Meta - Di sebelah kanan tetingkap Meta Data skrip anda boleh dipinda.
Medan 'Nama' ialah nama yang akan dipaparkan apabila melampirkan skrip pada carta.
Medan Filename ialah nama fail yang mana skrip akan disimpan secara dalaman dalam pelayan ZuluTrade. Ia bukan mandatori untuk menukar medan ini, tetapi jika anda ingin berbuat demikian, perlu diingat ia perlu berakhir dengan akhiran '.zql'.
Medan 'Penerangan' ialah penerangan ringkas yang akan kelihatan apabila skrip dilampirkan pada carta. Keterangan ini boleh membantu dalam mengingatkan anda tentang fungsi sebenar skrip, jadi sila huraikan sebarang maklumat yang anda perlukan dalam ruangan ini.
Senarai Skrip - Di bawah medan Data Meta, senarai semua skrip yang disimpan disediakan. Sila ambil perhatian bahawa setiap skrip baharu yang dibuat, akan disimpan secara automatik.
Skrip pilihan semasa (kod yang dipaparkan pada tetingkap editor) diserlahkan
Memadam skrip - Sekiranya, anda perlu memadam skrip, anda hanya perlu klik pada ikon 'x' bersebelahan nama skrip, dan mengesahkan pemadaman pada pop timbul berkaitan.
Contoh Skrip - Mari kita lihat contoh skrip zql, yang anda boleh gunakan untuk tujuan ujian:
#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);
}
Skrip ini menyemak dalam setiap kitaran untuk bilangan posisi terbuka. Jika tidak ada yang terbuka dan beberapa penunjuk syarat dipenuhi, skrip akan membuka posisi baharu. Sebaliknya, jika terdapat posisi terbuka, ia akan menutup salah satu.
NOTA: Ini bukanlah strategi perdagangan sebenar dan hanya untuk tujuan demonstrasi.
Jika pada bila-bila masa anda perlu untuk membuat skrip yang baharu, hanya klik pada butang 'Buat Skrip' dan mulakan proses ini sekali lagi.
Atas
Membuat Penunjuk Tersuai
Penunjuk Tersuai boleh dicipta dan digunakan dalam skrip perdagangan lain dengan memanjangkan penunjuk teknikal yang sudah tersedia dalam bahasa.Penunjuk Tersuai
boleh digunakan dalam mana-mana ZuluScript yang menggunakan iCustom() fungsi ZQL selepas disimpan, dipenyusunan dan diletak atur penunjuk suai anda.
Nota: Buat masa ini, kita tidak boleh menyerahkan Penunjuk Tersuai pada carta.
Untuk mencipta Penunjuk Tersuai, anda perlu klik pada butang 'Buat Penunjuk' pada Editor Skrip.
Sila pastikan Editor dialihkan ke Tab Penunjuk Tersuai:
Anda kemudian perlu Edit, Namakan, Simpan dan Letak Atur penunjuk tersuai anda apabila bersedia!
Edit, Namakan, Simpan dan Letak Atur kerja-kerja dengan cara yang sama untuk ZuluScripts
Nota: Nama penunjuk akan digunakan kemudiannya memanggil fungsi iCustom() untuk mengaksesnya di ZuluScripts anda.
Mari lihat contoh penunjuk Tersuai, yang boleh anda gunakan untuk tujuan ujian:
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);
}
Atas
Membuat Pengepala
Di sini anda boleh mentakrifkan fungs boleh guna semula yang boleh diimport dan digunakan oleh sebarang Skrip atau Penunjuk Tersuai.
Sila ambil perhatian bahawa Pengepala bukan skrip ZQL jadi ia tidak memerlukan fungsi init(), mula() atau deinit().
Untuk membuat Pengepala, anda perlu klik pada butang 'Buat Pengepala' daripada Editor Skrip.
Sila pastikan Editor ditukarkan ke Tab Pengepala:
Nota I: Ini merupakan nama fail yang perlu digunakan di dalam #include<> arahan pada skrip yang anda perlukan untuk mengakses fungsi.
Nota II: Pengepala hanya disimpan. Penyusunan atau pengerahan adalah tidak perlu kerana kod akan disusun dan dikerahkan apabila diimport oleh Skrip atau Penunjuk Tersuai.
Dengan menggunakan pengepala pada Skrip baharu adalah semudah seperti memasukkan fail pengepala seperti berikut
#include "my_common_functions.zqh"
int init() {
}
int start() {
printMyBalance();
}
Atas
Glosari
Di dalam Glosari, anda boleh mencari maklumat yang terperinci bagi setiap arahan bahasa ZQL.
Hanya klik pada huruf di atas untuk skrol automatik ke senarai huruf. Serta, dengan mengklik pada pengepala senarai huruf, anda boleh mengembangkan/meruntuhkan fungsi setiap huruf dan dengan mengklik pada nama fungsi/pengepala anda boleh mengembangkan/meruntuhkan fungsi butiran.
Atas
Menggunakan skrip pada akaun Pedagang anda
Setelah skrip berjaya disusun dan dikerahkan, anda boleh tutup tetingkap Editor Skrip dan lampirkan Skrip pada carta.
Untuk melakukannya, anda perlu menavigasi ke pasangan mata wang dan tempoh pilihan anda. Untuk contoh ini, pada carta EURUSD dengan tempoh H1.
Klik pada butang Skrip Perdagangan (diserlahkan dalam syot layar di bawah) dan pilih skrip pilihan anda.
Jika anda halakan tetikus di atas skrip, tooltip akan kelihatan yang mengandungi penerangan Skrip.
Untuk memulakan skrip pada Carta/Tempoh yang dipilih, hanya klik pada nama skrip tersebut dan tetingkap baharu akan muncul, mengandungi penerangan skrip serta sebarang medan permulaan untuk pembolehubah luar skrip.
Dengan menyesuaikan parameter mengikut keperluan anda, kemudian, anda perlu klik pada butang 'Mula' dan skrip akan dilampirkan pada carta!
Nota: Skrip akan berjalan pada carta ini dari pelayan ZuluTrade, tanpa mengira sama ada komputer anda dihidupkan atau sama ada anda melog masuk ke akaun anda atau tidak.
Tab Skrip Perdagangan - Di sini anda boleh menyemak semula semua skrip perdagangan yang sedang aktif pada setiap Carta/Tempoh, bersama-sama dengan versi operasi dan masa kemas kini yang terakhir.
Anda juga boleh menavigasi terus ke Carta di mana skrip sedang berjalan melalui Ikon Carta.
Tab Mesej - Sebarang mesej dari Skrip anda, cetakan, mesej daripada ZuluTrade berkenaan skrip anda dan lain-lain akan muncul di bahagian ini.
Atas
Hentikan dan Nyahkerahkan Skrip
Anda boleh Hentikan dan Nyahkerahkan Skrip pada bila-bila masa
Menghentikan Skrip - Bagi menghentikan skrip daripada berjalan pada Carta/Tempoh, anda perlu menavigasi ke tab 'Skrip Perdagangan', klik pada butang 'x' di sebelah kanan skrip yang anda ingin Hentikan dan mengesahkan Pemberhentian pada pop timbul berkaitan.
Nota: Menghentikan skrip, akan hanya menghentikannya daripada berjalan pada Carta/Tempoh. Skrip akan kekal pada akaun Pedagang dan Skrip Pedagangan anda
Menyahkerahkan Skrip - untuk menyahkerahkan skrip, anda perlu menavigasi ke Bahagian Skrip Perdagangan, klik pada butang 'x' berhampiran namanya dan mengesahkan Nyahkerahkan pada pop timbul berkaitan.
Nota: Nyah kerahkan skrip akan hanya mengeluarkannya daripada senarai skrip yang tersedia pada Akaun Pedagang anda, ia tidak akan memadamkan skrip dari tetingkap Editor Skrip.
Atas
Panduan Pengguna ZQL Standalone Compiler
Untuk bermula dengan ZQL Standalone Compiler
ZQL Standalone Compiler adalah pengkompil Skrip ZQL yang ditawarkan zulutrade dalam platform webnya. Ia akan mengkompil mana-mana skrip yang serasi dengan ZQL (cth. mq4) kepada fail .zl.
Muat Turun
ZQL Standalone Compiler diagihkan dari tapak ZuluTrade.
Pengkompil tersedia dalam format fail zip atau tar.
Keperluan
- Java JDK 6 (kami mengesyorkan anda menggunakan hotspot Java JDK 6)
Pemasangan
Hanya ekstrak muat turun yang dipilih ke direktori pilihan anda. Anda boleh memasang ZQL Standalone Compiler di mana-mana sistem pengendalian yang menyokong format zip atau tar. Rujuk Nota Keluaran untuk maklumat tambahan berkaitan keluaran.
Panduan Cepat
Kini anda telah memuat turun ZQL Standalone Compiler, perkara seterusnya yang perlu dibincangkan ialah tataletak pengagihan dan menjelajah struktur direktori pengkompil, fail konfigurasi utama, fail log dan seterusnya.
Struktur Direktori
Direktori |
Huraian |
lib/
|
Mengandungi sandaran pustaka pengkompil. |
conf/
|
Mengandungi fail konfigurasi penting yang tidak boleh diubah dalam apa jua cara. |
run.bat
|
Jalankan skrip untuk mesin Windows. |
run.sh
|
Jalankan skrip untuk mesin Linux/Unix. |
Opsyen Pengkompil
Nama Parameter
|
Nama Pendek Parameter
|
nilai
|
Huraian
|
help |
h |
- |
Mencetak mesej bantuan ke konsol. |
class |
c |
Sebarang nilai rentetan |
Nama kelas yang dijana. |
package |
p |
Sebarang rentetan dalam bentuk laluan pakej |
Nama pakej yang dijana |
output |
o |
Sebarang nilai rentetan |
Nama fail output yang dikompil tanpa sambungan |
zqh |
z |
Sebarang rentetan dalam bentuk laluan direktori (relatif atau mutlak) |
Termasuk laluan direktori dengan fail zqh tersuai |
name |
n |
Nama skrip yang dikehendaki
jika anda ada ruang pastikan anda meletakkannya antara " dalam Windows dan \" dalam Linux
|
Nama skrip yang ditunjukkan selepas dimuatkan dalam sistem ZuluTrade |
description |
d |
Perihalan skrip yang dikehendaki
jika anda ada ruang pastikan anda meletakkannya antara " dalam Windows dan \" dalam Linux
|
Perihalan skrip yang ditunjukkan selepas dimuatkan dalam sistem ZuluTrade |
Contoh
Compile a custom expert script |
Output |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" custom_expert.zql
|
my_expert.zl |
Compile a custom expert script with a custom header script (e.g. in headers directory) |
Output |
run.bat -c MyCustomExpert -p org.test -o my_expert -n "My Expert" -z headers custom_expert.zql
|
my_expert.zl |
Atas