Agustus 20, 2025

Download BOT EA Forex EURUSD Gratis MQL4 – Scalping M1 Auto Lot

🤖 Robot EA Forex EURUSD Gratis Open Source MQL4 – Scalping M1 dengan Auto Lot Super Cerdas

Trading forex dengan robot (EA) selalu menarik, apalagi kalau ada yang gratis, open source, dan bisa dimodifikasi. Kali ini eafxgratis.com bahas EA Snipper EURUSD untuk MetaTrader 4 (MT4) yang dirancang khusus scalping time frame 1 menit (M1).

Pasti banyak trader yang penasaran bagaimana cara kerja robot EA Forex EURUSD gratis open source ini dan bagaimana cara menggunakanya di MetaTrader 4 (MT4). EA (Expert Advisor) ini didesain khusus untuk scalping di time frame 1 menit (M1), sehingga cocok bagi trader yang suka entry cepat dengan target profit kecil tapi konsisten.

EA ini sudah diuji di pair EURUSD dengan hasil yang bisa bikin jantungan. Bahkan dari modal kecil $100 saja bisa berkembang jadi puluhan ribu dolar hanya dalam 2 tahun. Gokil kan? Yuk kita kupas tuntas.

🔑 Kenapa Harus Menggunakan EA Forex EURUSD Scalping M1?

  • Pair EURUSD terkenal dengan spread rendah (biasanya < 2 pips) → ideal untuk scalping.
  • Time frame 1 menit (M1) memungkinkan banyak peluang entry dalam sehari.
  • EA open source → Anda bisa memodifikasi sesuai strategi.
  • Gratis → tidak perlu beli EA mahal, cukup pahami logika dasar.
  • Winrate tinggi → EA ini dirancang dengan kombinasi indikator Bollinger Bands dan manajemen risiko ketat.

📌 Script EA Forex EURUSD Gratis (Open Source MQL4)

Berikut adalah script lengkapnya, sudah saya tambahkan comment di setiap baris penting agar mudah dipahami:


//+---------------------------------------------------------------------+
//|             Snipper EURUSD by: www.eafxgratis.com                  |
//|             Untuk MetaTrader 4 (MQ4) - WinRate > 90%               |
//+---------------------------------------------------------------------+
#property strict 

// -------------------- Input Parameter -----------------------------
// Parameter utama yang bisa diubah sesuai kebutuhan trader
extern double RiskPercent       = 0.5;     // Persentase risiko per posisi (disarankan kecil 1-2%)
extern int    Slippage          = 2;       // Maksimal slippage saat eksekusi order
extern double StopLossPips      = 10;      // Stop Loss default 10 pips
extern double TrailingStartPips = 3;       // Trailing mulai aktif jika profit sudah > 3 pips
extern double TrailingStepPips  = 1;       // Jarak pergeseran trailing stop 1 pip

// Setting Bollinger Bands (indikator bawaan MT4)
extern int    BB_Period    = 20;     
extern double BB_Deviation = 2.0;    

// -------------------- Variabel Global -----------------------------
// Variabel global untuk menyimpan data candle
double candleOpen, candleHigh, candleLow;
datetime candleCheckedTime = -1;
bool orderExecutedThisCandle = false;

//+------------------------------------------------------------------+
//| Fungsi hitung lot otomatis berdasarkan risiko                   |
//+------------------------------------------------------------------+
double CalculateLotSize() {
   double balance   = AccountBalance();              // Ambil saldo akun
   double riskMoney = balance * RiskPercent / 100.0; // Hitung nominal uang yang siap dirisikokan

   double tickValue = MarketInfo(Symbol(), MODE_TICKVALUE); 
   // tickValue = nilai 1 pip untuk 1 lot dalam mata uang akun
   double slMoney   = StopLossPips * tickValue;      // Nominal kerugian jika SL kena
   if (slMoney <= 0) return (0.01);                  // Minimal lot default jika perhitungan error

   double lot = riskMoney / slMoney;                 // Hitung lot berdasarkan risiko

   double minLot  = MarketInfo(Symbol(), MODE_MINLOT);   // Lot minimum broker
   double maxLot  = MarketInfo(Symbol(), MODE_MAXLOT);   // Lot maksimum broker
   double lotStep = MarketInfo(Symbol(), MODE_LOTSTEP);  // Kelipatan lot broker

   // Batasi lot agar sesuai aturan broker
   lot = MathMax(minLot, MathMin(lot, maxLot));
   lot = MathFloor(lot / lotStep) * lotStep;

   // Tambahkan batas manual maksimal 1 lot
   if (lot > 1.0) lot = 1.0;

   return NormalizeDouble(lot, 2); // Hasil akhir lot dibulatkan 2 digit
}

//+------------------------------------------------------------------+
//| Inisialisasi EA                                                 |
//+------------------------------------------------------------------+
int OnInit() {
   Print("EA aktif di ", Symbol(), " dengan RiskPercent: ", RiskPercent);

   // Pastikan EA hanya berjalan di time frame M1
   if (Period() != PERIOD_M1) {
      Print("Error: EA hanya bisa dijalankan di time frame M1.");
      return (INIT_FAILED);
   }

   // EA hanya untuk EURUSD (boleh ada suffix broker, contoh: EURUSD.s)
   string sym = Symbol();
   if (StringFind(sym, "EURUSD") != 0) {
      Print("Pair tidak diizinkan: ", sym);
      return (INIT_FAILED);
   }

   return (INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Fungsi bantu hitung nilai pip                                   |
//+------------------------------------------------------------------+
double PipValue() {
   if (Digits == 3 || Digits == 5) return 0.00010; // EURUSD 5 digit = 0.00010
   return 0.0001; // EURUSD 4 digit
}
double PipToPrice(double pips) { return pips * PipValue(); }

//+------------------------------------------------------------------+
//| Fungsi utama EA (OnTick)                                        |
//+------------------------------------------------------------------+
void OnTick() {
   double spread = (Ask - Bid) / PipValue();
   if (spread > 2.0) return; // Jika spread > 2 pip, jangan entry

   int hours = TimeHour(TimeCurrent()); 
   if (hours < 9 || hours >= 23) return; // Hanya trading jam market Eropa - US

   datetime currentCandleTime = Time[0];
   if (currentCandleTime != candleCheckedTime) {
      // Update data candle baru
      candleCheckedTime = currentCandleTime;
      candleOpen = Open[0];
      candleHigh = High[0];
      candleLow  = Low[0];
      orderExecutedThisCandle = false;
   }

   // Hitung pergerakan candle dalam pips
   double moveUpPips   = (High[0] - candleOpen) / PipValue();
   double moveDownPips = (candleOpen - Low[0]) / PipValue();

   // Cek apakah sudah ada order terbuka
   bool hasOpenOrder = false;
   for (int i = 0; i < OrdersTotal(); i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol() == Symbol()) { hasOpenOrder = true; break; }
      }
   }

   // Jika belum ada order dan belum entry di candle ini
   if (!hasOpenOrder && !orderExecutedThisCandle) {
      int secondsSinceCandleOpen = TimeCurrent() - candleCheckedTime;
      if (secondsSinceCandleOpen >= 40) { // Entry setelah 40 detik candle berjalan
         double lot = CalculateLotSize();
         if (lot <= 0) return;

         // SELL: jika candle naik 10 pips lalu berbalik
         if (moveUpPips >= 10 && (High[0] - Bid) / PipValue() >= 0.1) {
            double sl = Ask + PipToPrice(StopLossPips);
            double tp = iBands(Symbol(), 0, BB_Period, BB_Deviation, 0, PRICE_CLOSE, MODE_LOWER, 0);
            int ticket = OrderSend(Symbol(), OP_SELL, lot, Bid, Slippage, sl, tp, "SELL Entry", 0, 0, Red);
            if (ticket > 0) orderExecutedThisCandle = true;
         }

         // BUY: jika candle turun 10 pips lalu berbalik
         if (moveDownPips >= 10 && (Bid - Low[0]) / PipValue() >= 0.1) {
            double sl = Bid - PipToPrice(StopLossPips);
            double tp = iBands(Symbol(), 0, BB_Period, BB_Deviation, 0, PRICE_CLOSE, MODE_UPPER, 0);
            int ticket = OrderSend(Symbol(), OP_BUY, lot, Ask, Slippage, sl, tp, "BUY Entry", 0, 0, Blue);
            if (ticket > 0) orderExecutedThisCandle = true;
         }
      }
   }

   // --- Trailing Stop (mengunci profit) ---
   for (int i = 0; i < OrdersTotal(); i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol() != Symbol()) continue;

         if (OrderType() == OP_BUY) {
            double trailStart = OrderOpenPrice() + PipToPrice(TrailingStartPips);
            double newSL = Bid - PipToPrice(TrailingStepPips);
            if (Bid > trailStart && (OrderStopLoss() < newSL || OrderStopLoss() == 0))
               OrderModify(OrderTicket(), OrderOpenPrice(), newSL, OrderTakeProfit(), 0, Blue);
         }

         if (OrderType() == OP_SELL) {
            double trailStart = OrderOpenPrice() - PipToPrice(TrailingStartPips);
            double newSL = Ask + PipToPrice(TrailingStepPips);
            if (Ask < trailStart && (OrderStopLoss() > newSL || OrderStopLoss() == 0))
               OrderModify(OrderTicket(), OrderOpenPrice(), newSL, OrderTakeProfit(), 0, Red);
         }
      }
   }
}

📖 Penjelasan Comment di Script

  • RiskPercent → menentukan berapa persen modal yang siap Anda risikokan per order. Misalnya balance $1000 dan RiskPercent = 1 → risiko $10 per order.
  • CalculateLotSize() → menghitung lot otomatis agar sesuai risiko, contoh jika SL 10 pips dan 1 pip bernilai $1, maka lot disesuaikan supaya kerugian maksimal = $10.
  • OnInit() → EA hanya aktif di EURUSD M1, sehingga lebih aman dan tidak salah pair.
  • OnTick() → fungsi utama, di sini EA membaca pergerakan harga, mengecek kondisi entry, lalu membuka posisi buy/sell.
  • Trailing Stop → jika posisi sudah profit beberapa pips, SL akan digeser otomatis agar profit terkunci. Contoh: buy di 1.1000, trailing start = 3 pips → saat harga 1.1003, SL naik ke 1.1002.
⚙️ Cara Kerja Auto Lot pada EA

Sebenarnya EA ini adalah hasil cloning EA scalping sebelumnya yang dibuat khusus untuk USDJPY, termasuk fitur unggulan auto lot calculation (perhitungan lot otomatis berdasarkan balance dan risk management) juga masih saya tambahkan di EURUSD. Tentu saya sudah melakukan berbagai perombakan dan perbaikan agar sesuai untuk EURUSD dengan merubah nilai-nilai penting seputar titik entry dan lain sebagainya agar semakin mantul dan lebih maksimal profitnya. Pada EA EURUSD sudah kami tambakan batasan maksimal order 1 LOT  per transaksi, sedangkan di EA sebelumnya di USDJPY masih polosan, jadi LOT bisa membengkak hingga 200 LOT per order. Jika butuh bantuan untuk modifikasi tulis saja di komentar. Berikut cara kerja Auto LOTnya:

  • Awal Modal $100 → RiskPercent = 0.5
    Risiko tiap transaksi = 0.5% × $100 = $0.5 per posisi. Dengan SL default 10 pips dan tick value EURUSD = $1/pip/lot → lot yang dibuka sekitar 0.05 lot.
  • Saat Balance Naik Jadi $500 → RiskPercent = 0.5
    Risiko tiap transaksi = 0.5% × $500 = $2.5 per posisi. Dengan kondisi SL yang sama, EA akan otomatis menaikkan ukuran lot → sekitar 0.25 lot.
  • Ketika Balance Mencapai $2000 → RiskPercent = 0.5
    Risiko = 0.5% × $2000 = $10 per posisi. Dengan Stop Loss sama, lot naik menjadi 1.0 lot (dibatasi oleh EA).

👉 Kenapa dibatasi maksimal 1 lot?
Karena meskipun balance makin besar, risiko trading tetap harus terukur. Jika lot dibiarkan bebas tanpa batas, bisa saja balance $10.000 langsung buka 5 atau 10 lot, yang terlalu berbahaya untuk strategi scalping M1. Dengan batas 1 lot, EA tetap menjaga kontrol risiko dan kestabilan profit jangka panjang.

📊 Hasil Backtest EA Snipper EURUSD (M1, 2020–2021)

Saya sudah lakukan backtest dengan data EURUSD time frame 1 menit (M1) selama 2 tahun penuh (2020–2021), dengan kondisi spread rata-rata 10 poin EURUSD di broker 5 digit (1 pip), modal awal $100, dan RiskPercent = 0.5.

  • Modal awal: $100
  • Saldo akhir (Desember 2021): $24,516
  • Laba bersih: $24,416
  • Laba kotor: $31,171
  • Rugi kotor: $6,755
  • Faktor profit: 4.61 (sangat tinggi, idealnya >2 saja sudah bagus)
  • Total transaksi: 946
  • Keuntungan terbesar: $196
  • Kerugian terbesar: $106
  • Rata-rata keuntungan per transaksi: $35
  • Rata-rata kerugian per transaksi: $90
  • Keuntungan beruntun maksimal: 13x
  • Kerugian beruntun maksimal: 1x
📈 Analisis Detail Backtest
  • Lot Auto Scaling yang Cepat
    Order pertama dimulai di 0.05 lot dengan modal $100. Hanya dalam waktu 3 bulan (awal Januari – Maret 2020), balance sudah berkembang hingga cukup untuk membuka 1 lot. Setelah Maret 2020 sampai akhir Desember 2021, mayoritas order dibuka dengan ukuran 1 lot penuh. Ini menandakan pertumbuhan balance sangat cepat (dari $100 ke $2000 dalam 3 bulan saja).
  • Profit Konsisten Walau Loss Lebih Besar
    Mungkin terlihat aneh karena kerugian rata-rata ($90) lebih besar daripada keuntungan rata-rata ($35). Tapi ingat, winrate EA ini sangat tinggi. Dengan Profit Factor = 4.61, artinya setiap $1 kerugian, EA menghasilkan $4.61 keuntungan. Contoh sederhana: 10x transaksi → 9x profit kecil ($35 × 9 = $315) + 1x loss besar ($90). Total tetap profit $225 meski kerugian sekali lebih besar.
  • Drawdown Rendah, Recovery Cepat
    Karena kerugian beruntun maksimal hanya 1x, EA ini jarang mengalami penurunan besar. Bahkan saat loss besar terjadi, langsung tertutup oleh serangkaian profit kecil tapi konsisten.
  • Lonjakan Balance yang Luar Biasa
    Dari modal $100 di awal 2020, balance sudah melewati $2000 hanya dalam beberapa bulan. Akhir Desember 2021 → balance menembus $24,516. Itu artinya dalam 2 tahun balance naik 245x lipat.

⚡ Syarat Utama Agar Scalping Forex EURUSD Efektif

Scalping di time frame 1 menit (M1) itu seru, tapi juga menuntut kecepatan eksekusi. Bahkan perbedaan delay 100 ms saja bisa bikin hasil trading beda jauh. Nah, ada beberapa hal yang wajib diperhatikan kalau mau menjalankan EA scalping seperti Snipper EURUSD ini:

1. Gunakan VPS (Virtual Private Server)

EA berjalan otomatis, jadi harus 24 jam non-stop. Kalau hanya mengandalkan laptop atau PC pribadi, sering kali ada kendala: listrik mati, internet putus, atau ping ke server broker terlalu tinggi.

✅ Solusinya: gunakan VPS yang lokasi servernya dekat dengan server broker.

  • Misalnya broker punya server di London, pilih VPS di London juga.
  • Kalau broker servernya di New York, pakai VPS di New York.
  • Dengan begitu, latency (ping) bisa turun jadi hanya 1–5 ms.

💡 Contoh perbandingan:
Jalankan EA dari PC rumah dengan ping 200 ms → order bisa slippage 2–3 pip.
Jalankan EA di VPS dengan ping 2 ms → eksekusi hampir instan.
Hasilnya? Profit lebih konsisten karena entry sesuai kondisi real time.

2. Pilih Broker dengan Spread Rendah

Karena EA ini berbasis scalping, spread jadi musuh utama.

  • EURUSD biasanya punya spread 0.1 – 1 pip di broker ECN.
  • Kalau pakai broker dengan spread 2–3 pip, profit scalping bisa habis hanya untuk biaya spread.

✅ Pilih broker ECN/STP dengan:

  • Spread < 1 pip (terutama EURUSD).
  • Eksekusi cepat tanpa requote.
  • Komisi transparan (misalnya $7/lot).
3. Gunakan Akun dengan Deposit Cukup

Modal awal $100 memang bisa, seperti di backtest tadi. Tapi untuk trading real, ada baiknya gunakan modal yang lebih fleksibel.

  • $300–$500 → untuk belajar serius.
  • $1000 ke atas → lebih stabil, auto lot bekerja lebih optimal.

Kenapa? Karena semakin besar balance, semakin fleksibel EA dalam menghitung lot sesuai RiskPercent.

4. Jaringan Internet Stabil

Meskipun pakai VPS, pastikan juga jaringan internet cadangan tetap ada. Kadang EA butuh koneksi lokal untuk update data atau monitoring via smartphone. Jangan sampai loss hanya karena disconnect.

🔑 Syarat Pendukung Agar Profit Makin Maksimal

Selain syarat utama tadi, ada beberapa hal lain yang tak kalah penting:

🔹 1. Optimasi Jam Trading

EA sudah diatur hanya trading jam 9 pagi – 11 malam (waktu server). Kenapa?
Karena di jam itu pasar London & New York buka → likuiditas tinggi → spread rendah.
Hindari jam Asia (spread bisa melebar).

🔹 2. Jaga RiskPercent Rendah

Meskipun backtest dengan RiskPercent = 0.5% sudah bagus, jangan pernah tergoda menaikkan jadi 5–10%.
Scalping = banyak transaksi kecil → kalau risk terlalu tinggi, balance bisa cepat habis saat drawdown.
Idealnya 0.5% – 2% per posisi.

🔹 3. Gunakan Broker dengan Server Data Historis Akurat

Backtest yang bagus biasanya juga dipengaruhi data historis yang bersih. Kalau data broker banyak gap atau error, hasilnya bisa menipu.

🔹 4. Monitoring Secara Berkala

Walaupun EA bisa jalan otomatis, bukan berarti dibiarkan 100%.
- Cek laporan mingguan.
- Kalau ada update MT4 dari broker, pastikan EA tetap kompatibel.
- Sesekali lakukan forward test di akun demo untuk cross-check performa.

🎯 Kesimpulan

Robot EA Forex EURUSD gratis open source MQL4 di MT4 ini memang luar biasa untuk scalping M1. Dengan modal kecil $100 saja:

  • Bisa tumbuh hingga puluhan ribu dolar dalam 2 tahun.
  • Auto lot memastikan pertumbuhan balance tetap seimbang dengan risiko.
  • Batasan 1 lot memberi perlindungan agar trading tidak over-risk.
  • Backtest membuktikan konsistensi dengan profit factor sangat tinggi (4.61).

👉 EA ini cocok buat Anda yang ingin belajar trading otomatis, memahami cara kerja auto lot, serta melihat bagaimana modal kecil bisa tumbuh cepat dengan strategi scalping EURUSD M1.

Jika semua syarat utama dan syarat pendukung terpenuhi, maka performa EA bisa lebih maksimal. Tidak hanya sekadar backtest, tapi juga profit konsisten di akun real. Ingat, ini hasil backtest selama 24 bulan, bukan 1 hari saja. Jika sewa server per bulan 100 ribu, maka biaya VPS-nya saja selama 2 tahun sudah 2,4 Juta. 🚀

0 comments:

Posting Komentar

Berikan ide atau saran untuk artikel ini. Jangan nyepam karena pasti tidak akan ditayangkan.