Anda di halaman 1dari 9

E-book Tutorial Pemrograman EA | 2010

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.

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 kata-
kata (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:

1|P ag eh ttp: //eCa n dles ti ck. com Jasa Buat EA


E-book Tutorial Pemrograman EA | 2010
o int uangsaya=1000;
o int MataUang=’$’ ; //untuk menuliskan karakter dipakai tanda
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 seperti dibawah ini:
Black DarkGreen DarkSlateGray Olive Green Teal Navy Purple
Maroon Indigo MidnightBlue DarkBlue DarkOliveGreen SaddleBrown ForestGreen OliveDrab
SeaGreen DarkGoldenrod DarkSlateBlue Sienna MediumBlue Brown DarkTurquoise DimGray
LightSeaGreen DarkViolet FireBrick MediumVioletRed MediumSeaGreen Chocolate Crimson SteelBlue
Goldenrod MediumSpringGreen LawnGreen CadetBlue DarkOrchid YellowGreen LimeGreen OrangeRed
DarkOrange Orange Gold Yellow Chartreuse Lime SpringGreen Aqua
DeepSkyBlue Blue Magenta Red Gray SlateGray Peru BlueViolet
LightSlateGray DeepPink MediumTurquoise DodgerBlue Turquoise RoyalBlue SlateBlue DarkKhaki
IndianRed MediumOrchid GreenYellow MediumAquamarine DarkSeaGreen Tomato RosyBrown Orchid
MediumPurple PaleVioletRed Coral CornflowerBlue DarkGray SandyBrown MediumSlateBlue Tan
DarkSalmon BurlyWood HotPink Salmon Violet LightCoral SkyBlue LightSalmon
Plum Khaki LightGreen Aquamarine Silver LightSkyBlue LightSteelBlue LightBlue
PaleGreen Thistle PowderBlue PaleGoldenrod PaleTurquoise LightGray Wheat NavajoWhite
Moccasin LightPink Gainsboro PeachPuff Pink Bisque LightGoldenrod BlanchedAlmond
LemonChiffon Beige AntiqueWhite PapayaWhip Cornsilk LightYellow LightCyan Linen
Lavender MistyRose OldLace WhiteSmoke Seashell Ivory Honeydew AliceBlue
LavenderBlush MintCream Snow White

2|P ag eh ttp: //eCa n dles ti ck. com Jasa Buat EA


E-book Tutorial Pemrograman EA | 2010
6. DateTime  digunakan untuk mendefinisikan variabel yang nantinya
akan berisi mengenai informasi data tanggal dalam format:
Tahun:bulan:hari jam:menit:detik.

Format penulisan yakni: D'dd.mm.yy HH:MM:SS' (ada huruf D


didepan tanda petik).

Contoh:

datetime JamKerjaEA = D'31.12.2010 00:00:00';


datetime JamBreakOut= D'14:30:00';

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.

3|P ag eh ttp: //eCa n dles ti ck. com Jasa Buat EA


E-book Tutorial Pemrograman EA | 2010
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|P ag eh ttp: //eCa n dles ti ck. com Jasa Buat EA


E-book Tutorial Pemrograman EA | 2010
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.

5|P ag eh ttp: //eCa n dles ti ck. com Jasa Buat EA


E-book Tutorial Pemrograman EA | 2010

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}

6|P ag eh ttp: //eCa n dles ti ck. com Jasa Buat EA


E-book Tutorial Pemrograman EA | 2010

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 bernilai sama dengan 0 maka akan


muncul pesan “MINGGU”.

Fungsi diatas bisa digantikan dengan fungsi IF else yang lebih


panjang, Contoh:

7|P ag eh ttp: //eCa n dles ti ck. com Jasa Buat EA


E-book Tutorial Pemrograman EA | 2010
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.

8|P ag eh ttp: //eCa n dles ti ck. com Jasa Buat EA


E-book Tutorial Pemrograman EA | 2010
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 perintah
FOR kita tahu berapa kali pengulangannya. Perintah WHILE
digunakan jika kita tidak tahu berapa kali pengulangannya.

9|P ag eh ttp: //eCa n dles ti ck. com Jasa Buat EA

Anda mungkin juga menyukai