Anda di halaman 1dari 34

Belajar Membuat EA (Bagian 1) –

Pengenalan Bahasa MQL


Bahasa MQL? Apa sih itu? Bila anda belum pernah dengar apa itu bahasa
(bahasa pemrograman) MQL, anda berarti sama seperti orang kebanyakan.
Banyak trader forex hanya tahu tentang indicator dan Expert Advisor (EA),
tapi saat ditanya bahasa MQL, mereka tidak tahu. Sebenarnya apa sih bahasa
MQL itu? MQL (MetaQuotes Language) adalah bahasa pemrograman
untuk memprogram EA, Indicator ataupun script yang nantinya bisa
digunakan pada platform Meta Trader. Ada beberapa versi dari MQL dan
yang paling banyak digunakan adalah 2 versi terakhir yaitu MetaQuotes
Language 4(MQL4) dan MetaQuotes Language 5 (MQL5). Bahasa
pemrograman MQL ini sendiri biasanya digunakan untuk membuat :
 Expert Advisor EA atau banyak dikenal orang sebagai robot adalah program
yang berjalan seiring dengan gerakan harga pada market. EA sendiri punya
banyak fungsi. Ada yang berfungsi memberikan sinyal saja sampai dengan
melakukan eksekusi seperti memasang posisi baru ataupun menutup posisi
secara otomatis.EA tersimpan di folder \experts dalam folder MetaTrader
anda.
 Custom Indicator Selain indicator bawaan dari MetaTrader, kita juga bisa
membuat indicator sendiri (custom indicator). Sedikit berbeda dengan EA
yang bisa memasang posisi dan menutup posisi, indicator hanya berfungsi
sebagai alat analisa saja. Indicator tidak dapat memasang posisi ataupun
menutup posisi secara otomatis.Custom Indicators tersimpan di
folder \experts\indicators dalam folder Meta Trader anda.
 Script Script adalah program yang dijalankan sekali saja saat diaktifkan.
Tidak seperti EA, Script tidak akan bisa berjalan mengikuti harga yang
sedang berjalan. Script biasanya diaktifkan dengan cara mengclick script
tersebut.Scripts tersimpan di folder \experts\scripts dalam folder Meta Trader
anda.
 Library Library adalah sekumpulan fungsi program yang biasanya sering
digunakan. Library ini biasanya merupakan salah satu bagian dari Script / EA
/ Indicator.Libraries tersimpan di folder \experts\libraries dalam folder Meta
Trader anda.
 Included file Included file adalah file yang berisi bagian teks-teks yang
sering digunakan pada pembuatan sebuah program. Secara fungsi, included
file mirip seperti library. Included file ini nantinya dapat dimasukkan pada
EA, scripts, custom indicator ataupun library pada saat compile. Penggunaan
included file lebih disukai programmer karena penggunaan library biasanya
memberikan beban ekstra pada saat EA / indicator / script
dijalankan.Included files tersimpan di folder \experts\include dalam folder
Meta Trader anda
Bagi yang pernah belajar bahasa pemrograman C++ mungkin akan sedikit
terbantu saat belajar mengenai bahasa pemrograman MQL, karena banyak
syntax dari bahasa MQL mirip dengan syntax dari bahasa C++. Satu-satunya
kelemahan dari MQL mungkin adalah tidak adanya debugging untuk
melacak step by step program yang dibuat. Okay… Sebagai pengenalan, kita
akan langsung masuk ke dasar-dasar dari pemrograman MQL.

Struktur Program MQL

Untuk dapat memahami bagaimana suatu program ditulis, maka struktur dari
program harus dimengerti terlebih dahulu. Setiap bahasa pemrograman
punya struktur yang berbeda. Program MQL ini mirip seperti kumpulan
fungsi seperti halnya C++. Fungsi yang harus ada di MQL adalah start().
Suatu fungsi di program MQL dibuka dengan kurung kurawal ({)dan ditutup
dengan kurawal tutup (}). Di antara kurung kurawal dapat dituliskan
statement-statement program MQL. Berikut adalah struktur dari program
MQL.
#property copyright "Pembuat EA"

#property link "Alamat Website"

int init()

statemen-statemen;

return(0);

int deinit()
{

statemen-statemen;

return(0);

int start()

statemen-statemen;

return(0);

Deklarasi Variabel & Tipe Data


Variabel adalah suatu pengenal yang digunakan untuk menyimpan suatu nilai
dan nilai variabel dapat berubah-ubah selama proses dalam program.
Variabel harus mempunyai nama supaya program dapat menggunakan nilai
yang tersimpan di dalamnya. Variabel dalam MQL sendiri bisa
dideklarasikan dalam beberapa tipe data. Ada beberapa jenis tipe data pada
program MQL, yaitu :

bool
– tipe data boolean yang berisi antara true dan false

color
– tipe data untuk warna – pilihan warna yang bisa digunakan bisa dicek
di sini.

datetime
– tipe data tanggal dan jam
double
– tipe data float (bilangan bulat dan koma)

int
– tipe data integer (bilangan bulat) dari -2 milyar sampe +2 milyar / tipe data
karakter 1 digit

string
– tipe data teks

Selain tipe data di atas, ada juga tipe data array untuk menampung beberapa
data sekaligus dalam 1 variabel. Untuk array, akan saya jelaskan lebih lanjut
di bagian advance nantinya.

Berikut adalah contoh cara mendeklarasikan variabel dalam program MQL :

extern bool status = true;

static color warna = 0xFFFFFF;

datetime tgl = D'1980.07.19 12:30:27';

int i = 1;

int karakter = 'A';

double d = 1.4211;

string s = "Ticket # 12345";

double f[] = { 0.0, 0.236, 0.382, 0.5, 0.618, 1.0


};

Penggunaan extern di depan deklarasi variabel biasanya digunakan agar


variabel dapat juga berfungsi sebagai input dan bisa diakses dari window
property EA di Meta Trader.
Contoh bila kita membuat variabel seperti di bawah ini :
Maka bila di properties dari EA kita akan muncul seperti di bawah ini :

Penggunaan static di depan deklarasi variabel biasanya digunakan untuk


mendeklarasikan konstanta di mana nilainya tidak bisa berubah-ubah seiring
dengan berjalannya proses program.
Catatan : Nama variabel di MQL bersifat case sensitive, sehingga variabel
Periode_MA berbeda dengan periode_ma.
Adapun ada beberapa aturan dalam memberi nama variabel yaitu :
– Panjang nama variabel maksimal adalah 31 karakter
– Harus diawali huruf besar, huruf kecil atau _ (tidak bisa angka atau simbol
lain selain _ )
– Tidak bisa menggunakan keyword (contoh keyword : bool, color, extern,
static, case, else, if, true, false dan lain-lain)

Keyword sebagai Standard Constants


Untuk lebih mempermudah penulisan program, MQL telah mempunyai
semacam konstanta yang sudah ada dalam program. Konstanta ini biasanya
sering dipakai saat kita hendak menuliskan nilai-nilai tertentu mulai dari
market price, timeframe, jenis pemasangan posisi, arrow, dan masih banyak
lagi . Semuanya dapat anda akses hanya dengan menuliskan nama
konstantanya. Semua konstanta di sini bertipe int. List lengkap standard
constants dapat dilihat di sini.
Contoh penggunaan Standard Constants (yang berwarna biru) :

OrderSend(Symbol(),OP_BUY,1,Ask,3,0,0,"My order
#1",1,0,Green);
if(ma1tp){if(Ask<ma1)close(OP_BUY);if(Bid>ma1)close
(OP_SELL);}
double
ma2=iMA(NULL,0,maperiod2,0,MODE_EMA,PRICE_CLOSE,sh
ift);

Catatan / Komentar pada Program


Seperti halnya di semua bahasa pemrograman, anda juga bisa memberikan
catatan atau komentar pada bahasa MQL. Comment di sini tidak akan dibaca
oleh program dan hanya berfungsi sebagai petunjuk atau catatan bagi
programmer untuk lebih mengerti mengenai program yang dibuat.

Cara penulisan komentar pada program MQL ada 2 yaitu :


1. Tambahkan // di awal komentar
2. Gunakan /* */

Contoh :

int jumlah_lot=1; // Total Lot untuk pasang posisi

atau

/* Total Lot untuk pasang posisi */

int jumlah_lot=1;

Operator Aritmetika & Assignment Operator


Operator yang digunakan pada bahasa MQL ini sangat mirip dengan bahasa
C++. Berikut adalah beberapa contoh penggunaan operator aritmetika :

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 pembagian setelah B dibagi C.


Misalnya 10 % 3 = 1;

A++; //versi singkat dari operasi A=A+1

B--; //versi singkat dari operasi B=B-1

A=B*5; //isi dari A sama dengan B dikali 5

A+=5; //versi singkat dari A=A+5

A-=5; //versi singkat dari A=A-5

A%=5; //versi singkat dari A=A%5;

Selain semua operator aritmetika di atas, kita juga perlu mengetahui beberapa
operator pembanding, yaitu :

== : sama

!= : tidak sama

< : lebih kecil dari > : lebih besar dari

<= : lebih kecil dari atau sama dengan

>= : lebih besar dari atau sama dengan


&& : dan

|| : atau

! : not

Operator pembanding ini biasanya sering digunakan pada penyeleksian


kondisi, contohnya :

if (a==b) { } //kalau a sama dengan b

if (a>b) { } // kalau a lebih besar dari b

if (a!=b) { } // kalau a tidak sama dengan b

if (a==b && c<d) { } //jika a sama dengan b dan c


lebih kecil dari d

if (!a==b || c>=d) { } //jika a tidak sama dengan b


atau c lebih besar

atau sama dengan d

Fungsi-Fungsi Dasar
Setelah tahu mengenai variabel, tahap berikutnya adalah mengenal fungsi-
fungsi dasar dari bahasa MQL. Fungsi-fungsi dasar ini biasanya adalah
seperti fungsi untuk menampilkan hasil di layar, fungsi untuk pasang posisi
(BUY / SELL) dan beberapa fungsi lainnya. Semua referensinya dapat dilihat
di link berikut ini :

Fungsi Umum – Fungsi umum untuk menampilkan tulisan pada layar,


menampilkan message box, dll
Fungsi Trading – Fungsi yang berhubungan dengan pasang / tutup posisi,
mengecek order yang ada, dll
Fungsi Harga – Fungsi untuk mendapatkan nilai close, high, low, open dari
harga.
Sebagai sedikit pengenalan bagi yang baru belajar, berikut adalah beberapa
fungsi yang sering sekali saya pakai saat membuat EA.

– Fungsi untuk menampilkan tulisan pada layar

Comment("Teks yang ingin ditampilkan di layar");

– Fungsi untuk mengecek jumlah order yang sudah dipasang

OrdersTotal()

– Fungsi untuk mengecek nilai harga dari market

iClose(Symbol(),0,1)

– Fungsi untuk mengecek jumlah order yang sudah dipasang

AccountFreeMargin()
– Fungsi untuk memasang posisi baru (bisa BUY / SELL)

OrderSend(Symbol(), OP_BUY, var_jml_lot, Ask,


var_slippage,

Bid-var_stoploss*Point, Ask+var_takeprofit*Point,
0);

OrderSend(Symbol(), OP_BUY, var_jml_lot, Ask,


var_slippage,

Bid-var_stoploss*Point, Ask+var_takeprofit*Point,
0);

Decision (Penyeleksian Kondisi) & Looping (Perulangan)


Di dalam program, selain statemen dari fungsi-fungsi yang dijalankan
berurutan, juga ada statemen yang memungkinkan program untuk melakukan
tindakan tertentu berdasarkan kondisi ataupun melakukan proses perulangan
berdasarkan kondisi tertentu. Decision dan looping adalah inti dari sebuah
program komputer.
Statemen yang umum biasanya digunakan adalah untuk proses penyeleksian
kondisi (IF) dan proses perulangan (Do While). Di dalam MQL, hal ini juga
bisa dilakukan. berikut adalah contoh-contoh statemen tersebut :

if(p!=x && p>y) Comment("TRUE");

if(!a) Comment("not 'a'");

for(i=0,j=99; i<100; i++,j--) Comment(array[i][j]);

if(Month() == 12)

if(Day() == 31) Comment("Happy New Year!");

Buat yang ingin belajar mengenai bahasa pemrograman MQL lebih jauh
dapat mengunjungi website berikut ini :
MQL4 Online Resources – http://book.mql4.com/
MQL4 eBook – http://www.mql4.com/files/MQl4BookEnglish.chm
MQL5 Online Resources – http://www.mql5.com/en/docs
MQL5 eBook – https://www.mql5.com/files/pdf/mql5.pdf
RELATED
Belajar Membuat EA (Bagian 2) - Membuat EA SederhanaJanuary 29, 2014In "Expert
Advisor"
Canggihnya EA Chartist - Si Inem Cerdas Buatan Secundo LeeMarch 22, 2014In "Expert
Advisor"
Website-Website Terbaik Untuk Belajar ForexDecember 26, 2012In "Links"
Posted onDecember 16, 2013AuthorvendyCategoriesExpert Advisor, Pemrograman MQL
10 thoughts on “Belajar Membuat EA (Bagian 1) –
Pengenalan Bahasa MQL”

1. hidajatsays:
June 1, 2016 at 7:43 am

membuat programny pakai apa ? microsoft visual c++ bisa ?


tks
REPLY
1. vendysays:
June 1, 2016 at 8:15 am

gak bisa. pake mql. bahasanya mirip C kok


REPLY

2. Indahsays:
June 6, 2016 at 6:40 am

Itu template untuk apa? Pas jadi EA kayaknya ga ada fungsinya ya?
REPLY

1. vendysays:
June 6, 2016 at 6:57 am

template itu dipakai untuk tampilan layar. jd misal chart yg biasa kita pakai
tampIlannya candle dengan layar backgroundnya hitam serta candle naik
berwarna biru dan candle turun berwarna merah seta trrpasang indicator
moving average, maka bila kita save dalam bentuk template. setiap kali kita
load template tsb layar akan otomatis berubah tanpa kita melakukan setting
satu per satu
REPLY

3. rahmansays:
September 20, 2016 at 1:52 pm

kontak person anda dimana mas?


REPLY

4. gagahsays:
September 27, 2016 at 2:38 am

kayaknya perlu di print nih… cari2 ternyata ada disini. thanks.


REPLY

5. Lim A Liesays:
June 6, 2017 at 8:54 pm

Sy pingin bikin EA apakah bapak bisa membantu? Dan biayanya berapa ya ?


REPLY

1. vendysays:
July 17, 2017 at 3:30 am

kontak saja saya ke email saya di vendyxiao@gmail.com


REPLY

6. Dominicus Sufjatmikosays:
September 2, 2017 at 8:55 am

Selamat sore Mas Vendy,


Saya pingin brlajar membuat EA, tetapi saya masih 0 dalam bahasa
pemrograman,
Aturan mainnya bagaimana ?
Apakah Mas Vendy bis membimbing ?
REPLY

1. vendysays:
November 20, 2017 at 2:52 am

coba pelajari yang ada di blog ini step by step. terus pelajari baris2nya satu
persatu. cukup mudah dimengerti kok. asal ada basic pemrograman. Kalo
belum ada sama sekali ya harus belajar dikit2 coba aja beli di toko buku
bahasa pemrograman Pascal atau C
REPLY
Leave a Reply
Your email address will not be published. Required fields are marked *

COMMENT
NAME *
EMAIL *
WEBSITE

Post Comment

Notify me of follow-up comments by email.

Notify me of new posts by email.


Post navigation
PREVIOUSPrevious post:Menerima Loss saat Trading
NEXTNext post:Review Buku : Lazy Trader – Genius Trader oleh Secundo
Lee
Belajar Membuat EA (Bagian 2) –
Membuat EA Sederhana
Setelah membaca mengenai dasar-dasar dari pemrograman MQL, sekarang
marilah kita coba untuk praktek membuat EA yang sederhana. EA yang coba
saya buat ini sangatlah sederhana. Logikanya begini :
EA akan melakukan pengecekan terlebih dahulu apakah sudah ada posisi
atau tidak di market. Bila tidak, maka EA akan langsung memasang posisi
baru. EA akan melakukan BUY bila harga penutupan (close) candle terakhir
berada di atas garis Moving Average atau akan melakukan SELL bila harga
penutupan (close) candle terakhir berada di bawah garis Moving Average.

Sebelum mulai membuat MQL, pertama-tama kita mesti memahami konsep


dari strategi trading yang akan kita buat EA-nya. Dalam setiap strategi
trading yang ingin dibuatkan EA-nya, kita perlu mengetahui :

– Indikator apa yang digunakan?


– Bagaimana cara OP (Open Posisi) ke dalam market ?
– Bagaimana cara Exit baik itu TP (Take Profit) maupun SL (Stop Loss) ?

Langkah 1 – Buat Template


Sebelum memulai coding, pertama-tama kita mesti membuat templatenya
terlebih dahulu. Template di sini sangatlah penting untuk memudahkan kita
memahami dengan cara kerja dari EA tersebut. Template ini juga akan
membantu pada saat backtesting nanti. Dari contoh di atas, saya akan
membuat templatenya terlebih dahulu. Caranya tinggal menempelkan 1 garis
MA (saya menggunakan MA periode 30). Setelah selesai membuat template,
jangan lupa untuk menyimpan template tersebut.

Langkah 2 – Membuat Expert Advisor Baru


Selanjutnya kita tinggal membuka layar MQL Language Editor yang bisa
diakses dengan cara mengclick icon MQL Editor atau bisa diakses melalui
menu Tools > MetaQuotes Language Editor.

Selanjutnya akan muncul Window baru dan pilih File > New. Pilih Expert
Advisor.
Beri nama Expert Advisor yang ingin anda buat. Dalam hal ini saya
memberikan nama EA Buy Sell pada EA ini. Selanjutnya click Finish.

Setelah mengclick finish, maka kita akan masuk ke dalam layar editor dari
MQL.
Langkah 3 – Coding
Setelah kita masuk ke dalam layar editor, kita bisa mulai melakukan coding.
Semua bahasa pemrograman di MQL ini biasanya diletakkan di dalam int
start(). Mengapa ada di sini? Karena setiap kali ada gerakan chart dalam
MetaTrader, fungsi start() ini akan dijalankan. EA berjalan karena ada
gerakan tick dari market. Setiap ada gerakan 1 pips dari market, maka start()
akan dipanggil. Inilah dasar dari bahasa pemrograman EA.
Contoh paling sederhana dari sebuah program adalah menuliskan satu baris
teks pada layar chart yaitu dengan mengetikkan command berikut :

Comment ("Teks yang muncul di layar")


Setelah selesai, kita bisa save dan langsung meng-compilenya. Click
Compile yang ada di bagian atas dari MQL Editor.

Bila coding kita benar, maka tidak ada pesan error seperti tampak pada
gambar berikut ini.

Sekarang coba untuk melihat hasil coding kita di MetaTrader. Click


saja View > Strategy Tester. Pilih EA yang kita buat tadi selanjutnya
click Start.

Karena chart visual yang dimunculkan pada saat Backtest ini adalah chart
kosong, kita bisa membuka template yang sudah kita buat sebelumnya. Di
bagian pojok kiri atas kita akan melihat teks yang kita masukkan akan
muncul pada layar.

Langkah 4 – Membuat Variabel


Setelah berhasil mengetes EA awal tadi, sekarang kita kembali ke coding
untuk lanjut membuat EA MA Buy Sell. Salah satu komponen dari bahasa
pemrograman adalah adanya variabel. Di dalam MQL, biasanya variabel
akan banyak digunakan sebagai parameter seperti misalnya untuk Stop Loss,
Take Profit, dan lain sebagainya. Cara membuat variable bisa dilihat di
bagian artikel saya sebelumnya.
Pertama-tama, kita buat variabel untuk Take Profit, Stop Loss, Slippage
(perbedaan nilai harga yang ditoleransi pada saat masuk posisi) serta nilai
dari periode untuk garis Moving Average (MA). Sebagai contoh di sini saya
anggap periode MA adalah 30 dan nilai Take Profit dan Stop Loss-nya
adalah 20.

//+------------------------------------------------
------------------+

//| MA Buy Sell.mq4 |

//| Forex Trading For Living


@forextradingforliving.com |

//| http://www.forextradingforliving.com |

//+------------------------------------------------
------------------+

#property copyright "Forex Trading For Living


@forextradingforliving.com"

#property link
"http://www.forextradingforliving.com"

extern int TakeProfit = 30;

extern int StopLoss = 30;

extern int Slippage = 3;


extern int periodeMA = 30;

Catatan : Bila broker yang anda gunakan 5 digit, maka tambahkan angka 0
di belakang masing-masing Take Profit, Stop Loss dan Slippage
Langkah 5 – Mengecek apakah ada Posisi atau
Pending Order
Dalam pembuatan program EA, saya biasanya akan membuat sebuah baris
pengecekan yang akan mengecek apakah sudah ada posisi di market atau
tidak. Hampir semua EA yang ada akan melakukan pengecekan ini. Ini
adalah untuk menghindari pemasangan posisi yang terus menerus, karena
program akan selalu dijalankan setiap tick-nya. Baris pengecekannya adalah
sebagai berikut :

if (OrdersTotal()==0)

// Lakukan BUY / SELL Berdasarkan Posisi harga


terhadap MA

Langkah 6 – Mengecek apakah ada harga ada di


atas / bawah dari garis MA
Nah… Selanjutnya kita tinggal membuat statemen pengecekan yang
mengecek posisi harga apakah berada di bawah atau di atas garis Moving
Average (MA). Baris untuk mengecek adalah sebagai berikut :

if (iClose(Symbol(),0,1) >
iMA(Symbol(),0,periodeMA,0,MODE_EMA,

PRICE_CLOSE,1) )

// Lakukan BUY

}
else

if (iClose(Symbol(),0,1) <
iMA(Symbol(),0,periodeMA,0,MODE_EMA,

PRICE_CLOSE,1) )

// Lakukan SELL

Fungsi untuk mendapatkan nilai harga penutupan (close) menurut referensi


adalah :

double iClose(string symbol, int timeframe, int shift)


Keterangan :
– symbol – Symbol the data of which should be used to calculate indicator.
NULL means the current symbol.
– timeframe – Timeframe. It can be any of Timeframe enumeration values. 0
means the current chart timeframe.
– shift – Index of the value taken from the indicator buffer (shift relative to
the current bar the given amount of periods ago).
Di sini arti dari iClose(Symbol(),0,1) adalah :
 symbol : Symbol() – Mengambil pair mata uang tempat dijalankannya EA
 timeframe : 0 – Timeframe yang digunakan adalah timeframe yang sedang
aktif
 shift : 1 – Ini artinya nilai close (harga penutupan) yang diambil adalah dari
1 candle sebelum price yang sedang aktif
Sedangkan fungsi Moving Average sendiri menurut referensi adalah sebagai
berikut :

double iMA(string symbol, int timeframe, int period, int ma


_shift, int ma_method, int applied_price, int shift)
Parameters:
symbol – Symbol the data of which should be used to calculate indicator.
NULL means the current symbol.
timeframe – Timeframe. It can be any of Timeframe enumeration values. 0
means the current chart timeframe.
period – Averaging period for calculation.
ma_shift – MA shift. Indicators line offset relate to the chart by timeframe.
ma_method – MA method. It can be any of the Moving Average method
enumeration value.
applied_price – Applied price. It can be any of Applied price
enumeration values.
shift – Index of the value taken from the indicator buffer (shift relative to the
current bar the given amount of periods ago).
Berarti arti dari iMA(Symbol(),0,periodeMA,0,MODE_SMA,
PRICE_CLOSE,1) adalah :
 symbol : Symbol() – Mengambil pair mata uang tempat dijalankannya EA
 timeframe : 0 – Timeframe yang digunakan adalah timeframe yang sedang
aktif
 period : periodeMA – periode dari MA yang digunakan diambil dari variabel
periodeMA
 ma_shift : 0 – tidak ada penggunaan shift pada MA
 ma_method : MODE_SMA – kita menggunakan Simple Moving Average
(SMA)
 applied_price : PRICE_CLOSE – MA dihitung berdasarkan harga penutupan
(close) dari market
 shift : 1 – Nilai MA yang dihitung adalah berdasarkan harga penutupan
(close) dari 1 candle sebelum price yang sedang aktif
Langkah 7 – Melakukan proses Buy dan Sell
Setelah membuat logika di atas, kita tinggal memasukkan perintah untuk
memasang posisi BUY / SELL sesuai dengan kondisi. Baris perintahnya
adalah sebagai berikut :

Untuk posisi BUY

OrderSend(Symbol(),OP_BUY, 1.0, Ask, Slippage, Bid-


StopLoss*Point,

Ask+TakeProfit*Point, "BELI", 12345, 0, Green);

Untuk posisi SELL

OrderSend(Symbol(),OP_SELL, 1.0, Bid, Slippage,


Ask+StopLoss*Point,

Bid-TakeProfit*Point, "JUAL", 12345, 0, Red);


Berdasarkan referensi, format dari fungsi BUY dan SELL adalah sebagai
berikut :

int OrderSend(string symbol, int cmd, double volume, double price, int slippa
ge, double stoploss, double takeprofit, string comment=NULL, int magic=0,
datetime expiration=0, color arrow_color=CLR_NONE)
Berarti arti dari OrderSend(Symbol(),OP_BUY, 1.0, Ask, Slippage, Bid-
StopLoss*Point, Ask+TakeProfit*Point, “BELI”, 0, 0, Green); adalah
:Parameters :
symbol – Symbol for trading.
cmd – Operation type. It can be any of the Trade operation enumeration.
volume – Number of lots.
price – Preferred price of the trade.
slippage – Maximum price slippage for buy or sell orders.
stoploss – Stop loss level.
takeprofit – Take profit level.
comment – Order comment text. Last part of the comment may be changed
by server.
magic – Order magic number. May be used as user defined identifier.
expiration – Order expiration time (for pending orders only).
arrow_color – Color of the opening arrow on the chart. If parameter is
missing or has CLR_NONE value opening arrow is not drawn on the chart.
 symbol : Symbol() – Mengambil pair mata uang tempat dijalankannya EA
 cmd : OP_BUY – Memasang posisi BUY
 volume : 1.0 – Jumlah lot yang dipasang adalah 1 lot
 price : Ask – Posisi buy yang dipasang adalah pada nilai Ask dari market
 slippage : Slippage – Nilai slippage yang ditoleransi pada saat masuk posisi
berdasarkan variabel Slippage
 stoploss : Bid-StopLoss*Point – Nilai Stop Loss yang diatur adalah dari nilai
Bid dikurangi dengan variabel StopLoss
 takeprofit : Ask+TakeProfit*Point – Nilai Take Profit yang diatur adalah dari
nilai Ask ditambahkan dengan variabel TakeProfit
 comment : “BELI” – Komentar yang muncul saat kita melihat history adalah
“BELI”
 magicnumber : 12345 – Hanya seperti identifier untuk mengenali trade kita
(Bisa diisi dengan angka sembarang)
 expiration : 0 – Karena ini bukan pending order, maka diisi dengan 0.
 arrow_color : Green – Tandah panah yang muncul pada saat backtrack
ataupun pada saat EA berjalan berwarna hijau saat ada posisi BUY yang
dipasang
Dengan begitu maka script lengkap dari program EA Buy Sell adalah sebagai
berikut :

//+------------------------------------------------
------------------+

//| MA Buy Sell.mq4 |

//| Forex Trading For Living


@forextradingforliving.com |

//| http://www.forextradingforliving.com |

//+------------------------------------------------
------------------+

#property copyright "Forex Trading For Living


@forextradingforliving.com"

#property link
"http://www.forextradingforliving.com"

extern int TakeProfit = 20;

extern int StopLoss = 20;

extern int Slippage = 3;

extern int periodeMA = 30;

//+------------------------------------------------
------------------+

//| expert initialization function |

//+------------------------------------------------
------------------+

int init()
{

//----

//----

return(0);

//+------------------------------------------------
------------------+

//| expert deinitialization function |

//+------------------------------------------------
------------------+

int deinit()

//----

//----

return(0);

//+------------------------------------------------
------------------+

//| expert start function |


//+------------------------------------------------
------------------+

int start()

//----

Comment("MA Buy Sell");

if (OrdersTotal()==0)

if (iClose(Symbol(),0,1) >
iMA(Symbol(),0,periodeMA,0,MODE_EMA, PRICE_CLOSE,1)
)

OrderSend(Symbol(),OP_BUY, 1.0, Ask, Slippage,


Bid-StopLoss*Point, Ask+TakeProfit*Point, "BELI",
12345, 0, Green);

else

if (iClose(Symbol(),0,1) <
iMA(Symbol(),0,periodeMA,0,MODE_EMA, PRICE_CLOSE,1)
)

OrderSend(Symbol(),OP_SELL, 1.0, Bid, Slippage,


Ask+StopLoss*Point, Bid-TakeProfit*Point, "JUAL",
12345, 0, Red);
}

//----

return(0);

//+------------------------------------------------
------------------+

Canggihnya EA Chartist – Si Inem Cerdas


Buatan Secundo Lee
Beberapa bulan yang lalu setelah saya selesai
membaca buku tulisan Secundo Lee, saya belum sempat mencoba EA
terbaru buatan Secundo yaitu Chartist atau yang sering disebut Secundo
sebagai si Inem Cerdas. Mengapa disebut dengan sebutan si inem cerdas?
Karena EA ini diibaratkan adalah sebagai pembantu serba bisa dan seksi
(ups… gak selalu seksi sih. wkwkwk) yang akan membantu kita untuk
melakukan trading tanpa harus terus-menerus di depan monitor.
Baru beberapa minggu yang lalu, akhirnya saya punya kesempatan untuk
mencobanya. Hasilnya, EA ini benar-benar membantu saya dalam trading.
Seperti filosofi Secundo, trading memang harusnya dilakukan dengan santai
tanpa harus berada di depan monitor sepanjang hari. Dan EA Inem Cerdas ini
benar-benar membantu kita untuk lepas dari hal-hal yang bisa menguras
emosi dan waktu tersebut.

EA ini menurut saya sangatlah canggih. Kalau biasanya EA yang lain hanya
menetapkan stop loss dan taking profit pada harga yang fix, Inem Cerdas ini
bisa membantu menjaga trading kita dengan nilai Stop Loss dan Taking
Profit berdasarkan garis yang kita tentukan. Untuk lebih jelasnya coba lihat
ilustrasi saya berikut ini.
Oke… Bagi yang sudah belajar mengenai price action, biasanya kita tentu
tahu dengan apa yang namanya garis support dan resistance. Di garis-garis
inilah, harga punya kecenderungan untuk menguji apakah akan terus
melanjutkan trend-nya atau berbalik arah.

Dengan Inem Cerdas, maka kita bisa menyuruh si Inem untuk pasang posisi
dekat dengan garis support / resistance. Contohnya seperti chart berikut ini.

Chart di atas adalah contoh bagaimana saya memasang posisi dengan EA


Chartist (Inem Cerdas). Garis Support #1 adalah titik di mana saya
memasang posisi Buy, sehingga bila harga menyentuh garis tersebut, maka
secara otomatis EA akan memasang posisi BUY. Untuk nilai Stop Loss saya
memasangnya tepat beberapa pips di bawah garis support tersebut.
Sedangkan untuk nilai Take Profit saya memasangnya dekat dengan nilai
High sebelumnya.

Kecanggihan EA Inem Cerdas ini adalah bisa memasang posisi tanpa


diketahui oleh Broker (invisible). Selain itu EA ini juga akan melindungi
posisi kita. Bila harga sudah bergerak searah dengan plan kita, maka secara
otomatis EA akan memasang SL di atas harga entry kita.
Berikut adalah Algoritma dari Inem Cerdas :

Pada saat trader meletakkan Expert Advisors ini pada chart-nya dengan
setting default, EA tidak akan melakukan apa-apa. Robot hanya akan
membuka posisi pada saat harga menyentuh garis-garis dengan nama
tertentu. Nama garis-garis tersebut adalah:

 Chartist Buy: EA akan otomatis membuka posisi Buy pada saat pasar
menyentuh garis ini.
 Chartist Sell: EA akan otomatis membuka posisi Sell pada saat pasar
menyentuh garis ini.
 Chartist Buy TP: Apabila trader mempunyai posisi Buy maka EA akan
otomatis mentutup posisi tersebut apabila pasar sudah berada di atas garis ini.
 Chartist Sell TP: Apabila trader mempunyai posisi Sell maka EA akan
otomatis menutup posisi tersebut apabila pasar sudah berada di bawah garis
ini.
 Chartist Buy SL: Apabila trader mempunyai posisi Buy maka EA akan
otomatis menutup posisi tersebut apabila pasar sudah berada di bawah garis
ini.
 Chartist Sell SL: Apabila trader mempunyai posisi Sell maka EA akan
otomatis menutup posisi tersebut apabila pasar sudah berada di atas garis ini.
Pada saat posisi trader dalam kondisi profit lebih besar dari nilai tertentu
(ProfitLockAfter) maka Chartist EA otomatis akan memindahkan Stop
Loss pada level tertentu (ProfitLockValue) di atas nilai breakeven.
Setelah pasar mengenai garis Chartist Buy, maka garis Chartist Buy akan di
letakan di belakang, sehingga tidak akan terjadi posisi yang gtrader. Garis
Chartist Sell juga akan diletakkan di belakang.

Fungsi Utama Chartist Expert Advisors

 Mengeksekusi trading plan tanpa melibatkan emosi


 Menjaga posisi trader pada saat sudah profit dengan menggunakan parameter
ProfitLockAfter, ProfitLockValue.
 Menjalankan fungsi trailing pada saat trader sudah profit.
 Semua rencana trading ada pada layar, Chartist EA tidak mengirimkan
rencanatrading itu pada broker. Semua akan diproses secara internal oleh
Chartist EA, dengan kata lain Take Profit dan Stop Loss trader hanya
diketahui oleh trader (tersembunyi).
 Mengatur Money Mangement setiap posisi trader.
Bagi yang ingin mendownload Inem Cerdas ini, bisa langsung ke
website http://inemcerdas.com. Tenang saja, EA ini gratis dan tidak dipungut
biaya apapun.
RELATED

Belajar Membuat EA (Bagian 2) –


Membuat EA Sederhana
Setelah membaca mengenai dasar-dasar dari pemrograman MQL, sekarang
marilah kita coba untuk praktek membuat EA yang sederhana. EA yang coba
saya buat ini sangatlah sederhana. Logikanya begini :
EA akan melakukan pengecekan terlebih dahulu apakah sudah ada posisi
atau tidak di market. Bila tidak, maka EA akan langsung memasang posisi
baru. EA akan melakukan BUY bila harga penutupan (close) candle terakhir
berada di atas garis Moving Average atau akan melakukan SELL bila harga
penutupan (close) candle terakhir berada di bawah garis Moving Average.

Sebelum mulai membuat MQL, pertama-tama kita mesti memahami konsep


dari strategi trading yang akan kita buat EA-nya. Dalam setiap strategi
trading yang ingin dibuatkan EA-nya, kita perlu mengetahui :

– Indikator apa yang digunakan?


– Bagaimana cara OP (Open Posisi) ke dalam market ?
– Bagaimana cara Exit baik itu TP (Take Profit) maupun SL (Stop Loss) ?

Langkah 1 – Buat Template


Sebelum memulai coding, pertama-tama kita mesti membuat templatenya
terlebih dahulu. Template di sini sangatlah penting untuk memudahkan kita
memahami dengan cara kerja dari EA tersebut. Template ini juga akan
membantu pada saat backtesting nanti. Dari contoh di atas, saya akan
membuat templatenya terlebih dahulu. Caranya tinggal menempelkan 1 garis
MA (saya menggunakan MA periode 30). Setelah selesai membuat template,
jangan lupa untuk menyimpan template tersebut. Continue reading Belajar
Membuat EA (Bagian 2) – Membuat EA Sederhana
Posted onJanuary 29, 2014CategoriesExpert Advisor, Pemrograman MQL3 Comments

Belajar Membuat EA (Bagian 1) –


Pengenalan Bahasa MQL
Bahasa MQL? Apa sih itu? Bila anda belum pernah dengar apa itu bahasa
(bahasa pemrograman) MQL, anda berarti sama seperti orang kebanyakan.
Banyak trader forex hanya tahu tentang indicator dan Expert Advisor (EA),
tapi saat ditanya bahasa MQL, mereka tidak tahu. Sebenarnya apa sih bahasa
MQL itu? MQL (MetaQuotes Language) adalah bahasa pemrograman
untuk memprogram EA, Indicator ataupun script yang nantinya bisa
digunakan pada platform Meta Trader. Ada beberapa versi dari MQL dan
yang paling banyak digunakan adalah 2 versi terakhir yaitu MetaQuotes
Language 4(MQL4) dan MetaQuotes Language 5 (MQL5). Bahasa
pemrograman MQL ini sendiri biasanya digunakan untuk membuat :
 Expert Advisor EA atau banyak dikenal orang sebagai robot adalah program
yang berjalan seiring dengan gerakan harga pada market. EA sendiri punya
banyak fungsi. Ada yang berfungsi memberikan sinyal saja sampai dengan
melakukan eksekusi seperti memasang posisi baru ataupun menutup posisi
secara otomatis.EA tersimpan di folder \experts dalam folder MetaTrader
anda.
 Custom Indicator Selain indicator bawaan dari MetaTrader, kita juga bisa
membuat indicator sendiri (custom indicator). Sedikit berbeda dengan EA
yang bisa memasang posisi dan menutup posisi, indicator hanya berfungsi
sebagai alat analisa saja. Indicator tidak dapat memasang posisi ataupun
menutup posisi secara otomatis.Custom Indicators tersimpan di
folder \experts\indicators dalam folder Meta Trader anda.

Singkat mengenal C++ dan Pascal


Posted on August 21, 2013
Pengertian C++
C++ adalah bahasa pemrograman komputer C++ dikembangkan di Bell Labs
(Bjarne Stroustrup) pada awal tahun 1970-an, Bahasa itu diturunkan dari bahasa
sebelumnya, yaitu BCL, Pada awalnya, bahasa tersebut dirancang sebagai bahasa
pemrograman yang dijalankan pada sistem Unix, Pada perkembangannya, versi
ANSI (American National Standart Institute) Bahasa pemrograman C menjadi
versi dominan, Meskipun versi tersebut sekarang jarang dipakai dalam
pengembangan sistem dan jaringan maupun untuk sistem embedded, Bjarne
Stroustrup pada Bell labs pertama kali mengembangkan C++ pada awal 1980-an,
Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support
untuk pemrograman tingkat rendah (low level coding). Pada C++ ditambahkan
konsep-konsep baru seperti class dengan sifat-sifatnya seperti inheritance dan
overloading. Salah satu perbedaan yang paling mendasar dengan bahasa C adalah
dukungan terhadap konsep pemrograman berorientasi objek (Object Oriented
Programming).

Perbedaan Antara Bahasa pemrograman C dan C++ meskipun bahasa-bahasa


tersebut menggunakan sintaks yang sama tetapi mereka memiliki perbedaan, C
merupakan bahasa pemrograman prosedural, dimana penyelesaian suatu masalah
dilakukan dengan membagi-bagi masalah tersebut kedalam su-submasalah yang
lebih kecil, Selain itu, C++ merupakan bahasa pemrograman yang memiliki sifat
Pemrograman berorientasi objek, Untuk menyelesaikan masalah, C++ melakukan
langkah pertama dengan menjelaskan class-class yang merupakan anak class yang
dibuat sebelumnya sebagai abstraksi dari object-object fisik, Class tersebut berisi
keadaan object, anggota-anggotanya dan kemampuan dari objectnya, Setelah
beberapa Class dibuat kemudian masalah dipecahkan dengan Class.
Contoh Program C++
Contoh program sederhana C++ untuk hello world dengan menggunakan Pustaka
Dasar C++ dapat dilihat di bawah ini:
# include
void main()
{
Cout << “hello world\n”;
}

PASCAL

Pengertian Pascal

Pascal adalah bahasa tingkat tinggi (High Level Languange) yaitu bahasa
pemrograman yang mudah dipahami oleh bahasa
manusia. Pascal merupakan bahasa yang terstruktur tersusun atas sejumlah
blok. Blok-blok yang kecil selanjutnya dapat dapat dipakai untuk membuat
blok yang lebih besar. Blok ini lebih dikenal dengan sebutan subprogram,
yang dibedakan atas prosedur dan fungsi
Contoh program Hello World menggunakan bahasa pascal adalah sebagai berikut:
Program HelloWorld;
begin
writeln(‘Hello world’);
end.
Tutorial C++ Lengkap, Belajar Bahasa
C++ untuk Pemula
17:23:00 0 Comments by SUPRI YANTO · 0
Tutorial C++ Lengkap, Belajar Bahasa C++ untuk Pemula. Sebelum membahas lebih dalam
ke materi ada hal yang harus saya berikan mengenai apa itu C++? C++ adalah bahasa
pemrograman yang berhubungan dengan bahasa C, yang meliputi konsep kompilasi, kerangka
program dan file header, dalam pembahasan kali ini saya akan memberikan trik dan tips agar
Anda bisa belajar mengenai bahasa pemrograman C++ dengan mudah.
Perlu Anda ketahui terlebih dahulu bahwa bahasa C++ dan C tergolong ke dalam bahasa
pemrograman tingkat menengah, lebih jelasnya bisa di lihat di bawah ini golongan bahasa
pemrograman menurut tingkat kesulitannya.

Bahasa Tingkat Tinggi :


 Pascal
 Modula-2
 Ada
 COBOL
 FORTRAN
 BASIC
Bahasa Tingkat Menengah:
 Java
 C
 C++
 FORTH
Bahasa Tingkat Rendah:
 Assembler
 Macro-Assembler

Dari semua tingkat bahasa yang terdapat di atas, maka bahasa yang paling sulit untuk di kuasai
adalah bahasa yang memiliki tingkat rendah yaitu macro assembler dan assembler, mengapa
demikian? Karena bahasa pemrograman ini masih bersifat primitif yang artinya program hanya
bersifat 0 dan 1 saja yang dapat di kenali oleh sistem komputer. Kemudian pada tahun 1983,
seorang yang bernama doktor Bjarne Stroustrup mengembangkan bahasa pemrograman
tersebut hingga lahirlah bahasa pemrograman C++.

Dalam bahasa C++ Anda juga harus mengerti tentang apa itu Preprocessor, untuk itu marilah
kita bahas bersama sama tentang Preprocessor pada bahasa C++.

1. Preprocessor

Preprocessor, mula mula kode program akan di masukkan ke bagian preprocessor, yaitu sebuah
tanda yang di awali dengan tanda #(pround) dan menghasilkan file yang akan di lewatkan ke
dalam kompiler. Beberapa preprocessor di antaranya terbuat adalah sebagai berikuti ini:
#include
#define
#ifdef

dan lain lain

2. Kerangka Program C

Setiap program yang di tulis dalam bahasa C/C++ pasti akan memiliki sebuah fungsi utama
yaitu int main ( ). Apabila kita akan mendefinisikan fungsi fungsi lai maka kita akan
melakukannya di luar fungsi utama tersebut. Dalam C++, kode yang di baca adalah kode kode
yang terdapat pada fungsi utama, jika terjadi pemanggilan fungsi lain, maka program akan
mencari nama fungsi tersebut untuk di eksekusi dan apabila sudah melakukan eksekusi maka
program akan kembali ke dalam fungsi utama, begitu juga seterusnya.

Apabila Anda belum memahami tentang kerangka pada program bahasa C++, maka akan saya
berikan kerangka program bahasa C di bawah ini.

#include <iostream>

// prototype fungsi
tipe_data nama_fungsi1 (parameter1, parameter2, . . .);
tipe_data nama_fungsi2 (parameter1, parameter2, . . .);
. . .

// Fungsi utama
int main (void) {
Statement;
. . .
return 0;
}

// Implementasi funsi
tipe_data nama_fungsi1(parameter1, parameter2, . . . ) {
Statement
. . .
}

tipe_data nama_fungsi2 (parameter1, parameter2, . . .) {


. . .

Itu adalah kerangka sebuah program bahasa C yang dapat Anda pahami terlebih dahulu, karena
pada dasarnya bahasa C tidak jauh berbeda dengan bahasa C++. Untuk itu maka Anda dapat
memahaminya terlebih dahulu.

Download Ebook Belajar Bahasa Pemrograman C++ PDF


Contoh Program Sederhana Bubble Sort C++

3. Komentar

Dalam bahasa C++ ada dua tanda yang dapat di gunakan untuk sebuah komentar, yang
pertama ada tanda yang di gunakan untuk komentar satu baris saja dan yang ke dua tanda yang
di gunakan untuk komentar lebih dari satu baris. Untuk itu maka saya akan memberikan
penjelasan mengenai tanda komentar, yang pertama yaitu tanda komentar satu baris.
 Komentar Menggunakan Tanda //
Tanda // di gunakan untuk menuliskan sebuah komentar di bahasa pemrograman C++, tanda ini
yaitu bisa di gunakan dan tidak akan terjadi error apabial di gunakan hanya untuk satu baris
komentar saja. Itu artinya Anda tidak boleh menggunakan tanda ini jika Anda ingin memberikan
sebuah komentar lebih dari satu baris, karena itu akan mengakibatkan sebuar kesalahan atau
bisa juga error.

// ini adalah sebuah komentar satu baris

 Komentar Menggunakan Tanda /*. . . */


Tanda /*. . . */ di gunakan untuk komentar yang lebih dari satu baris, untuk itu maka jika Anda
ingin memberikan sebuah komentar lebih dari satu baris gunakanlah tanda tersebut.

/* Ini komentar
lebih dari satu
baris*/

4. Identifier

Identifier adalah suatu pengenal atau pengidentifikasi yang kita deklarasikan agar kompiler dapat
mengenalinya. Identifier sendiri dapat berupa nama variabel, konstanta, fungsi, kelas, template
maupun namespace.

Identifier yang berperan sebagai variabel dan konstanta berfungsi untuk manampung sebuah
nilai yang di gunakan dalam program. Identifikasi ini di lakukan untuk mempermudah proses
penanganan data atau nilai, misalnya untuk memasukkan dan menampilkan sebuah nilai.

Di bawah ini adalah contoh yang benar tentang penulisanya Identifier pada C++
 Identifier tidak boleh berupa angka atau di awali dengan karaketer yang berupa angka,
Contoh:
long 100 ;
long 2x ;
 Identifier tidak boleh mengandung spasi, Contoh:
int Bilangan Bulat ;
 Identifier tidak boleh mengandung karakter karakter simbol, Contoh:
long $atu ;
long lima% ;
long en@m ;
 Identifier tidak boleh mengandung sebuah kata kunci atau keyword, Contoh:
long break ;
long return ;

Itulah penulisan sebuah identifier yang benar dalam bahasa pemrograman C++, semoga Anda
dapat memahaminya. Apabila Anda ingin membuat sebuah identifier maka Anda harus bisa
menyesuaikan dengan nama sesuai kebutuhan, jangan sampai nama identifier bisa membuat
Anda sendiri menjadi bingung.

Cukup itu dulu mengenai bahasa pemrograman C++, akan saya teruskan lagi pada sesi
berikutnya.