Pengembangan EA & Builder beginner 12 menit baca

Cara Membuat EA MACD di MT5 Tanpa Coding (dan Mengapa Hasil Terbaiknya Justru yang Paling Berbahaya)

Cara membuat EA MACD di MT5 tanpa coding: rangkai persilangan garis MACD dari blok di dalam browser, kompilasi menjadi .ex5 sungguhan, lalu baca angkanya dengan jujur. Termasuk hasil yang paling pantas membuat Anda waspada: penyisiran parameter milik Builder sendiri menemukan setelan MACD yang mencetak 1,14 di luar sampel, lalu ambruk ke 0,74 pada jendela tepat sebelumnya.

Diterbitkan · Ditinjau

Anda membangun Expert Advisor MACD di MT5 tanpa coding dengan meletakkan sebuah node Start, dua blok MACD — satu membaca garis utamanya, satu membaca garis sinyalnya — sebuah kondisi Cross di antara keduanya, dan sebuah blok order. Servernya yang menghasilkan dan mengompilasi MQL5-nya lalu menyerahkan .ex5 sungguhan kepada Anda. Lima belas menit, tanpa sintaks.

Sesudah itu barulah datang bagian yang menentukan apakah file-nya bernilai. Resep ini punya catatan terukur, dan angkanya yang paling memuji adalah angka yang paling tidak layak Anda percayai.

Apa yang akan Anda bangun

Sebuah EA satu posisi pada satu pasangan yang membeli ketika garis MACD memotong naik garis sinyalnya dan menjual ketika ia memotong turun, dengan stop dan target tetap, dikompilasi menjadi .ex5 sungguhan. Delapan blok.

Dua blok dari jumlah itu ada karena satu alasan: blok indikator MACD mengembalikan satu garis dalam satu waktu.

Sebelum mulai: apa yang dilaporkan MACD, dan garis mana yang sedang Anda baca

Anda butuh sebuah akun gratis dengan alamat email terverifikasi (merancang itu gratis dan tidak perlu masuk akun; mengompilasi ke .ex5 perlu), waktu sekitar lima belas menit, dan sebuah terminal MetaTrader 5.

MACD mengurangkan sebuah rata-rata bergerak lambat dari sebuah rata-rata cepat, lalu merata-ratakan lagi selisih itu. Jadi garis main mengukur seberapa jauh dua rata-rata itu telah saling menjauh, dan garis signal adalah pengukuran itu yang sudah dihaluskan. Segala yang bisa dinyatakan sebuah aturan MACD adalah pernyataan tentang jarak antara dua rata-rata — yang berarti ia sebuah alat tren yang mengenakan pakaian osilator, dan ia mewarisi kelambatan dari kedua rata-rata yang membangunnya.

Blok MACD milik Builder membuka setelan-setelan berikut:

Setelan blokBawaanYang dikendalikannya
fast_ema12Rata-rata yang lebih cepat. Rentang 1–999
slow_ema26Yang lebih lambat. Jarak antara keduanya adalah keseluruhan sinyalnya
signal_period9Seberapa jauh selisihnya dihaluskan sebelum Anda membandingkannya
lineMODE_MAINGaris mana yang dikeluarkan blok iniMODE_MAIN atau MODE_SIGNAL
applied_pricePRICE_CLOSEHarga mana yang menyuapi perhitungannya
shift00 adalah bar yang sedang terbentuk; 1 adalah bar terakhir yang sudah tertutup
timeframechart saat iniM1 sampai MN1 mana saja, dibaca terlepas dari chart-nya

line adalah baris yang mengubah bentuk alur Anda. Ia sebuah pilihan bernilai dua, jadi satu blok memberi Anda satu garis. Karena itu persilangan garis sinyal butuh dua blok MACD; persilangan garis nol butuh satu, ditambah sebuah perbandingan terhadap sebuah konstanta.

Langkah demi langkah: membangun EA MACD-nya di Builder

  1. Buka EA Builder lalu muat template macd_signal dari galeri, atau mulai dari kanvas kosong untuk mengkabelinya sendiri.
  2. Letakkan sebuah node Start dari palet Utility. Tanpa satu pun node itu, validasinya menghentikan build dengan EAB-E202.
  3. Tambahkan sebuah blok MACD dan biarkan line pada MODE_MAIN. Biarkan 12/26/9 apa adanya untuk build pertama supaya hasil Anda tetap sebanding dengan baseline di bawah.
  4. Tambahkan blok MACD kedua dengan periode yang identik lalu setel line ke MODE_SIGNAL. Indikator yang sama, setelan yang sama, keluaran yang berbeda — inilah langkah yang dilewati orang, dan melewatinya adalah sebab alur mereka membandingkan sebuah garis dengan dirinya sendiri.
  5. Sambungkan keduanya ke sebuah kondisi Cross. Cross mengambil dua masukan lalu menanyakan apakah yang satu memotong yang lain pada bar ini; cross_type-nya adalah crossover atau crossunder, jadi sisi beli dan sisi jual adalah dua kondisi yang terpisah, bukan satu kondisi yang dibalik.
  6. Sambungkan tiap kondisi ke blok Open Buy / Open Sell miliknya sendiri. Menyambungkan indikator langsung ke sebuah order ditolak dengan EAB-E205 — sebuah nilai mentah bukanlah sebuah keputusan.
  7. Tetapkan risikonya di tab Settings. Bawaan bersamanya adalah stop 50 pip, target 100 pip, dan lot tetap 0.01; sebuah alur tanpa stop yang valid memunculkan diagnosis preflight CRITICAL sebelum ia mau dibangun.
  8. Tekan Measure lalu baca hasilnya terhadap ambang yang dicetak panelnya: faktor profit minimal 1,2, minimal 60 transaksi, drawdown tidak lebih buruk dari 20%.
  9. Tekan Compile .ex5, pindahkan file-nya ke MQL5/Experts lewat File > Open Data Folder, segarkan Navigator, lalu ujilah di Strategy Tester sebelum ia menyentuh akun mana pun.
  • Node Start
  • Blok MACD, line = MODE_MAIN
  • Blok MACD, line = MODE_SIGNAL
  • Cross — crossover untuk beli, crossunder untuk jual
  • Open Buy dan Open Sell
  • Stop loss dan take profit
  • Kompilasi ke .ex5
Mengapa resep garis sinyal butuh dua blok MACD sedangkan resep garis nol tidak

Kalau Anda justru menginginkan versi garis nol, hapus blok MACD kedua lalu ganti Cross dengan Compare, yang operatornya adalah > < >= <= == != dan yang offset-nya bawaannya 0. “MACD main di atas nol” adalah pernyataan bahwa rata-rata cepatnya berada di atas yang lambat sama sekali — sebuah peristiwa yang jauh lebih langka dan jauh lebih terlambat daripada kedua garis itu bersentuhan. Paletnya juga membawa OsMA, yang mengeluarkan selisih main dikurangi signal langsung sebagai satu nilai, jadi sebuah aturan histogram butuh satu blok, bukan dua.

Setelan masuk, keluar, dan parameter MACD

SetelanNilai templateAkibat menggesernya
fast_ema12Lebih rendah bereaksi lebih cepat dan memotong jauh lebih sering; jumlah transaksinya bergerak lebih dulu daripada win rate
slow_ema26Menaikkannya melebarkan jarak yang harus ditempuh garis cepatnya, jadi sinyalnya datang lebih lambat dan lebih jarang
signal_period9Penghalusan pada garis pembandingnya. Lebih pendek berarti lebih banyak persilangan, sebagian besarnya derau
lineMODE_MAINBukan tombol penyetelan — ia menentukan aturan mana yang Anda bangun
shift0Setel ke 1 untuk memutuskan hanya pada bar yang sudah tertutup
Stop loss50 pip (bawaan bersama)Rentang yang disisir adalah 30–80
Take profit100 pip (bawaan bersama)Rentang yang disisir adalah 60–250

Soal kelambatan, yang merupakan keluhan jujur atas indikator ini. Tiap nilai di sini adalah keluaran dua rata-rata yang ditumpuk di atas rata-rata ketiga. Karena itu sebuah persilangan adalah laporan bahwa sebuah pergerakan sudah terjadi — pertanyaannya tinggal seberapa terlambat. Memendekkan fast_ema membeli kecepatan dan membayarnya dengan persilangan palsu; memanjangkan slow_ema membeli keandalan dan membayarnya dengan entri yang datang setelah pergerakannya lewat. Catatan template itu sendiri menunjukkan di mana ia mendarat: 698 transaksi dalam satu tahun, jumlah tertinggi kedua dari tiga belas template tren dan momentum yang diukur di bawah kondisi yang identik. Itu sebuah desain yang menembak terus-menerus, dan menembak terus-menerus adalah ongkos dari kelambatan yang pendek.

Apa yang disentuh dan tidak disentuh penyisirannya. Penyisiran parameter yang tercatat hanya menggeser stop dan targetnya — SL30-80 × TP60-250, 12 kombinasi pada tiga jendela di H1. Ia tidak pernah memvariasikan fast_ema, slow_ema, maupun signal_period. Jadi tidak ada apa pun di halaman ini yang mendukung klaim bahwa 12/26/9 itu benar, salah, atau bisa diperbaiki. Yang ia dukung adalah klaim yang jauh lebih sempit dan jauh lebih berguna: tidak ada satu pun kombinasi stop dan target yang menyelamatkan desainnya.

Backtest EA MACD-nya

Ini catatan terukur milik Builder sendiri, bukan sebuah jalannya pengujian ulang, dan tiap template dalam perbandingan ini berbagi satu blok kondisi yang sama di bawah. Cara kami menguji menjelaskan standar yang berlaku bagi catatan-catatan itu.

Baseline macd_signalNilai
Faktor profit0,93
Transaksi698
Drawdown maksimum-1,05%
Laba bersih-93,93
Peringkat di lingkungannya menurut faktor profitke-8 dari 13
Peringkat di lingkungannya menurut jumlah transaksike-2 dari 13
Melewati ambang lulus panel Measure sendiritidak
Kondisi pengujian
ID eksperimenEXP-MACD-RECIPE-BASELINE-001
Eksperimen indukEXP-BUILDER-TEMPLATE-BASELINE-001
Simbol / timeframeUSDJPYm M5
Periode2025-06-01 – 2026-06-09
ModelM1 OHLC (Model=1)
Deposit10,000
LingkunganExness MT5
Baseline diukur2026-06-18
Terakhir diverifikasi2026-08-25
1,14Faktor profit di luar sampel terbaik yang ditemukan penyisiran yang tercatat
0,74Skor setelan yang sama itu pada jendela tepat sebelumnya
ke-8 dari 13Peringkat template MACD di antara desain tren dan momentum yang diukur secara identik

Hasil penyisirannya layak lebih dari satu baris. Delapan template di galeri membawa penyisiran parameter yang tercatat, dan kedelapannya berakhir di no_robust_edge. Tetapi mereka gagal dengan dua cara yang berbeda, dan perbedaan itu lebih berarti daripada putusan yang mereka bagi bersama. Dua di antaranya tidak pernah menghasilkan setelan yang menang sama sekali, bahkan pada periode tempat penyisirannya dicocokkan. macd_signal adalah satu-satunya yang menghasilkan setelan yang melewati 1,0 di luar sampel — 1,14 sampai 1,15 pada target terlebar — lalu mencetak 0,74 sampai 0,77 pada jendela tepat sebelumnya. Kata yang dipakai manifesnya sendiri untuk ini adalah regime-dependent, bergantung pada rezim pasar.

Bacalah apa implikasinya terhadap cara menguji. Seandainya Anda membelah data Anda satu kali, mencocokkan pada paruh pertama dan memeriksa pada paruh kedua, template ini akan menyerahkan sebuah hasil yang lulus kepada Anda. Satu-satunya yang menangkapnya adalah memeriksa periode ketiga yang tidak pernah dilihat penyisirannya. Itulah argumen untuk analisis walk-forward dalam satu kasus yang konkret, dan itu lebih bernilai daripada peringatan umum apa pun tentang overfitting.

Di mana MACD duduk di antara tetangganya, semuanya diukur di bawah satu blok kondisi di atas:

TemplateBlokFaktor profitDrawdownTransaksi
ma_perfect_order_trend101,07-0,36%305
mtf_osc_filter271,04-0,64%187
consecutive_bars_momentum71,03-0,36%377
ao_ama_trend140,97-0,95%239
adx_trend120,96-0,76%534
multi_tf_trend150,96-0,51%247
ma_crossover90,95-0,84%420
macd_signal80,93-1,05%698
ma_slope_trend70,92-1,00%478
mtf_adx_filter140,92-0,84%343
elder_ray90,90-1,34%529
pitch_trail_trend90,77-1,61%467
dynamic_sl_trend90,68-1,62%708

Belah ketiga belas desain itu pada median jumlah transaksinya sendiri, yaitu 420, dan kedua paruhnya terpisah dengan bersih. Enam yang bertransaksi lebih sedikit rata-rata mencetak faktor profit 1,00 pada 283 transaksi dengan drawdown -0,61%. Enam yang bertransaksi lebih banyak rata-rata mencetak 0,86 pada 569 transaksi dengan -1,23% — hasil yang lebih buruk dan kedalaman dua kali lipat. Ketiga desain yang berada di atas 1,0 semuanya duduk di paruh yang lebih tenang. MACD duduk di paruh yang lebih sibuk.

Itu sebuah deskripsi atas tiga belas desain di bawah satu setup, bukan sebuah hukum: logika entri, jumlah node, dan cara keluarnya juga berbeda, jadi frekuensinya belum ditegakkan sebagai penyebabnya. Tetapi itulah pola yang ada di depan Anda, dan template MACD bawaannya berada di sisi yang salah dari pola itu.

Kesalahan umum yang harus dihindari

Memercayai satu kelulusan di luar sampel. Inilah kesalahan yang keberadaan template ini justru mendemonstrasikannya. Satu periode yang disisihkan adalah satu sampel, dan sebuah aturan momentum bisa memenangkan satu sampel karena pasarnya kebetulan sedang tren selama periode itu. Ujilah sebuah jendela ketiga yang tidak pernah dilihat penyisirannya sebelum Anda memercayai sebuah angka.

Membandingkan sebuah garis dengan dirinya sendiri. Kalau kedua blok MACD dibiarkan pada MODE_MAIN, kondisi Cross-nya membandingkan nilai yang identik dan tidak pernah menembak — atau menembak karena pembulatan. Periksa setelan line pada kedua bloknya sebelum Anda bertanya-tanya mengapa jumlah transaksinya nol.

Membaca sebuah persilangan sebagai sebuah ramalan. MACD adalah dua rata-rata dari sebuah rata-rata. Sebuah persilangan melaporkan bahwa sebuah pergerakan sudah berlangsung selama beberapa bar. Pilihan desainnya adalah seberapa banyak keterlambatan yang Anda terima, bukan apakah menerimanya sama sekali.

Mencocokkan stop dan target sampai kurva ekuitasnya terlihat benar. Penyisiran yang tercatat sudah melakukan hal itu secara sistematis pada 12 kombinasi dan tiga jendela, lalu melaporkan no_robust_edge. Kalau penyetelan manual Anda mengalahkan sebuah pencarian yang sistematis, curigai penyetelannya.

Menumpuk filter momentum. Komposisi di atas adalah versi terukur dari naluri itu: 3,76 kali drawdown demi faktor profit yang justru sedikit lebih buruk.

Menjalankannya berdampingan dengan EA lain tanpa memisahkannya. Tiap EA di satu akun butuh magic number sendiri, atau logika keluar milik satu EA akan menutup posisi milik EA yang lain.

Langkah selanjutnya dan variasinya

Kapan sebaiknya tidak memakai MACD. Di dalam sebuah range, dua rata-rata berpotongan berulang kali dan tiap persilangannya adalah derau — dan sebuah bawaan yang menembak cepat justru itulah yang dihukum oleh sebuah range. Kalau Anda tidak bisa menyatakan sebuah kondisi yang mematikan aturannya selama periode datar, tambahkanlah satu atau pakailah ide yang tidak bergantung pada kedua rata-rata itu saling menjauh.

Variasi yang layak dicoba, menurut urutan buktinya. Coba versi garis nolnya lebih dulu: ia lebih sederhana satu blok dan ia menembak jauh lebih jarang, dan paruh lingkungan yang lebih tenang adalah tempat setiap hasil di atas 1,0 berada. Setelah itu coba aturan yang sama pada timeframe yang lebih tinggi di dalam blok MACD-nya, yang memperlambat sinyalnya tanpa menyentuh chart-nya. Baru sesudah itu geser periodenya — dan ubah satu per satu.

Lalu ujilah dengan benar. Panel Measure adalah setingkat bar dan bersifat perkiraan; ia sebuah saringan, bukan sebuah putusan. Cara backtest EA di MT5 menelusuri satu jalannya pengujian nyata dari awal sampai akhir, termasuk angka drawdown mana dari dua yang dicetak laporannya yang layak dipercaya. Cara membuat EA RSI adalah resep saudaranya dengan mode kegagalan yang berlawanan — penyisirannya tidak pernah memenangkan apa pun, yang membuatnya lebih mudah ditolak dan kurang mengajarkan dibanding yang satu ini. Cara membuat EA MT5 tanpa coding mencakup kosakata blok yang lebih luas, dan panduan backtesting masuk lebih dalam ke langkah walk-forward yang diperjuangkan halaman ini.

Dan untuk mengalibrasi seperti apa rupa sebuah catatan yang terdokumentasi, tiap EA yang diterbitkan membawa daftar lengkap transaksi tertutupnya dan sebuah manifes eksekusi. Bandingkan salah satunya dengan tabel di atas sebelum memercayai strategi apa pun, termasuk strategi yang Anda bangun sendiri.

Pertanyaan yang sering diajukan

Apa bedanya persilangan garis sinyal MACD dengan persilangan garis nol?
Keduanya pertanyaan yang berbeda dan, di dalam Builder, pengkabelan yang berbeda. Persilangan garis sinyal menanyakan apakah garis MACD memotong rata-rata 9 periodenya sendiri, jadi ia butuh dua blok MACD — satu disetel ke MODE_MAIN, satu ke MODE_SIGNAL — yang menyuapi sebuah kondisi Cross. Persilangan garis nol menanyakan apakah momentumnya berganti tanda sama sekali, jadi ia butuh satu blok MACD pada MODE_MAIN dan sebuah Compare terhadap 0. Versi garis sinyal menembak jauh lebih sering dan lebih awal; versi garis nol menembak jarang dan terlambat. Template bawaannya memakai bentuk garis sinyal, dan ia adalah desain tersibuk kedua di seluruh lingkungannya.
Setelan MACD apa yang terbaik untuk sebuah EA?
Tidak ada apa pun di halaman ini yang bisa memberitahu Anda, dan itu layak dinyatakan terus terang. Blok MACD milik Builder secara bawaan memakai 12/26/9 pada harga penutupan, dan penyisiran parameter yang tercatat pada template ini hanya menggeser stop dan targetnya — SL30-80 dikali TP60-250, 12 kombinasi pada 3 jendela. Ia tidak pernah memvariasikan fast_ema, slow_ema, maupun signal_period walau sekali. Artikel mana pun yang menyebutkan satu set periode terbaik sedang menyebutkan sebuah preferensi, bukan sebuah pengukuran. Yang berhasil ditegakkan penyisiran itu adalah bahwa tidak ada satu pun kombinasi stop dan target yang membuat desain ini tangguh.
Apakah strategi persilangan MACD menguntungkan?
Tidak, dalam bentuk bawaannya di sini. Diukur pada USDJPY M5 sepanjang satu tahun, template macd_signal milik Builder menutup pada faktor profit 0,93 sepanjang 698 transaksi — desain tersibuk kedua dari tiga belas template tren dan momentum yang diukur di bawah kondisi yang identik, dan peringkat ke-8 dari 13 menurut hasilnya. Yang lebih berguna, penyisirannya yang tercatat memang menemukan sebuah setelan yang mencapai 1,14 sampai 1,15 di luar sampel, lalu jatuh ke 0,74 sampai 0,77 pada jendela yang lebih awal. Itulah jawaban jujurnya: hasil yang tampak menguntungkan itu ada, dan hasil itu tidak bertahan lintas rezim pasar.
Perlukah saya menambahkan lebih banyak indikator untuk menyaring EA MACD saya?
Periksa dulu apa yang sebenarnya dilakukan kombinasi itu sebelum berasumsi ia membantu. Galeri membawa satu komposisi yang memuat template ini persis — macd_signal ditambah sebuah aturan level CCI ditambah Elder Ray — dan di bawah kondisi yang identik ia menutup pada faktor profit 0,91 berbanding 0,93 milik MACD sendirian, dengan drawdown 3,76 kali lipat sepanjang 2.016 transaksi. Ketiga bagiannya adalah pembacaan momentum atas harga yang sama, jadi mereka cenderung sepakat dan menembak bersamaan alih-alih menyebar risiko. Sebuah filter membantu ketika ia sesekali tidak sependapat dengan entri Anda; tiga versi dari ide yang sama tidak begitu.