The Trading MentorMentor trading Anda

Mengapa Sebagian Besar EA MT5 Gagal dalam Perdagangan Langsung (Dan Perbaikan yang Benar-benar Berhasil)

Pada 14 Maret 2023, EUR/USD anjlok 180 pips dalam 4 jam setelah berita keruntuhan SVB muncul.

Daniel Harrington

Daniel Harrington

Analis Trading Senior · MT5 specialist

9 mnt baca

Bagikan artikel ini:

Pada 14 Maret 2023, EUR/USD anjlok 180 pips dalam 4 jam setelah berita keruntuhan SVB muncul. Saya melihat tiga EA terpisah di terminal saya benar-benar kacau, satu melakukan average down ke dalam pergerakan, satu berbalik terlalu dini, dan satu lagi... membeku. Ketiganya telah lulus backtest 2 tahun dengan rasio Sharpe di atas 1.8. Hari itu merugikan saya uang sungguhan, dan memaksa saya untuk memikirkan kembali semua yang saya kira saya tahu tentang perdagangan otomatis. Kenyataannya, sebagian besar EA MT5 tidak gagal karena logika yang buruk. Mereka gagal karena cara mereka dibangun, diuji, dan diterapkan.

Backtest EA vs trading live — kurva ekuitas sempurna hancur menjadi realitas kacau dengan robot rusak

Tingkat kemenangan backtest 92% tidak berarti apa-apa ketika *slippage*, pelebaran spread, dan *overfitting* menyerang EA Anda di pasar live. Tiga EA saya rusak selama keruntuhan SVB — semuanya memiliki backtest yang sempurna.

1

Ilusi Backtesting: Mengapa Uji Kualitas 90% Anda Tidak Berarti Apa-apa

Setiap minggu saya melihat seseorang memposting backtest di forum trading dengan kurva ekuitas yang mulus dan menyatakan EA mereka siap untuk live. Masalahnya bukan pada hasilnya. Masalahnya adalah apa yang sebenarnya diukur oleh hasil tersebut.

Strategy Tester MT5, bahkan dalam mode 'Every Tick Based on Real Ticks', tidak dapat mereplikasi perilaku spread live. Spread pada EUR/USD selama kepanikan SVB yang saya sebutkan mencapai 8-12 pips pada beberapa broker, padahal EA dibangun dan diuji dengan asumsi spread tetap 1.2 pip. Variabel tunggal itu mengubah perdagangan target 60-pip menjadi posisi rugi bahkan sebelum harga bergerak.

Ada pengaturan spesifik di Strategy Tester yang diabaikan kebanyakan orang: kotak centang 'Use date' dikombinasikan dengan persentase kualitas pemodelan. Jika Anda menguji pada kualitas pemodelan 99% tetapi dengan spread tetap, Anda menguji instrumen fantasi. Pasar riil memiliki spread variabel, requotes (lebih jarang di ECN tetapi masih ada), dan lonjakan latensi yang tidak pernah terlihat oleh backtest lokal Anda.

Saya telah menjalankan EA yang sama pada set data 3 tahun yang sama dengan dua konfigurasi ini:

  • Spread tetap: 1.5 pips, tanpa model slippage
  • Spread variabel menggunakan data tick broker + slippage acak 1-3 pip

Versi spread tetap menunjukkan pengembalian tahunan 34%. Versi spread variabel? 11%. EA yang sama. Periode yang sama. Perbedaannya adalah apa yang sebenarnya akan Anda alami ketika perdagangan berjalan live. Selalu, selalu gunakan model eksekusi 'Random delays' di Strategy Tester. Ini tersembunyi di pengaturan tetapi ini adalah hal terdekat dengan realisme yang ditawarkan platform. Anda dapat menemukannya di bawah Execution di properti tester, atur ke 50-200ms untuk mensimulasikan latensi order riil.

Di sinilah juga kalkulator ukuran posisi Anda menjadi sangat penting selama pengujian: jika Anda tidak memperhitungkan spread riil dalam perhitungan risiko per perdagangan Anda, ukuran posisi Anda akan salah sejak awal.

2

Overfitting: Alasan Sebenarnya EA Mati 3 Minggu Setelah Live

Berikut adalah pernyataan yang akan saya pegang tanpa ragu: mayoritas EA ritel mengalami overfit. Bukan sedikit. Tapi sangat masif.

Overfitting terjadi ketika Anda mengoptimalkan parameter EA dengan sangat presisi terhadap data historis sehingga EA telah menghafal masa lalu alih-alih belajar darinya. Mesin optimasi genetik MT5 sangat kuat, dan sangat berbahaya di tangan yang salah. Saya telah melihat trader menjalankan optimasi 50.000 pass pada set data 12 bulan, memilih set parameter dengan faktor keuntungan tertinggi, dan menganggapnya selesai. Itu bukan pengembangan strategi. Itu adalah curve fitting dengan langkah-langkah tambahan.

Uji nyata untuk overfitting adalah uji walk-forward. Anda membagi data Anda: optimalkan pada 70% pertama, lalu jalankan uji forward buta pada 30% sisanya. Jika faktor keuntungan Anda turun dari 2.4 menjadi 0.8 pada periode out-of-sample, EA tersebut overfit. Titik. Jangan perdagangkan.

Matematika penting di sini. Populasi optimasi Anda harus secara signifikan lebih kecil daripada derajat kebebasan set data Anda. Aturan kasar yang saya gunakan: jika Anda memiliki lebih dari satu parameter yang dapat dioptimalkan per 1.000 bar data, Anda sudah berada di wilayah berbahaya. EA dengan 8 parameter bebas yang diuji pada 2.000 bar data 1H bukanlah strategi. Itu adalah pola yang dihafal.

Saya sendiri membuat kesalahan ini pada tahun 2019 dengan EA mean-reversion pada GBP/USD. Dioptimalkan dengan indah pada data 2016-2018. Set parameter mencakup 11 variabel. Mulai live pada Januari 2019 dan mencapai drawdown 22% dalam 6 minggu sebelum saya menghentikannya. Pelajaran itu melekat. Sekarang saya menganggap setiap degradasi uji forward di atas 40% sebagai no-go yang keras. Jika EA menghasilkan $10,000 pada sampel optimasi tetapi hanya $5,000 pada sampel forward dengan ukuran yang sebanding, itu batas yang dapat diterima. Jika menghasilkan $10,000 dan kehilangan $3,000 pada forward, itu sampah.

Untuk melihat lebih dalam bagaimana spread dan kualitas eksekusi bervariasi berdasarkan instrumen, panduan EUR/USD layak dibaca sebelum Anda berkomitmen pada pasangan mata uang utama sebagai pasar utama EA Anda.

Winston

💡 Tips Winston

Logika kode mendapat semua perhatian.

Robot Futurama rusak — ketika EA Anda bertemu pasar live

EA Anda berfungsi sempurna pada backtest 10 tahun — lalu bertemu spread, *slippage*, dan *requotes* nyata. Selamat datang di trading live.

3

4 Kegagalan Eksekusi yang Tidak Dibicarakan Siapa Pun

Logika kode mendapat semua perhatian. Eksekusi tidak mendapat apa-apa. Itu terbalik.

Berikut adalah empat kegagalan tingkat eksekusi paling umum yang saya diagnosis pada EA klien:

  1. Kondisi balapan modifikasi order: EA mencoba memodifikasi stop loss pada tick yang sama saat harga memicunya. Di MQL5, jika Anda memanggil OrderModify() tanpa terlebih dahulu memeriksa nilai pengembalian OrderSelect(), Anda akan mendapatkan kegagalan senyap, order tidak termodifikasi, tidak ada kesalahan yang dicatat ke log Anda, dan risiko Anda sekarang tidak terkontrol.

  2. Tidak memperhitungkan tempat desimal broker: Beberapa broker mengutip EUR/USD hingga 5 tempat desimal, beberapa hingga 4. Jika perhitungan stop loss Anda menggunakan nilai pip tetap tanpa memeriksa _Digits, SL Anda akan ditempatkan 10x terlalu dekat atau terlalu jauh. Saya telah melihat ini menghabiskan akun.

  3. Mengabaikan IsTradeAllowed(): Fungsi ini mengembalikan false selama peristiwa berita pada beberapa broker, selama penutupan pasar, dan ketika akun memiliki masalah margin yang tertunda. Jika EA Anda tidak memeriksa ini sebelum setiap upaya order, Anda akan memiliki entri yang gagal secara senyap sementara EA mengira sedang dalam perdagangan.

  4. Logika entri berbasis tick pada koneksi lambat: EA yang memicu pada setiap tick baru berfungsi dengan baik pada VPS dengan latensi 5ms. Pada koneksi internet rumah dengan latensi 80-150ms, tick yang memicu logika entri Anda mungkin sudah berusia 3-4 tick saat order Anda mencapai broker. Anda membeli pada harga yang tidak lagi ada.

Perbaikan untuk poin 4 adalah menggeser logika entri dari OnTick() ke OnTradeTransaction() jika memungkinkan, atau menambahkan parameter slippage maksimum yang dapat diterima dan menolak fill di luar rentang tersebut. Ini bukan kode yang glamor. Tapi ini adalah perbedaan antara EA live dan kewajiban.

Untuk menempatkan order dengan bersih tanpa berurusan dengan dialog formulir yang memperkenalkan latensi mereka sendiri, saya menggunakan Drag Trader Pulsar Terminal ketika saya mengelola posisi EA secara semi-manual, Anda menyeret langsung pada grafik dan SL/TP diperbarui secara real-time, yang benar-benar lebih cepat daripada kotak dialog apa pun ketika Anda berada dalam posisi live.

Empat kegagalan eksekusi EA — *slippage*, pelebaran spread, *requotes*, dan *partial fills*

Backtest Anda mengasumsikan *fill* sempurna pada harga tepat dengan spread tetap. Pasar live memiliki *slippage*, pelebaran spread selama berita, *requotes*, dan *partial fills*. Tidak ada EA yang kebal.

4

Masalah Broker (Kebanyakan Trader Mengabaikan Ini Sepenuhnya)

EA Anda tidak memperdagangkan pasar. Ia memperdagangkan feed pasar dari broker Anda. Perbedaan itu sangat penting.

Saya telah menjalankan EA yang persis sama, VPS yang sama, pengaturan yang sama pada tiga broker berbeda secara bersamaan selama periode uji 6 minggu di Q3 2022. Hasilnya tidak mendekati:

  • Broker A (ECN, rata-rata spread EUR/USD 0.8 pips): +4.2% net
  • Broker B (STP, rata-rata spread 1.8 pips): +1.1% net
  • Broker C (market maker, spread tetap 2.0 pips): -2.3% net

EA yang sama. Pasar yang sama. Hasil yang sama sekali berbeda, murni karena model eksekusi dan biaya spread.

EA scalping adalah yang paling sensitif terhadap hal ini. EA yang menargetkan 10 pips dengan stop loss 5-pip beroperasi pada rasio R:R 2:1. Tambahkan 2 pips spread dan itu menjadi target 10-pip dengan risiko efektif 7-pip, yang lebih dekat ke 1.4:1. Matematika mengikis edge sepenuhnya. Inilah mengapa EA scalping yang menghasilkan uang dalam backtest gagal secara konsisten di live, backtest menggunakan asumsi spread yang tidak dikenakan oleh broker riil selama sesi volatil.

Sebelum menerapkan EA apa pun secara live, jalankan minimal 3 minggu di akun demo dengan broker sebenarnya yang Anda rencanakan untuk digunakan. Bukan demo broker yang berbeda. Bukan simulasi prop firm dengan eksekusi yang berbeda. Broker spesifik Anda, jenis akun spesifik Anda. Periksa log eksekusi di tab Jurnal MT5 setelah setiap perdagangan. Jika Anda melihat slippage konsisten 1+ pips pada fills, edge EA Anda mungkin sudah hilang.

Ulasan pemilihan broker seperti ulasan IC Markets dapat memberi Anda dasar tentang seperti apa eksekusi ECN dalam praktiknya.

Winston

💡 Tips Winston

Izinkan saya menjelaskan apa yang saya cari sebelum saya menganggap EA apa pun siap untuk uang sungguhan.

Ups — menemukan broker Anda menggunakan data *tick* yang berbeda

Broker berbeda, data *tick* berbeda, spread berbeda. EA yang dioptimalkan untuk satu broker dapat sepenuhnya gagal pada broker lain.

5

Seperti Apa Sebenarnya EA yang Siap Diterapkan

Izinkan saya menjelaskan apa yang saya cari sebelum saya menganggap EA apa pun siap untuk uang sungguhan. Ini bukan daftar periksa yang Anda cetak dan lupakan. Ini adalah standar yang tidak dicapai oleh sebagian besar EA.

Pertama, backtest harus menggunakan spread variabel, penundaan eksekusi acak, dan validasi walk-forward out-of-sample. Degradasi uji forward harus di bawah 40% pada panjang data yang sebanding. Jika Anda melakukan backtest 3 tahun, uji walk-forward 1 tahun. Bukan 3 bulan.

Kedua, EA membutuhkan circuit breaker drawdown yang keras dalam kode. Sesuatu seperti ini di MQL5:

double maxDrawdown = 0.10; // 10% max
double startBalance = AccountInfoDouble(ACCOUNT_BALANCE);
if((startBalance - AccountInfoDouble(ACCOUNT_EQUITY)) / startBalance >= maxDrawdown) {
 // Close all positions and disable EA
 ExpertRemove();
}

Ini dasar. Saya secara konsisten terkejut betapa banyak EA produksi yang tidak memilikinya.

Ketiga, indikator ATR harus menjadi bagian dari penentuan ukuran posisi EA, bukan hanya logika entri. Ukuran lot tetap di pasar yang bervariasi volatilitas adalah resep untuk risiko yang tidak konsisten. ATR(14) pada grafik H1 memberi Anda ukuran real-time seberapa banyak pasar bergerak. Stop loss dan ukuran posisi Anda harus berskala dengannya.

Keempat, EA harus diuji di berbagai rezim pasar, bukan hanya satu. EA yang dioptimalkan pada pasar trending 2020-2021 akan hancur dalam rezim ranging dan volatilitas tinggi 2022-2023. Gunakan setidaknya satu tahun trending dan satu tahun choppy dalam set data Anda.

Kelima, saya ingin melihat simulasi Monte Carlo dijalankan pada hasil backtest. MT5 tidak melakukan ini secara native, tetapi alat seperti StrategyQuant atau bahkan simulasi Excel dasar menggunakan hasil perdagangan Anda dapat mengacak urutan kemenangan dan kerugian Anda untuk menunjukkan drawdown kasus terburuk yang realistis. Jika kasus terburuk yang Anda simulasikan adalah 35% tetapi Anda hanya nyaman dengan 15%, EA tersebut salah untuk akun Anda terlepas dari seberapa bagus rata-ratanya.

Sebagian besar EA gagal bukan karena ide di baliknya salah. Mereka gagal karena proses validasi yang malas, kode eksekusi tidak diuji dalam kondisi nyata, dan lingkungan broker diasumsikan daripada diukur. Perbaiki ketiga hal itu dan hasil live Anda akan terlihat jauh lebih dekat dengan apa yang dijanjikan backtest Anda.

Penafian: Artikel ini hanya untuk tujuan pendidikan dan bukan merupakan nasihat investasi. Perdagangan forex dan CFD membawa risiko kerugian yang signifikan. Kinerja masa lalu tidak menunjukkan hasil di masa depan. Selalu lakukan riset Anda sendiri dan pertimbangkan situasi keuangan Anda sebelum berdagang. Jangan pernah mempertaruhkan uang yang tidak mampu Anda rugikan.

Pelajaran Prof. Winston

Poin Penting:

  • Backtest yang sempurna tidak berarti apa-apa jika EA mengalami *overfitting* pada data historis
  • *Slippage*, pelebaran spread, dan *requotes* menghancurkan EA yang tidak pernah mengalaminya dalam backtesting
  • Data *tick* dan kecepatan eksekusi broker Anda secara langsung memengaruhi kinerja EA — uji pada broker live
  • EA yang siap diterapkan menangani kegagalan dengan anggun: ia mengelola *slippage*, memiliki batas *drawdown* maksimum, dan mencatat semuanya
Prof. Winston

Pertanyaan yang Sering Diajukan

Q1Berapa banyak data yang harus saya gunakan untuk melakukan backtest EA MT5 sebelum menganggapnya valid?

Minimal, 3 tahun data tick yang mencakup kondisi pasar yang berbeda, setidaknya satu periode trending yang kuat dan satu periode choppy/ranging. Untuk EA dengan lebih dari 5 parameter yang dapat dioptimalkan, saya akan mendorongnya hingga 5 tahun. Angka kuncinya bukan tahun, melainkan rasio jumlah parameter terhadap bar yang diuji. Lebih dari satu parameter bebas per 1.000 bar sudah menjadi tanda bahaya overfitting. Untuk EA scalping pada grafik M5, 3 tahun mungkin memberi Anda cukup bar, tetapi Anda perlu memverifikasi bahwa kualitas data tick Anda dari riwayat broker Anda benar-benar lengkap, celah dalam data tick akan membuat hasil Anda terlihat lebih bersih dari kenyataan.

Q2Mengapa EA saya berkinerja baik di demo tetapi gagal di live dengan broker yang sama?

Ini lebih umum daripada yang diakui orang. Akun demo di sebagian besar broker menggunakan model eksekusi yang sedikit berbeda dari akun live, khususnya, fill demo seringkali lebih bersih dan lebih cepat dengan spread yang lebih ketat selama periode likuiditas rendah. Beberapa broker juga merutekan order demo dan live melalui infrastruktur yang berbeda. Cara menguji ini adalah dengan menjalankan kedua akun secara bersamaan selama 2-4 minggu dan membandingkan harga fill perdagangan demi perdagangan. Jika fill live Anda secara konsisten 0.5-1 pip lebih buruk daripada demo, itu adalah perbedaan model eksekusi dan itu nyata. Ini akan berlipat ganda melawan Anda selama ratusan perdagangan. Periksa juga apakah akun live Anda adalah STP versus demo Anda adalah ECN, ini lebih sering terjadi daripada yang diiklankan broker.

Q3Bisakah EA yang gagal pada satu pasangan mata uang berfungsi pada pasangan lain?

Terkadang ya, tetapi Anda harus memvalidasinya ulang sepenuhnya pada instrumen baru, jangan berasumsi parameter akan berpindah. Pasangan mata uang yang berbeda memiliki profil volatilitas, perilaku spread, dan pola likuiditas berbasis sesi yang berbeda. EA yang dibangun berdasarkan perilaku EUR/USD selama sesi London mungkin sama sekali salah untuk GBP/JPY yang memiliki lonjakan volatilitasnya sendiri selama tumpang tindih Asia/London. Anda perlu mengoptimalkan ulang (dengan hati-hati, tanpa overfitting) pada data pasangan baru, menjalankan uji walk-forward yang baru, dan idealnya mendemokan selama 4-6 minggu pada broker sebenarnya. Logika dasarnya mungkin bisa diterapkan. Nilai parameter spesifik hampir pasti tidak akan.

Q4Berapa periode uji *forward* minimum sebelum menempatkan EA di akun live?

Saya menggunakan 100 perdagangan yang selesai sebagai minimum saya, bukan periode waktu. Periode waktu menyesatkan karena pasar yang lambat mungkin memberi Anda 40 perdagangan dalam 3 bulan sementara pasar yang cepat memberi Anda 200. Anda memerlukan sampel yang bermakna secara statistik dari pengambilan keputusan aktual EA Anda. Jika EA Anda rata-rata 5 perdagangan per minggu, itu berarti 20 minggu perdagangan demo sebelum Anda mempertimbangkan untuk live, kira-kira 5 bulan. Saya tahu itu terasa lama. Tapi itu lebih singkat daripada pulih dari akun yang hancur. Hal lain yang saya periksa adalah apakah hasil uji forward berada dalam interval kepercayaan Monte Carlo dari backtest. Jika drawdown uji forward melebihi persentil ke-95 simulasi Monte Carlo Anda, sesuatu telah berubah di pasar dan EA perlu dievaluasi ulang sebelum live.

Apakah Anda menyukai artikel ini?

Seberapa bermanfaat artikel ini?

Klik bintang untuk menilai

Komentar

0/500
...

Tetap unggul dari pasar

Dapatkan analisis pasar mingguan, strategi trading, dan tips MT5 langsung ke inbox Anda. Tanpa spam, berhenti kapan saja.

Daniel Harrington

Tentang Penulis

Daniel Harrington

Analis Trading Senior

Daniel Harrington adalah Analis Trading Senior dengan gelar MScF (Master of Science in Finance) yang mengkhususkan diri pada manajemen aset dan risiko kuantitatif. Dengan pengalaman lebih dari 12 tahun di pasar forex dan derivatif, ia membahas optimasi platform MT5, strategi trading algoritmik, dan wawasan praktis untuk trader ritel.

Dapatkan Pulsar Terminal

Semua kalkulator ini terintegrasi dalam Pulsar Terminal dengan data real-time dari akun MT5 Anda.

Dapatkan Pulsar Terminal
Pulsar Terminal — Panel Trading MT5 Canggih

Peringatan Risiko

Perdagangan instrumen keuangan mengandung risiko signifikan dan mungkin tidak cocok untuk semua investor. Kinerja masa lalu tidak menjamin hasil di masa depan. Konten ini hanya untuk tujuan edukasi dan tidak boleh dianggap sebagai nasihat investasi. Selalu lakukan riset Anda sendiri sebelum trading.