Hedge Fund Ultimate Pro v5.1 — Dual Engine EA (MT5)

Expert Advisor MetaTrader 5 dengan dual engine: Swing Trend-Follow + Scalp Mean-Reversion, dilengkapi 7 lapis proteksi anti-Margin Call dan SL/TP fully adaptive berbasis ATR.


Daftar Isi


Fitur Utama

Fitur Keterangan
Dual Engine Swing (trend-following) + Scalp (mean-reversion) berjalan bersamaan
Full Adaptive SL/TP Semua SL, TP, Breakeven, dan Trailing berbasis ATR — otomatis menyesuaikan volatilitas
Dynamic TP Extension TP swing otomatis diperpanjang +1 ATR saat harga mendekati target; TP scalp bergeser ke BB mid
7 Lapis Anti-MC Daily loss limit, equity circuit breaker, margin check, total position cap, dynamic risk reduction, cooldown, weekend close
Progressive Trailing Trailing stop makin ketat seiring profit bertambah
Partial Close Tutup 50% posisi saat R:R 1:1, sisanya biarkan jalan
Auto-Detect Filling Otomatis mendeteksi mode filling broker (FOK/IOC/RETURN)
News Filter Menghindari entry 30 menit sebelum dan 15 menit sesudah jam news
Multi-Instrument Bisa dipakai di pair/instrument apapun tanpa ubah parameter (karena semua ATR-based)

Persyaratan

  • Platform: MetaTrader 5 (MT5)
  • Bahasa: MQL5
  • Library: Trade/Trade.mqh (sudah bawaan MT5)
  • Timeframe Disarankan: M15 atau M30 (EA akan otomatis ambil HTF H1 untuk trend filter)
  • Akun: Hedge atau Netting (disarankan akun Hedge)
  • VPS: Disarankan agar EA berjalan 24/5 tanpa putus

Cara Install

  1. Copy file hedge.mq5 ke folder:

    [MT5 Data Folder]\MQL5\Experts\
    

    Untuk menemukan Data Folder: di MT5, klik File → Open Data Folder

  2. Compile: Buka MetaEditor, buka file hedge.mq5, tekan F7 (Compile). Pastikan 0 errors.

  3. Attach ke chart:

    • Buka chart pair yang diinginkan (misal EURUSD, XAUUSD)
    • Pilih timeframe M15 atau M30
    • Drag EA dari Navigator → Expert Advisors ke chart
    • Centang Allow Algo Trading di tab Common
    • Atur parameter sesuai kebutuhan di tab Inputs
    • Klik OK
  4. Pastikan AutoTrading aktif (tombol AutoTrading di toolbar MT5 harus hijau/aktif)


Cara Menggunakan

Penggunaan Standar (Default)

Parameter default sudah dioptimasi untuk pair forex major. Tinggal attach ke chart dan biarkan berjalan.

Untuk Gold (XAUUSD)

Karena semua SL/TP berbasis ATR, EA otomatis menyesuaikan. Anda bisa menurunkan MaxSpread ke 50 dan Scalp_MaxSpread ke 30 untuk Gold.

Scalp Only

Set MaxSwingPos = 0 untuk menonaktifkan swing, hanya scalp yang berjalan.

Swing Only

Set EnableScalp = false untuk menonaktifkan scalp.


Penjelasan Parameter Input

Risk Management

Parameter Default Penjelasan
RiskPercent 0.75% Risiko per trade swing terhadap balance
ScalpRiskPercent 0.3% Risiko per trade scalp (lebih kecil karena frekuensi lebih tinggi)
MaxDailyLossP 3.0% Jika total loss hari ini melebihi 3% balance, EA berhenti trading & tutup semua posisi
MaxDrawdownP 8.0% Circuit breaker: jika equity turun 8% dari peak, tutup semua posisi
MaxSwingPos 2 Maksimal posisi swing terbuka bersamaan
MaxScalpPos 3 Maksimal posisi scalp terbuka bersamaan
MagicSwing 778899 Magic number untuk identifikasi posisi swing
MagicScalp 778900 Magic number untuk identifikasi posisi scalp
CooldownBars 3 Jumlah bar menunggu setelah loss sebelum entry lagi
MaxConsecLoss 3 Setelah 3 loss berturut-turut, risk dipotong 50%
MaxTotalPos 4 Maksimal TOTAL posisi (swing + scalp gabungan)
DailyProfitTarget 2.0% Berhenti trading jika profit hari ini sudah >= 2% balance (0 = nonaktif)
MinMarginLevel 200% Tidak entry baru jika margin level di bawah 200%

Swing: Trend Filter

Parameter Default Penjelasan
EMA_Fast 50 EMA cepat untuk deteksi trend
EMA_Slow 200 EMA lambat untuk deteksi trend
HTF H1 Timeframe untuk analisis trend (Higher Time Frame)
ADX_Period 14 Period ADX untuk kekuatan trend
ADX_Min 20.0 Minimum ADX untuk konfirmasi trend kuat

Swing: Entry

Parameter Default Penjelasan
RSI_Period 14 Period RSI untuk filter overbought/oversold
RSI_OB 70.0 Level RSI overbought (tidak buy di atas ini)
RSI_OS 30.0 Level RSI oversold (tidak sell di bawah ini)
ATR_SL_Multi 1.5 SL ditempatkan di low candle - (ATR × 1.5)
Swing_RR 2.5 Risk:Reward ratio swing (TP = SL distance × 2.5)
ATR_Period 14 Period ATR

Swing: Management

Parameter Default Penjelasan
UsePartialClose true Aktifkan partial close (tutup sebagian posisi)
PartialCloseRR 1.0 Partial close saat profit = 1× SL distance
PartialPercent 50% Tutup 50% lot saat partial close
BE_ATR_Multi 1.0 Pindahkan SL ke breakeven saat profit = 1× ATR
Trail_ATR_Multi 1.5 Mulai trailing saat profit = 1.5× ATR
Trail_Step_ATR 0.8 Jarak trailing = 0.8× ATR (makin ketat seiring profit naik)
CloseOnOpposite true Tutup posisi berlawanan saat sinyal baru muncul

Scalp: Settings

Parameter Default Penjelasan
EnableScalp true Aktifkan engine scalp
BB_Period 20 Period Bollinger Band
BB_Dev 2.0 Deviasi Bollinger Band
Scalp_RSI_Period 7 Period RSI cepat untuk scalp
Scalp_RSI_OB 75.0 RSI overbought trigger scalp
Scalp_RSI_OS 25.0 RSI oversold trigger scalp
Scalp_RR 1.2 Risk:Reward ratio scalp
Scalp_SL_ATR 0.8 SL scalp = ATR × 0.8
Scalp_MaxSpread 15 Max spread untuk scalp (lebih ketat dari swing)
Scalp_BE_ATR 0.3 Breakeven trigger scalp = ATR × 0.3 (adaptive)
Scalp_Trail_ATR 0.15 Trail distance scalp = ATR × 0.15 (adaptive)

Filters

Parameter Default Penjelasan
MaxSpread 30 Spread maksimal untuk swing entry (dalam points)
UseSessionFilter true Aktifkan filter jam trading
SessionStartHour 2 Jam mulai trading swing (London open)
SessionEndHour 20 Jam akhir trading swing (NY close)
ScalpStartHour 7 Jam mulai scalp (jam sibuk)
ScalpEndHour 17 Jam akhir scalp
CloseBeforeWeekend true Tutup semua posisi hari Jumat jam 20:00
AvoidHighImpactHour true Hindari entry dekat jam news
NewsHours "8,13,15" Jam server rawan news (pisahkan dengan koma)

Arsitektur & Penjelasan Kode

Alur Utama (OnTick)

Setiap Tick:
  ├── ManageSwing()        → Kelola posisi swing (partial close, BE, trailing, TP extension)
  ├── ManageScalp()        → Kelola posisi scalp (adaptive BE, trailing, TP adjust)
  ├── EquitySafe()         → Cek equity drawdown circuit breaker
  ├── CheckWeekendClose()  → Tutup semua jika Jumat >= 20:00
  │
  └── [Hanya saat Bar Baru]:
       ├── DailySafe()           → Cek daily loss (closed + floating)
       ├── CooldownOK()          → Cek cooldown setelah loss
       ├── DailyTargetReached()  → Cek apakah sudah cukup profit
       ├── MarginOK()            → Cek margin level
       ├── LoadIndicators()      → Load semua data indikator
       │
       ├── ENGINE 1: SWING
       │    ├── SwingBuySignal()  → EMA trend + ADX + DI + RSI + Price Action
       │    └── SwingSellSignal() → Kebalikan dari buy
       │
       └── ENGINE 2: SCALP
            ├── ScalpBuySignal()  → BB lower bounce + RSI(7) oversold
            └── ScalpSellSignal() → BB upper bounce + RSI(7) overbought

Penjelasan Fungsi-Fungsi Utama

DetectFilling()

Mendeteksi mode filling yang didukung broker secara otomatis. Mencegah error order karena salah filling mode.

OnInit()

Inisialisasi semua handle indikator (EMA, ADX, RSI, ATR, Bollinger Band), restore peak equity dari GlobalVariable (persistent antar restart), hitung consecutive losses dari history.

SwingBuySignal() / SwingSellSignal()

Sinyal entry swing dengan 6 filter:

  1. Trend: EMA 50 > EMA 200 (buy) atau < (sell) di timeframe H1
  2. Kekuatan Trend: ADX >= 20
  3. Directional: +DI > -DI (buy) atau sebaliknya
  4. RSI Zone: RSI 40-70 (buy), 30-60 (sell) — hindari overbought/oversold
  5. Momentum Candle: Body > 40% ATR, wick ratio > 50%
  6. Pattern: Breakout high sebelumnya ATAU engulfing pattern

ScalpBuySignal() / ScalpSellSignal()

Sinyal entry scalp dengan 6 filter:

  1. Candle menyentuh BB lower/upper
  2. Close kembali di dalam BB (bounce, bukan tembus)
  3. RSI(7) di area oversold (<25) / overbought (>75)
  4. Candle bullish/bearish konfirmasi
  5. Masih ada ruang ke BB middle
  6. Tidak melawan trend kuat (ADX > 30)

LotCalc()

Menghitung lot berdasarkan risiko:

Lot = (Balance × Risk%) / (SL_points × tick_value / tick_size × Point)

Dibulatkan ke SYMBOL_VOLUME_STEP broker, diklem antara VOLUME_MIN dan VOLUME_MAX.

ManageSwing()

Manajemen posisi swing yang berjalan setiap tick:

  • Partial Close: Tutup 50% lot saat profit = 1× SL distance (tracking via GlobalVariable agar persistent)
  • Breakeven: Geser SL ke entry + 20% ATR saat profit >= 1× ATR
  • Progressive Trailing: Trail semakin ketat (dari 100% ke 40% base distance) seiring profit bertambah
  • Dynamic TP Extension: Saat harga mencapai 80% jarak ke TP, TP diperpanjang +1 ATR

ManageScalp()

Manajemen posisi scalp (semua ATR-adaptive):

  • Adaptive Breakeven: Trigger di ATR × 0.3, lock profit 5% ATR
  • Adaptive Trailing: Trail distance ATR × 0.15, mulai setelah 1.5× BE trigger
  • Dynamic TP: Geser TP ke BB mid jika lebih menguntungkan

OnTrade()

Event handler yang melacak win/loss secara real-time:

  • Menghitung consecutive losses untuk dynamic risk reduction
  • Reset counter otomatis saat ganti hari
  • Membersihkan GlobalVariable partial close saat posisi tertutup

Sistem Proteksi Anti-MC

EA ini memiliki 7 lapis proteksi yang bekerja berlapis-lapis:

Lapis Fungsi Cara Kerja
1 DailySafe() Stop trading + close all jika loss hari ini > 3% balance (closed + floating)
2 EquitySafe() Circuit breaker: close all jika equity turun 8% dari peak (persistent antar restart)
3 MarginOK() Tidak entry baru jika margin level < 200%
4 MaxTotalPos Batasi total posisi swing + scalp gabungan (max 4)
5 GetEffectiveRisk() Potong risk 50% setelah 3 loss berturut-turut
6 CooldownOK() Tidak entry selama 3 bar setelah loss terakhir
7 CheckWeekendClose() Close all posisi Jumat sore, hindari gap weekend

Ditambah proteksi entry:

  • Spread filter — tidak entry saat spread terlalu lebar
  • Session filter — hanya trading di jam aktif
  • News filter — skip entry 30 menit sebelum & 15 menit sesudah jam news
  • ValidateSLTP() — validasi SL/TP terhadap STOPS_LEVEL dan FREEZE_LEVEL broker
  • DailyProfitTarget — berhenti trading saat sudah profit 2% hari ini

Cara Backtest

  1. Buka Strategy Tester di MT5 (Ctrl+R)
  2. Pilih Expert: hedge
  3. Pilih Symbol & Timeframe (M15/M30)
  4. Period: minimal 2 tahun data
  5. Modelling: Every tick based on real ticks (paling akurat)
  6. Deposit: sesuaikan dengan modal rencana
  7. Klik Start

Tips Backtest

  • Gunakan Every tick based on real ticks untuk hasil paling realistis
  • Test di beberapa pair berbeda untuk melihat universalitas
  • Perhatikan Max Drawdown % dan Profit Factor
  • Target: Profit Factor > 1.5, Max DD < 15%

Disclaimer

PERINGATAN: Trading forex/CFD memiliki risiko tinggi. EA ini TIDAK menjamin profit. Past performance (backtest) TIDAK menjamin hasil di masa depan. Selalu test di akun demo terlebih dahulu. Gunakan modal yang siap Anda risikokan. Pembuat tidak bertanggung jawab atas kerugian yang terjadi.


Lisensi

Kode ini dibagikan untuk tujuan edukasi. Gunakan dengan risiko sendiri.

S
Description
No description provided
Readme 42 KiB
Languages
MQL5 100%