Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Forex Trading For Living
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 be-
rada 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 :
Sebelum memulai coding, pertama-tama kita mesti membuat templatenya terlebih dahulu. Template di sini san-
gatlah 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.
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.
1 of 7 06/07/2018 12:57
Belajar Membuat EA (Bagian 2) – Membuat EA Sederhana http://www.forextradingforliving.com/pemrograman-mql/belajar-membua...
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. Se-
lanjutnya 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 Meta-
Trader, 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 :
2 of 7 06/07/2018 12:57
Belajar Membuat EA (Bagian 2) – Membuat EA Sederhana http://www.forextradingforliving.com/pemrograman-mql/belajar-membua...
Setelah selesai, kita bisa save dan langsung meng-compilenya. Click Compile yang ada di bagian atas dari MQL Edi-
tor.
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.
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 |
3 of 7 06/07/2018 12:57
Belajar Membuat EA (Bagian 2) – Membuat EA Sederhana http://www.forextradingforliving.com/pemrograman-mql/belajar-membua...
//+------------------------------------------------------------------+
#property copyright "Forex Trading For Living @forextradingforliving.com"
#property link "http://www.forextradingforliving.com"
Catatan : Bila broker yang anda gunakan 5 digit, maka tambahkan angka 0 di belakang masing-masing Take Profit, Stop
Loss dan Slippage
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 :
Fungsi untuk mendapatkan nilai harga penutupan (close) menurut referensi adalah :
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).
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.
4 of 7 06/07/2018 12:57
Belajar Membuat EA (Bagian 2) – Membuat EA Sederhana http://www.forextradingforliving.com/pemrograman-mql/belajar-membua...
Setelah membuat logika di atas, kita tinggal memasukkan perintah untuk memasang posisi BUY / SELL sesuai den-
gan kondisi. Baris perintahnya adalah sebagai berikut :
Berdasarkan referensi, format dari fungsi BUY dan SELL adalah sebagai berikut :
int OrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double take-
profit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
5 of 7 06/07/2018 12:57
Belajar Membuat EA (Bagian 2) – Membuat EA Sederhana http://www.forextradingforliving.com/pemrograman-mql/belajar-membua...
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;
//+------------------------------------------------------------------+
//| 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 Cara Menggunakan Moving Average Belajar Membuat EA (Bagian 1) - Penge-
Buatan Secundo Lee dalam Forex Trading nalan Bahasa MQL
6 of 7 06/07/2018 12:57
Belajar Membuat EA (Bagian 2) – Membuat EA Sederhana http://www.forextradingforliving.com/pemrograman-mql/belajar-membua...
H Sumiharyanto
May 17, 2017 at 10:31 pm
xxxxxx
November 9, 2017 at 12:59 am
cara mengatasi indikator telat memberi data gimana ya? misal ma tepat di area dua atau tiga cendle di belakang
candle terbaru?
vendy
November 20, 2017 at 2:53 am
contohnya gimana?
7 of 7 06/07/2018 12:57