GeeGitMEDIA
XAG/USD (Silver)

Donchian Channel + Safe-F Money Management di XAG/USD

BreakoutDonchian ChannelSafe-F Money Management
Tingkat bukti: Backtest + uji real-time Diuji sampai real-time -- dan di sana kedua skenario justru rugi.
Paper yang dibahas
Implementation of an Automated Trading System for XAG/USD Using Donchian Channel and Safe-F Risk Management on MetaTrader 5
Andreas Martin Raja Sirait, Haikal Rahman, Dedy Husrizal Syah
Economic: Journal of Economic and Business, Vol. 4 No. 3, 2025 (Universitas Negeri Medan)

Penelitian ini membangun dan menguji Expert Advisor (EA) di MetaTrader 5 yang menggabungkan sinyal breakout dari indikator Donchian Channel dengan pengaturan ukuran posisi lewat metode Safe-F Money Management — pendekatan konservatif yang menyesuaikan ukuran transaksi berdasarkan saldo akun dan toleransi kerugian, bukan lot tetap.

EA diuji dua cara: backtesting 4 tahun data historis pada dua timeframe (M30 dan H1) dengan modal $10.000 dan risk 2% per transaksi, lalu real-time testing selama 1 bulan di akun demo broker Weltrade dengan modal yang sama.

Hasilnya jujur menarik dipelajari: skenario H1 tampil bagus di backtesting (Sharpe Ratio 1,26, drawdown rendah). Tapi begitu diuji real-time, KEDUA skenario mencatat profit factor di bawah 1 dan kerugian bersih — bukti bahwa backtest yang solid belum tentu langsung profitable di kondisi pasar nyata karena faktor volatilitas dan eksekusi (slippage, spread aktual).

Paper ini sendiri menyimpulkan perlunya optimasi lanjutan dan pengujian yang lebih luas sebelum sistem seperti ini bisa diandalkan di kondisi pasar dinamis.

Ilustrasi Kode Expert Advisor

Kode di bawah adalah ilustrasi struktur logika untuk belajar — bukan EA siap pakai. Jangan dijalankan di akun riil tanpa kamu pahami dan uji sendiri.
//+------------------------------------------------------------------+
//| ILUSTRASI EDUKASI: Donchian Breakout + Safe-F Money Management   |
//| Disederhanakan dari metodologi paper — bukan untuk live trading  |
//+------------------------------------------------------------------+
input int    DonchianPeriod   = 20;     // panjang channel (jumlah bar)
input double RiskPercent      = 2.0;    // % saldo yang dipertaruhkan per transaksi
input double SafeF_MaxDD      = 0.20;   // toleransi drawdown historis maksimum (Safe-F)

double GetDonchianUpper(int period) {
   return iHigh(_Symbol, PERIOD_CURRENT, iHighest(_Symbol, PERIOD_CURRENT, MODE_HIGH, period, 1));
}
double GetDonchianLower(int period) {
   return iLow(_Symbol, PERIOD_CURRENT, iLowest(_Symbol, PERIOD_CURRENT, MODE_LOW, period, 1));
}

// Safe-F: ukuran lot dihitung dari saldo akun dan batas drawdown yang ditoleransi,
// bukan lot tetap — versi lebih konservatif dibanding "optimal f" klasik.
double CalcSafeFLotSize(double accountBalance, double stopLossDistance) {
   double riskAmount = accountBalance * (RiskPercent / 100.0);
   double safeFCap   = accountBalance * SafeF_MaxDD;
   riskAmount = MathMin(riskAmount, safeFCap);
   double tickValue  = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
   double lots       = riskAmount / (stopLossDistance * tickValue);
   return NormalizeDouble(lots, 2);
}

void OnTick() {
   double upper = GetDonchianUpper(DonchianPeriod);
   double lower = GetDonchianLower(DonchianPeriod);
   double price = SymbolInfoDouble(_Symbol, SYMBOL_BID);

   if (PositionsTotal() == 0) {
      double sl_distance = (upper - lower); // ilustrasi: lebar channel sebagai basis SL
      double lots = CalcSafeFLotSize(AccountInfoDouble(ACCOUNT_BALANCE), sl_distance);

      if (price >= upper) {
         // Breakout ke atas channel -> sinyal Buy
         // trade.Buy(lots, _Symbol, price, price - sl_distance, price + sl_distance * 2);
      } else if (price <= lower) {
         // Breakout ke bawah channel -> sinyal Sell
         // trade.Sell(lots, _Symbol, price, price + sl_distance, price - sl_distance * 2);
      }
   }
}

Seluruh artikel di Trading Zone membahas metode dari paper akademik yang sudah terbit — tujuannya murni edukasi (belajar metode dari literatur ilmiah), BUKAN sinyal atau rekomendasi beli/jual. Kode EA yang ditampilkan adalah ilustrasi struktur logika untuk belajar, bukan kode produksi siap pakai. Kami mendorong kamu membaca paper aslinya secara lengkap dan menguji sendiri di akun demo sebelum menyimpulkan apa pun. Perdagangan berjangka/forex adalah transaksi high-risk, high-return.

Ulasan lain di Trading Zone