Tutorial membuat Expert Advisors (EA) khusus MT4 bagi pemula.
Langkah-langkah membuat expert advisors:
intern : input data tidak bisa dirubah pemakai kecuali melalui MetaEditor
double : tipe data dalam angka decimal seperti 0.1; 0.2 dll
int : tipe data dalam angka eksak seperti 1; 2; 10; 100; 1000, dll
OnInit : perintah yang pertama kali dijalankan ketika EA di attach ke MT4
OnDeinit : perintah yang terakhir kali dilakukan ketika EA dihapus (remove) dari MT4
OnTick : perintah yang dilakukan ketika EA sudah di attach ke MT4
OnTester : perintah yang dilakukan ketika EA di ujicobakan (belum di attach ke MT4)
Tanda garis miring dua (//) : untuk memberi komentar 1 baris pada script
Tanda garis miring satu dan asterik (/*) : untuk memberi tanda awal komentar beberapa baris pada script
Tanda asterik dan garis miring (*/) : untuk memberi tanda akhir komentar beberapa baris pada script
//+------------------------------------------------------------------+Langkah-langkah membuat expert advisors:
- Sebelum membuat expert advisors (EA) sebaiknya strategi manual yang kita pakai sudah teruji menghasilkan profit terlebih dahulu paling tidak selama dua bulan.
- Apabila sudah teruji menghasilkan profit barulah kita buat expert advisors menggunakan acuan strategi manual tersebut.
- Sebelumnya kita harus mengenal istilah-istilah dasar yang dipakai dalam MetaEditor seperti di bawah ini :
intern : input data tidak bisa dirubah pemakai kecuali melalui MetaEditor
double : tipe data dalam angka decimal seperti 0.1; 0.2 dll
int : tipe data dalam angka eksak seperti 1; 2; 10; 100; 1000, dll
OnInit : perintah yang pertama kali dijalankan ketika EA di attach ke MT4
OnDeinit : perintah yang terakhir kali dilakukan ketika EA dihapus (remove) dari MT4
OnTick : perintah yang dilakukan ketika EA sudah di attach ke MT4
OnTester : perintah yang dilakukan ketika EA di ujicobakan (belum di attach ke MT4)
Tanda garis miring dua (//) : untuk memberi komentar 1 baris pada script
Tanda garis miring satu dan asterik (/*) : untuk memberi tanda awal komentar beberapa baris pada script
Tanda asterik dan garis miring (*/) : untuk memberi tanda akhir komentar beberapa baris pada script
- Untuk membuat expert advisors pertama-tama buka program MT4
- Kemudian klik tombol menu MetaEditor yang ada disebelah kanan tombol New Order atau disebelah kiri tombol AutoTrading
- Setelah muncul jendela baru MetaEditor
- Klik tombol New dibawah menu File
- Pilih Expert Advisor (Template)
- Klik tombol Next
- Beri nama expert advisor dibelakang tulisan Experts\ , beri nama Author dan Link
- Klik tombol Next
- Kosongkan pilihan pada jendela berikutnya kecuali OnTester dan klik tombol Next
- Klik tombol Finish
- Akan muncul template seperti di bawah ini //+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+
//| Tester function |
//+------------------------------------------------------------------+
double OnTester()
{
//---
double ret=0.0;
//---
//---
return(ret);
}
//+------------------------------------------------------------------+ - Di bawah ini saya berikan contoh kode EA hedging / order buy dan sell bersamaan yang sederhana
- Langkah-langkahnya hapus template kode seperti langkah No 11 di atas kemudian ketik kode seperti di bawah ini, setelah selesai klik tombol Compile
//| Hedging.mq4 | //nama EA
//| Copyright 2013, mukh47.blogspot.com | //Author
//| http://mukh47.blogspot.com | //Link
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, mukh47.blogspot.com"
#property link "http://mukh47.blogspot.com"
#include <stdlib.mqh>
#include <stderror.mqh>
extern double Lots=0.1; //volume lot yang diinginkan
extern int Magic=0; //Magic: magic number / identitas order kita
extern int Slippage=3; //Slippage: +- point yang diijinkan dari harga order kita
extern int starttrade=1; //jam mulai trading kita (waktu server)
extern int endtrade=23; //jam berakhir trading kita (waktu server)
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
if(DayOfWeek()==0 || DayOfWeek()==6) return(0); //kode untuk sabtu minggu libur tidak trading
//----Cari Order---------------------------
if(OrdersTotal()<1) //jika tidak ada order
{
for(int y=1; y<=OrdersTotal(); y++)
{
if (OrderSelect(y-1,SELECT_BY_POS)==true)
{
if(OrderMagicNumber()==Magic) //jika ada order sesuai identitas magic number kita
{
int orderada=1; //order sesuai magic number kita bernilai benar/ada
}
}
}
}
//-----------------------------------------------------------------------------------+
// Opening criteria
//-----------------------------------------------------------------------------------+
if ( OrdersTotal()<1 && Hour()>=starttrade && Hour()<=endtrade && orderada!=1) /*contoh kriteria order
Jika total order nol dan jam trading sesuai kriteria dan tidak ada order sesuai magic number kita*/
{
int openbuy=OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage,0,0,"",Magic,0,Blue) ; /*perintah order buy*/
if (openbuy <0 ) // jika order buy gagal
Print ("OrderSend failed with error #", GetLastError()); /* perintah menampilkan penyebab kesalahan/kegagalan order*/
int opensell=OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage,0,0,"",Magic,0,Red); /*perintah order sell */
if (opensell <0 ) //jika order sell gagal
Print ("OrderSend failed with error #", GetLastError()); /*perintah menampilkan penyebab kesalahan/kegagalan order*/
}
//----
return(0);
}
//+------------------------------------------------------------------+//
Artikel lainnya:
Cara install metatrader MT4