Anda di halaman 1dari 9

Halaman 1

Dasar2 mq4 ; PENGENALAN STRUKTUR EA MQL4


Di dalam program MQL4 ada 3 dasar alur yang sudah diberikan atau
sebagai standard dalam pembuatan robot. Alur tersebut berisi sekumpulan
script atau code yang akan dieksekusi oleh metatrader. Tiap kumpulan alur
tersebut memiliki keistimewaan antara lain:
1. Int init() dieksekusi hanya 1 kali saat EA pertama kali di attach ke
chart.
2. Int deinit() dieksekusi 1x saat EA di remove dari chart, atau chart
ditutup
3. int start() dieksekusi tiap tick (tiap ada update harga baru). Pada laur
inilah banyak diisikan atau disisipkan coding atau script untuk
menjalankan EA.

Halaman 2
PENGENALAN VARIABEL
Untuk melakukan pemrograman maka kita perlu memberikan nama pada
fungsi yang kita buat. Oleh karena itu diperlukanlah sebuah variabel yg
berfungsi untuk memberikan nama sekaligus sebagai alat bantu untuk
menyederhanakan coding kita.
Cara Penulisan: JenisVariabel NamaVariabel=NilaiVariabel;
Jenis-jenis variabel ada dibawah ini dan penggunaannya disesuaikan
dengan kebutuhan. Nama variabel terserah Anda. Nilai variabel harus
disesuaikan dengan jenis variabel yang digunakan, jika jenis variabel
angka (int, double) maka tidak boleh diberikan nilai variabel berupa katakata (string).
Jenis-Jenis variabel antara lain:
1. Int ? Integer merupakan bilangan tidak berkoma mulai dari minus
2.000.000.000 sampai plus 2.000.000.000. Int Bisa juga untuk
menuliskan sebuah karakter. Contoh:
int uangsaya=1000;
int MataUang=$ ; //untuk menuliskan karakter dipakai tand
petik
2. Bool ? Boolean merupakan variabel yang berisi benar atau salah.
Nilainya adalah False dan True
a. bool buy=true;
b. bool buy=false;
3. String ? digunakan untuk mendefinisikan sebuah variabel yang
akan berisi kata-kata atau kalimat. Contoh:

a. string semboyan=Saya selalu Untung Trading;


4. Double ? digunakan untuk mendefinisikan sebuah variabel yang
berisikan data berkoma atau data pecahan misalkan:
? double buystop = 1.4567;
? double sellstop = 1.2039;
5. Color ? Digunakan untuk mendefinisikan variabel yang nantinya
akan berisikan informasi warna. Contoh:
a. Color WarnaKeberuntungan=Red;
b. Bisa dimasukin warna-warna
6. DateTime ? digunakan untuk mendefinisikan
akan berisi mengenai informasi data tanggal d
Tahun:bulan:hari jam:menit:detik.
Format penulisan yakni: D'dd.mm.yy HH:MM:
didepan tanda petik).
Contoh:
datetime JamKerjaEA = D'31.12.2010 00:00:0
datetime JamBreakOut= D'14:30:00';

Halaman 3
OPERASI DAN EKSPRESI
1. Operasi Aritmetika ? digunakan dalam hitungan matematika biasa
berupa penambahan, pengurangan, perkalian dan pembagian
CONTOH:
A=B+C; //a = b ditambah c
A=B-C; //a = b dikurangi c
A=B*C; //a = b dikali c
A=B/C; //a = b dibagi c
A=B%C; //a = sisa bagi (b dibagi c) misal b=8 c=3 maka a=2
// ======Contoh lain =========
int A=1; //A sama dengan 1
A++; // A ditambah satu
// ======Contoh lain =========
int B=1; // B sama dengan 1
B--; // B dikurangi 1
Jadi Operasi aritmetika adalah operasi yang menggunakan tanda
matematik seperti ditambah, dikurangi, dikali, dibagi, dan sebagainya.
2. Operasi Assignment ? merupakan operasi matematik yang
menggunakan +=, -= , %= dan =.
CONTOH:
int a=6;
int b=6;
int c=12;
a+=5; //a sama dengan a+5 = 6+5 = 11
b-=5; //a sama dengan b-5 = 6-1 = 5
c%=5 // c dibagi 5 sisanya ada = 2
3. Relational operator (operator pembanding), operator ini sering
digunakan dalam merancang sebuah EA. Biasa digunakan dengan
fungsi if.
a. == : sama
b. != : tidak sama
c. < : lebih kecil dari
d. > : lebih besar dari
e. <= : lebih kecil dari atau sama dengan
f. >= : lebih besar dari atau sama dengan
CONTOH:

int a=5;
int b=10;
if (a==b) {Print ("A sama dengan B lho"); } else {Print ("A tidak sama B");}
if (a!=b) {Print (A tidak sama dengan B);}
if (a<b) {Print(A lebih besar dari B);}
4. Operator Logical
a. && : dan
b. || : atau
c. ! : not
CONTOH:
int a=5;
int b=10;
if (a!=b && a>b) {Print ("ABC");} else {Print ("CDE");}
Jika perintah diatas dieksekusi pasti akan muncul pesan CDE Berbeda
dengan contoh dibawah ini:
if (a!=b || a>b) {Print ("ABC");} else {Print ("CDE");}
Jika a tidak sama dengan b ATAU a lebih besar daripada b maka
pernyataan dalam tanda kurung if adalah benar. Untuk script diatas
memang a tidak sama dengan B maka akan muncul pesan ABC
Mengapa bisa demikian ? pada perintah if (kondisi) {benar} else {salah},
jika kondisi terpenuhi maka script yang akan deksekusi adalah pada kolom
benar dan jika kondisi salah atau tidak terpenuhi maka yang akan
dieksekusi adalah kolom salah. Kedua script diatas hampir mirip yang
membedakan adalah satu pakai operator && dan satunya pakai operator ||.
If (kondisi1 && kondisi2) {Benar} else {Salah} maka supaya script pada
kolom benar tereksekusi maka kondisi1 dan kondisi2 harus terpenuhi.
Berbeda dengan If (kondisi1 || kondisi2) {Benar} else {Salah} bila salah
satu kondisi saja terpenuhi maka script pada kolom benar akan
tereksekusi.

Halaman 4
Decision dan Looping
Decision dan looping adalah inti dari sebuah program komputer. Sesuai

atau tidaknya program komputer berjalan tergantung dari kebenaran anda


menulis/menyusun perintah-perintah decision dan looping. Begitu juga
dengan EA, kalau salah dalam menyusun decision & looping, maka
kinerjanya akan tidak sesuai yang kita kehendaki. Misalnya menurut
kehendak kita, sekarang ini EA harusnya open buy, tapi ternyata dia malah
sell, ya akibatnya kita akan loss karena kecerobohan EA.
1. Decision atau bracing artinya mengambil atau memilih keputusan
dari 2 atau lebih kondisi. Ibaratnya kita di perempatan jalan, maka
kita harus milih mau lurus, belok kiri atau belok kanan? Tergantung
kondisi bukan jika lurus adalah jurang maka kita tidak akan lurus. Jika
market dalam trend turun maka harus sell, dan jika market dalam
trend naik maka harus buy. Ada 2 macam perintah yaitu if else dan
switch.

a. IF ELSE merupakan perintah membuat decision yang membagi


alur program menjadi 2 atau lebih. Contoh: Kalau candle ditutup
bullish, maka buy tapi Kalau candle ditutup bearish, maka sell dan
Kalau candle close=open, maka tidak usah trade. Format
penulisan atau syntax:
if (kondisi 1) {langkah A jika kondisi 1 terpenuhi} else {langkah B
jika kondisi 1 terpenuhi}
atau jika ingin IF else lebih dari 1, maka
if (kondisi 1) {langkah A jika kondisi 1 terpenuhi} else if (kondisi 2)
{langkah B jika kondisi 2 terpenuhi} else {Langkah C jika kondisi 2
tidak terpenuhi}

Contoh:
if (Close[1] > Open[1]) {Print (BUY);} else
if (Close[1] < Open[1] ) {Print (SELL);} else {Print (NO trade);}
Penjelasan singkat skrip diatas:
Jika harga penutupan (close) lebih tinggi daripada pembukaan
(open) maka akan muncul pesan BUY, jika harga penutupan
(close) lebih rendah dari harga pembukaan (open) maka muncul
pesan SELL, jika harga closing tidak lebih tinggi maupun tidak
lebih rendah daripada open maka akan muncul pesan NO trade.
b. SWITCH, pada prinsipnya perintah ini sama dengan perintah IF
ELSE namun penggunaan SWITCH dimaksudkan untk

menyederhanakan perintah IF ELSE yang terlalu panjang.


CONTOH:
int a = 0;
switch (a)
{
case 0 : Print (MINGGU);
case 1 : Print (SENIN);
case 2 : Print (SELASA);
case 3 : Print (RABU);
case 4 : Print (KAMIS);
case 5 : Print (JUMAT);
case 6 : Print (SABTU);
}
Dari perintah diatas bila a berni
muncul pesan MINGGU.
Fungsi diatas bisa digantikan de
panjang, Contoh:
If (a=0) {Print (MINGGU);} else
If (a=1) {Print (SENIN);} else
If (a=2) {Print (SELASA);} else
If (a=3) {Print (RABU);} else
If (a=4) {Print (KAMIS);} else
If (a=5) {Print (JUMAT);} else
If (a=6) {Print (SABTU);}
Contoh dengan menggunakan IF ELSE diatas sama dengan
menggunakan switch hanya saja pada penggunaan switch dirasa
lebih mudah dan lebih singkat terutama jika menggunakan script
yang panjang.

2. Looping adalah pengulangan, artinya kita akan memberikan kondisi


supaya robot EA yang kita bangun mengulangi suatu perintah
tertentu secara terus menerus. Ada 2 macam perintah yaitu For dan
While
a. FOR
contoh syntax:
for (inisialisasi index; kondisi; increment index) { perintah}
Contoh Skrip:
int a;
for(a=0; a<5; a++) {Print(a);}

Jika perintah diatas di jalankan, maka akan keluar angka 0,1,2,3,4


Penjelasannya: index pertamaatau index inisialisasi adalah
variabel a yang bernilai nol. Pada kondisi, dibatasi bahwa variabel
A hanya kurang dari 5 dan pada increment index tertulis a++
berarti nilai A ditambah 1 terus secara bertingkat, baru perintah
print (a); itu dijalankan.
Bagaimana penggunaan for ini ? saya ambil contoh saya ingin
membuat EA yang akan memberikan sinyal peringatan berupa
bunyi sebanyak 4x maka script yang diperlukan adalah seperti
dibawah ini
int a;
for (a=0;a<4;a++) {Alert (ALARM EA);}
Penjelasan:
? int a ? membuat variabel a adalah integer (angka bulat
tanpa pecahan)
? for (a=0;a<4;a++) ? nilai a awal adalah 0 kemudian
ditambah 1 menjadi 2 ditambah 1 lagi menjadi 3 sudah!!
Tidak ditambah 1 lagi menjadi 4 karena syaratnya a<4. Jadi
a bisa 0,1,2 atau 3.
? Alert (ALARM EA); ? perintah untuk mengeluarkan alert
dengan pesan ALARM EA. Perintah alert ini akan
dieksekusi sebanyak 4x yakni ketika a bernilai 0, kemudian
muncul alert lagi ketika a bernilai 1, muncul lagi ketika a
bernilai 2 dan muncul lagi ketika a bernilai 3.
b. WHILE
Sama persis dengan perintah FOR hanya saja jika dalam perinta
FOR kita tahu berapa kali pengulangannya. Perintah WHIL
digunakan jika kita tidak tahu berapa kali pengulangannya.
sumber; e C a n d l e s t i c k . c o m

Halaman 5
Untuk membuat sebuah program expert advisor sebenarnya hanya
diperlukan kemampuan logika, beberapa hafalan cara penulisan program
dan 2 buah software yang sederhana yakni MetaEditor dan MetaTrader
4.0. Semua hal yang diperlukan dalam membuat EA tersedia gratis tinggal
kita gali lebih dalam dari hal-hal tersebut.

Pengenalan untuk kedua buah software


tersebut sebagai alat untuk membuat EA. Langkah-langkah awal untuk
membuat EA menggunakan metaeditor:

1. Buka metaeditor Anda, dengan mengklik program Metaeditor.exe


yang biasanya berada di C:\Program Files\Metatrader
xxx\MetaEditor.exe
2. Setelah Anda buka program tersebut, klik pada menu File dan pilih
New
3. Pilih Expert Advisor, kemudian klik next
4. Pada bagian kolom name isikan dengan nama EA yang Akan Anda
buat, pada kolom author tuliskan nama Anda sebagai programer EA,
dan pada Link berikan alamat website atau alamat email Anda
sebagai programer. Dibawah ini adalah contohnya, apabila sudah
diisikan lalu klik FINISH
5. Selanjutnya akan kita bagi atau kita kategorikan menjadi 4 sektor
yakni sektor int init(), sektor int deinit(), dan int Start() serta sektor
yang keempat yakni sektor diluar ketiga sektor yang saya sebutkan
diatas. Area atau sektor ini penting sebagai tempat kita untuk
menuliskan rumus-rumus serta perintah yang kita berikan kepada
EA. Setiap sektor memiliki kekhasan dan cara kerja masing-masing.
6. Setiap sektor selalu ditandai dengan tulisan misalkan
int start()
{
// coding perintah Anda akan Anda tuliskan disini. Harus terletak antara kurung
kurawal buka dan
// diantara perintah return(0);
return(0);
}
7. Tiap-tiap sektor akan dimulai dengan tanda { atau kurung kurawal
pembuka dan } atau kurung kurawal penutup. Perintah dan coding
yang akan kita buat haruslah diantara kedua kurung kurawal
tersebut.
8. Setelah pembuatan coding / perintah EA (yang akan dibahas di
ebook selanjutnya) selesai maka langkah terakhir yang dilakukan

oleh seorang programer adalah membuat file ex4 (file yang siap
pakai) dengan melakukan proses compile.
9. Cara melakukan compile yakni dengan cara menekan tombol
compile yang ada di bagian atas
10. Klik tombol tersebut 1x maka akan muncul sebuah window baru
dibagian bawah yang akan memberikan laporan apakah proses
compile Anda berhasil atau tidak berhasil.
11. Perbaiki sesuai dengan pesan yang muncul. Apabila ada error, akan
sangat mudah untuk menelusuri balik dan memperbaiki error sesuai
dengan petunjuk di pesan compile.
sumber ; e C a n d l e s t i c k . c o m

Anda mungkin juga menyukai