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 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:
1|P ag eh ttp: //eCa n dles ti ck. com

Jasa Buat EA

E-book Tutorial Pemrograman EA | 2010

2.

3.

4.

5.

o int uangsaya=1000;
o int MataUang=$ ; //untuk menuliskan karakter dipakai tanda
petik
Bool Boolean merupakan variabel yang berisi benar atau salah.
Nilainya adalah False dan True
a. bool buy=true;
b. bool buy=false;
String digunakan untuk mendefinisikan sebuah variabel yang
akan berisi kata-kata atau kalimat. Contoh:
a. string semboyan=Saya selalu Untung Trading;
Double digunakan untuk mendefinisikan sebuah variabel yang
berisikan data berkoma atau data pecahan misalkan:
double buystop = 1.4567;
double sellstop = 1.2039;
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
OrangeRed

Goldenrod

MediumSpringGreen

LawnGreen

CadetBlue

DarkOrchid

YellowGreen

LimeGreen

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

DarkSalmon

BurlyWood

HotPink

Salmon

Violet

LightCoral

SkyBlue

SandyBrown MediumSlateBlue

Tan
LightSalmon

Plum

Khaki

LightGreen

Aquamarine

Silver

LightSkyBlue

LightSteelBlue

LightBlue

PaleGreen

Thistle

PowderBlue

PaleGoldenrod

PaleTurquoise

LightGray

Wheat

NavajoWhite
BlanchedAlmond

Moccasin

LightPink

Gainsboro

PeachPuff

Pink

Bisque

LightGoldenrod

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.
b.
c.
d.
e.
f.

==
!=
<
>
<=
>=

: sama
: tidak sama
: lebih kecil dari
: lebih besar dari
: lebih kecil dari atau sama dengan
: 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.
b.
c.

&&
||
!

: dan
: atau
: 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