Apa Itu FOREX EA dan Bagaimana Cara Membuatnya

Mentari Mulia Berjangka. Apa sebetulnya arti dari forex robot ini? Forex Robot yag kerap di sebut Expert Advisors (EA) adalah suatu program komputer yang dirancang khusus untuk mepbuat trading forex dengan cara otomatis. Expert Advisors bisa meperbuat open transaksi serta close transaksi dengan cara mandiri tanpa campur tangan manusia. Dirancang dengan algoritma yang kompleks serta hanya support untuk platform trading tertentu, platform yang paling tak sedikit dipakai yaitu Meta Trader 4.

membuat robot forex ea sendiri

Pengenalan MQL 4

MQL4 adalah bahasa pemrograman yang tersedia pada platform MetaTrader 4. MQL4 ini paling umum dipakai untuk membikin Expert Advisor (EA), Custom Indicator, serta Script.

Expert Advisor / EA, semacam yang telah kami ketahui, adalah program untuk mengotomasi trading kamu berdasarkan logika2 serta paramater2 tertentu.

Custom Indicator, hampir sama semacam EA, cuma tak bisa meperbuat trading. Serta bisa memakai function2 indicator.

Script, sama semacam EA, hanya saja diperbuat hanya 1x saat script dijalankan.

Untuk membikin program/script dengan MQL 4, caranya lumayan mudah, lumayan jalankan saja MetaEditor.

MQL4 ini struktur serta syntax nya mirip C/C++. Sehingga kalau udah kebiasa dengan C/C++, wajibnya ga bakal mengalami kesusahan membikin program dengan MQL4. Kesusahannya mungkin saat debugging..
Langsung saja :

  1. Pertama kami buka dulu program MT4 nya, seusai itu klik menu tool serta klik Metaquotes Language Editor alias bisa klik F4
  2. Nah… seusai program Meta Editornya telah terbuka, buatlah lembar baru dengan klik menu New alias ctrl+N, seusai timbul kotak obrolan centang tahap Expert Advisor, serta selanjutnya klik Next
    dibawah ini contoh template Script MQL4
    //+------------------------------------------------------------------+
    //| MACD WITH PRICE MODIFICATON.mq4 |
    //| Copyright © 2011-2012, baguswidyantoro |
    //| http://baguswidyantoro.t35.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright © 2011, isikan nama anda disni"
    #property link "http://isikan website anda disini"
    
    extern int MagicNumber = 12345678;
    extern int TimeStart = 0;
    extern int TimeFinish = 24;
    extern double Lots = 0.1;
    extern double TrailingStop = 20.0;
    extern double TakeProfit = 30.0;
    extern int StopLoss = 50;
    extern int GridLevel = 1;
    extern int Multiplier = 2;
    extern int GridRange = 35;
    extern int TargetBalanceInPips = 5000;
    int gi_unused_132 = 0;
    double g_pips_144 = 4.0;
    double g_pips_152 = 3.0;
    double g_period_160 = 21.0;
    
    int init() {
    return (0);
    }
    
    int deinit() {
    return (0);
    }
    
    int start() {
    int l_ticket_52;
    if (Bars < 100) {
    Print("bars less than 100");
    return (0);
    }
    if (TakeProfit < 10.0) {
    Print("TakeProfit less than 10");
    return (0);
    }
    double l_imacd_0 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0);
    double l_imacd_8 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1);
    double l_imacd_16 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 0);
    double l_imacd_24 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 1);
    double l_ima_32 = iMA(NULL, 0, g_period_160, 0, MODE_EMA, PRICE_CLOSE, 0);
    double l_ima_40 = iMA(NULL, 0, g_period_160, 0, MODE_EMA, PRICE_CLOSE, 1);
    int l_ord_total_56 = OrdersTotal();
    if (l_ord_total_56 < 1) {
    if (AccountFreeMargin() < 100.0 * Lots) {
    Print("We have no money. Free Margin = ", AccountFreeMargin());
    return (0);
    }
    if (l_imacd_0 < 0.0 && l_imacd_0 > l_imacd_16 && l_imacd_8 < l_imacd_24 && MathAbs(l_imacd_0) > g_pips_144 * Point && l_ima_32 > l_ima_40) {
    l_ticket_52 = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, Ask + TakeProfit * Point, "macd", 12345678, 0, Green);
    if (l_ticket_52 > 0) {
    if (OrderSelect(l_ticket_52, SELECT_BY_TICKET, MODE_TRADES)) Print("BUY order opened : ", OrderOpenPrice());
    } else Print("Error opening BUY order : ", GetLastError());
    return (0);
    }
    if (l_imacd_0 > 0.0 && l_imacd_0 < l_imacd_16 && l_imacd_8 > l_imacd_24 && l_imacd_0 > g_pips_144 * Point && l_ima_32 < l_ima_40) {
    l_ticket_52 = OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, Bid - TakeProfit * Point, "macd", 12345678, 0, Red);
    if (l_ticket_52 > 0) {
    if (OrderSelect(l_ticket_52, SELECT_BY_TICKET, MODE_TRADES)) Print("SELL order opened : ", OrderOpenPrice());
    } else Print("Error opening SELL order : ", GetLastError());
    return (0);
    }
    return (0);
    }
    for (int l_pos_48 = 0; l_pos_48 < l_ord_total_56; l_pos_48++) {
    OrderSelect(l_pos_48, SELECT_BY_POS, MODE_TRADES);
    if (OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
    if (OrderType() == OP_BUY) {
    if (l_imacd_0 > 0.0 && l_imacd_0 < l_imacd_16 && l_imacd_8 > l_imacd_24 && l_imacd_0 > g_pips_152 * Point) {
    OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet);
    return (0);
    }
    if (TrailingStop <= 0.0) continue;
    if (Bid - OrderOpenPrice() <= Point * TrailingStop) continue;
    if (OrderStopLoss() >= Bid - Point * TrailingStop) continue;
    OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, Green);
    return (0);
    }
    if (l_imacd_0 < 0.0 && l_imacd_0 > l_imacd_16 && l_imacd_8 < l_imacd_24 && MathAbs(l_imacd_0) > g_pips_152 * Point) {
    OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet);
    return (0);
    }
    if (TrailingStop > 0.0) {
    if (OrderOpenPrice() - Ask > Point * TrailingStop) {
    if (OrderStopLoss() > Ask + Point * TrailingStop || OrderStopLoss() == 0.0) {
    OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, Red);
    return (0);
    }
    }
    }
    }
    }
    return (0);
    }+
  3. Simpan scrip yang telah kamu buat tersebut, coba / tes dahulu robot yang telah kamu buat serta gunakan pada Demo acaunt.

Penjelasan pendek manfaat script
Dalam suatu EA, tentu ada :
init() (Initialization)> Ketika suatu EA dijalankan, maka yang di eksekusi pertama kali adalah tahap ini. Serta ini hanya sekali berlangsung.
start() > di eksekusi ketika init berakhir di eksekusi.. & section ini looping berulang2 tiap tick
deinit() > Di eksekusi apabila suatu EA di remove dari chart.. Hanya sekali berlangsung..
sekarang masuk ke Syntak..
Syntak yang biasa dipakai dalam suatu EA adalah :
bool > adalah perbandingan true alias false
bool=true;
int (integer) > input adalah bilangan bulat
contoh
int bilangan=0;
double > input bisa memakai bilangan desimal
double lots=0.1;
string > input berupa huruf
string coment=”contoh teks yang dipasang”;
color > input yg dihasilkan berupa warna
color ijo=Green;
untuk penamaan variabel tak boleh memakai spasi..
supaya bisa di ubah2 maka memakai extern
contoh
extern double lots=0.1;

Demikian cara membuat robot forex EA sendiri. semoga bermanfaat bagi pada trader semuanya.