The Trading MentorMentor dagangan anda

Mengapa Kebanyakan EA MT5 Gagal dalam Perdagangan Langsung (Dan Pembetulan yang Sebenarnya Berkesan)

Pada 14 Mac 2023, EUR/USD jatuh 180 pips dalam 4 jam selepas berita keruntuhan SVB tersebar.

Daniel Harrington

Daniel Harrington

Penganalisis Dagangan Kanan · MT5 specialist

9 minit baca

Kongsi artikel ini:

Pada 14 Mac 2023, EUR/USD jatuh 180 pips dalam 4 jam selepas berita keruntuhan SVB tersebar. Saya melihat tiga EA berasingan di terminal saya menjadi tidak terkawal sepenuhnya, satu purata ke bawah ke dalam pergerakan, satu berbalik terlalu awal, dan satu lagi... beku. Ketiga-tiganya telah lulus backtest 2 tahun dengan nisbah Sharpe melebihi 1.8. Hari itu menyebabkan saya kehilangan wang sebenar, dan ia memaksa saya untuk memikirkan semula semua yang saya sangka saya tahu tentang perdagangan automatik. Sebenarnya, kebanyakan EA MT5 tidak gagal kerana logik yang buruk. Mereka gagal kerana cara mereka dibina, diuji, dan digunakan.

Backtest EA vs perdagangan langsung — lengkung ekuiti sempurna hancur menjadi realiti huru-hara dengan robot rosak

Kadar kemenangan backtest 92% tidak bermakna apa-apa apabila slippage, pelebaran spread, dan overfitting melanda EA anda di pasaran langsung. Tiga EA saya rosak semasa keruntuhan SVB — semuanya mempunyai backtest yang sempurna.

1

Ilusi Backtesting: Mengapa Ujian Kualiti 90% Anda Tidak Bermakna Apa-apa

Setiap minggu saya melihat seseorang menyiarkan backtest di forum perdagangan dengan lengkung ekuiti yang licin dan mengisytiharkan EA mereka sedia untuk berdagang secara langsung. Masalahnya bukan pada hasilnya. Masalahnya ialah apa yang sebenarnya diukur oleh hasil tersebut.

Penguji Strategi MT5, walaupun dalam mod 'Every Tick Based on Real Ticks', tidak dapat meniru tingkah laku spread langsung. Spread pada EUR/USD semasa panik SVB yang saya sebutkan mencecah 8-12 pips pada beberapa broker, apabila EA dibina dan diuji dengan mengandaikan spread tetap 1.2 pip. Pemboleh ubah tunggal itu mengubah perdagangan sasaran 60-pip menjadi posisi rugi sebelum harga bergerak pun.

Terdapat tetapan khusus dalam Penguji Strategi yang kebanyakan orang abaikan: kotak semak 'Use date' digabungkan dengan peratusan kualiti pemodelan. Jika anda menguji pada kualiti pemodelan 99% tetapi dengan spread tetap, anda menguji instrumen fantasi. Pasaran sebenar mempunyai spread berubah-ubah, requotes (kurang biasa pada ECN tetapi masih ada), dan lonjakan kependaman yang tidak pernah dilihat oleh backtest tempatan anda.

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

  • Spread tetap: 1.5 pips, tiada model slippage
  • Spread berubah-ubah menggunakan data tick broker + slippage rawak 1-3 pip

Versi spread tetap menunjukkan pulangan tahunan 34%. Versi spread berubah-ubah? 11%. EA yang sama. Tempoh yang sama. Perbezaannya adalah apa yang sebenarnya akan anda alami apabila perdagangan bermula secara langsung. Sentiasa, sentiasa gunakan model pelaksanaan 'Random delays' dalam Penguji Strategi. Ia tersembunyi dalam tetapan tetapi ia adalah perkara yang paling hampir dengan realisme yang ditawarkan oleh platform. Anda boleh menemuinya di bawah Execution dalam sifat penguji, tetapkan kepada 50-200ms untuk mensimulasikan kependaman pesanan sebenar.

Di sinilah juga kalkulator saiz posisi anda menjadi kritikal semasa pengujian: jika anda tidak mengambil kira spread sebenar dalam pengiraan risiko-per-dagangan anda, saiz posisi anda akan salah dari awal.

2

Overfitting: Sebab Sebenar EA Mati 3 Minggu Selepas Berdagang Secara Langsung

Berikut adalah kenyataan yang akan saya komited tanpa berdalih: majoriti EA runcit adalah overfit. Bukan sedikit. Secara besar-besaran.

Overfitting berlaku apabila anda mengoptimumkan parameter EA dengan begitu tepat terhadap data sejarah sehingga EA telah menghafal masa lalu dan bukannya belajar daripadanya. Enjin pengoptimuman genetik MT5 sangat berkuasa, dan sangat berbahaya di tangan yang salah. Saya telah melihat pedagang menjalankan 50,000 pengoptimuman lulus pada set data 12 bulan, memilih set parameter dengan faktor keuntungan tertinggi, dan menganggapnya selesai. Itu bukan pembangunan strategi. Itu adalah curve fitting dengan langkah tambahan.

Ujian sebenar untuk overfitting adalah ujian walk-forward. Anda membahagikan data anda: optimumkan pada 70% pertama, kemudian jalankan ujian forward buta pada baki 30%. Jika faktor keuntungan anda jatuh dari 2.4 kepada 0.8 pada tempoh out-of-sample, EA itu overfit. Titik noktah. Jangan dagangkannya.

Matematik penting di sini. Populasi pengoptimuman anda harus lebih kecil secara bermakna daripada darjah kebebasan set data anda. Peraturan kasar yang saya gunakan: jika anda mempunyai lebih daripada satu parameter yang boleh dioptimumkan setiap 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. Ia adalah corak yang dihafal.

Saya sendiri melakukan kesilapan ini pada tahun 2019 dengan EA mean-reversion pada GBP/USD. Dioptimumkan dengan cantik pada data 2016-2018. Set parameter termasuk 11 pemboleh ubah. Berdagang secara langsung pada Januari 2019 dan mengalami drawdown 22% dalam 6 minggu sebelum saya menghentikannya. Pelajaran itu kekal. Sekarang saya menganggap sebarang kemerosotan ujian forward melebihi 40% sebagai tidak boleh diterima sama sekali. Jika EA membuat $10,000 pada sampel pengoptimuman tetapi hanya $5,000 pada sampel forward bersaiz setanding, itu boleh diterima. Jika ia membuat $10,000 dan kehilangan $3,000 forward, itu adalah sampah.

Untuk melihat dengan lebih mendalam bagaimana spread dan kualiti pelaksanaan berbeza mengikut instrumen, panduan EUR/USD patut dibaca sebelum anda komited kepada mana-mana pasangan utama sebagai pasaran utama EA anda.

Winston

💡 Petua Winston

Logik kod mendapat semua perhatian.

Robot Futurama rosak — apabila EA anda bertemu pasaran langsung

EA anda berfungsi dengan sempurna pada backtest 10 tahun — kemudian bertemu spread sebenar, slippage, dan requotes. Selamat datang ke perdagangan langsung.

3

4 Kegagalan Pelaksanaan yang Tiada Siapa Bincangkan

Logik kod mendapat semua perhatian. Pelaksanaan tidak mendapat apa-apa. Itu terbalik.

Berikut adalah empat kegagalan tahap pelaksanaan yang paling biasa yang saya diagnos dalam EA pelanggan:

  1. Keadaan perlumbaan pengubahsuaian pesanan (Order modification race conditions): EA cuba mengubah suai stop loss pada tick yang sama dengan harga yang mencetuskannya. Dalam MQL5, jika anda memanggil OrderModify() tanpa terlebih dahulu memeriksa nilai pulangan OrderSelect(), anda akan mendapat kegagalan senyap, pesanan tidak diubah suai, tiada ralat dilemparkan ke log anda, dan risiko anda kini tidak terkawal.

  2. Tidak mengambil kira tempat perpuluhan broker: Sesetengah broker mengutip EUR/USD kepada 5 tempat perpuluhan, sesetengahnya kepada 4. Jika pengiraan stop loss anda menggunakan nilai pip tetap tanpa memeriksa _Digits, SL anda akan diletakkan 10x terlalu dekat atau terlalu jauh. Saya telah melihat ini menghapuskan akaun.

  3. Mengabaikan IsTradeAllowed(): Fungsi ini mengembalikan false semasa peristiwa berita pada beberapa broker, semasa penutupan pasaran, dan apabila akaun mempunyai isu margin yang belum selesai. Jika EA anda tidak memeriksa ini sebelum setiap percubaan pesanan, anda akan mempunyai entri yang gagal secara senyap sementara EA menyangka ia berada dalam perdagangan.

  4. Logik entri berasaskan tick pada sambungan perlahan: EA yang mencetuskan pada setiap tick baru berfungsi dengan baik pada VPS dengan kependaman 5ms. Pada sambungan internet rumah dengan kependaman 80-150ms, tick yang mencetuskan logik entri anda mungkin sudah 3-4 tick lama pada masa pesanan anda sampai ke broker. Anda membeli pada harga yang tidak lagi wujud.

Pembetulan untuk poin 4 adalah untuk mengalihkan logik entri dari OnTick() ke OnTradeTransaction() jika mungkin, atau untuk menambah parameter slippage maksimum yang boleh diterima dan menolak pengisian di luar julat tersebut. Ia bukan kod yang glamor. Tetapi ia adalah perbezaan antara EA langsung dan liabiliti.

Untuk meletakkan pesanan dengan bersih tanpa berurusan dengan dialog borang yang memperkenalkan kependaman mereka sendiri, saya menggunakan Drag Trader Pulsar Terminal apabila saya menguruskan posisi EA secara separa manual, anda menyeret terus pada carta dan SL/TP dikemas kini dalam masa nyata, yang sememangnya lebih cepat daripada mana-mana kotak dialog apabila anda berada dalam posisi langsung.

Empat kegagalan pelaksanaan EA — slippage, pelebaran spread, requotes, dan pengisian separa

Backtest anda mengandaikan pengisian sempurna pada harga tepat dengan spread tetap. Pasaran langsung mempunyai slippage, pelebaran spread semasa berita, requotes, dan pengisian separa. Tiada EA yang kebal.

4

Masalah Broker (Kebanyakan Pedagang Mengabaikan Ini Sepenuhnya)

EA anda tidak berdagang pasaran. Ia berdagang suapan pasaran broker anda. Perbezaan itu sangat penting.

Saya telah menjalankan EA yang sama persis, VPS yang sama, tetapan yang sama pada tiga broker berbeza secara serentak selama tempoh ujian 6 minggu pada Q3 2022. Hasilnya tidak hampir:

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

EA yang sama. Pasaran yang sama. Hasil yang sama sekali berbeza, semata-mata kerana model pelaksanaan dan kos spread.

EA scalping adalah yang paling sensitif terhadap ini. EA yang menyasarkan 10 pips dengan stop 5-pip beroperasi pada nisbah R:R 2:1. Tambah 2 pips spread dan itu menjadi sasaran 10-pip dengan risiko efektif 7-pip, yang lebih dekat kepada 1.4:1. Matematik menghakis kelebihan sepenuhnya. Inilah sebabnya mengapa EA scalping yang menjana wang dalam backtest gagal secara konsisten secara langsung, backtest menggunakan andaian spread yang tidak dikenakan oleh broker sebenar semasa sesi tidak menentu.

Sebelum menggunakan mana-mana EA secara langsung, jalankannya selama sekurang-kurangnya 3 minggu pada akaun demo dengan broker sebenar yang anda rancang untuk gunakan. Bukan demo broker lain. Bukan sim firma prop dengan pelaksanaan yang berbeza. Broker khusus anda, jenis akaun khusus anda. Semak log pelaksanaan dalam tab Jurnal MT5 selepas setiap perdagangan. Jika anda melihat slippage yang konsisten 1+ pips pada pengisian, kelebihan EA anda mungkin sudah tiada.

Ulasan pemilihan broker seperti ulasan IC Markets boleh memberi anda garis dasar untuk bagaimana pelaksanaan ECN sebenarnya kelihatan dalam amalan.

Winston

💡 Petua Winston

Izinkan saya menerangkan apa yang saya cari sebelum saya menganggap mana-mana EA sedia untuk wang sebenar.

Alamak — mendapati broker anda menggunakan data tick yang berbeza

Broker yang berbeza, data tick yang berbeza, spread yang berbeza. EA yang dioptimumkan untuk satu broker boleh gagal sepenuhnya pada broker lain.

5

Bagaimana Sebenarnya Rupa EA yang Boleh Digunakan

Izinkan saya menerangkan apa yang saya cari sebelum saya menganggap mana-mana EA sedia untuk wang sebenar. Ini bukan senarai semak yang anda cetak dan lupakan. Ia adalah standard yang kebanyakan EA tidak capai.

Pertama, backtest mesti menggunakan spread berubah-ubah, kelewatan pelaksanaan rawak, dan pengesahan walk-forward out-of-sample. Kemerosotan ujian forward harus di bawah 40% pada panjang data yang setanding. Jika anda backtest 3 tahun, ujian walk-forward 1 tahun. Bukan 3 bulan.

Kedua, EA memerlukan pemutus litar drawdown keras dalam kod. Sesuatu seperti ini dalam 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 adalah asas. Saya sentiasa terkejut berapa banyak EA produksi yang tidak memilikinya.

Ketiga, indikator ATR harus menjadi sebahagian daripada saiz posisi EA, bukan hanya logik entrinya. Saiz lot tetap dalam pasaran yang berubah-ubah volatiliti adalah resipi untuk risiko yang tidak konsisten. ATR(14) pada carta H1 memberi anda ukuran masa nyata tentang berapa banyak pasaran bergerak. Stop loss dan saiz posisi anda harus berskala dengannya.

Keempat, EA mesti diuji merentasi pelbagai rejim pasaran, bukan hanya satu. EA yang dioptimumkan pada pasaran trending 2020-2021 akan musnah dalam rejim ranging, volatiliti tinggi 2022-2023. Gunakan sekurang-kurangnya 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 asli, tetapi alat seperti StrategyQuant atau bahkan simulasi Excel asas menggunakan hasil perdagangan-demi-perdagangan anda boleh merawakkan urutan kemenangan dan kerugian anda untuk menunjukkan kepada anda drawdown kes terburuk yang realistik. Jika kes terburuk simulasi anda adalah 35% tetapi anda hanya selesa dengan 15%, EA itu salah untuk akaun anda tanpa mengira betapa baiknya purata kelihatan.

Kebanyakan EA gagal bukan kerana idea di belakangnya salah. Mereka gagal kerana proses pengesahan malas, kod pelaksanaan tidak diuji di bawah keadaan sebenar, dan persekitaran broker diandaikan dan bukannya diukur. Betulkan tiga perkara itu dan hasil langsung anda akan kelihatan lebih dekat dengan apa yang dijanjikan oleh backtest anda.

Penafian: Artikel ini adalah untuk tujuan pendidikan sahaja dan tidak merupakan nasihat pelaburan. Perdagangan forex dan CFD membawa risiko kerugian yang signifikan. Prestasi masa lalu tidak menunjukkan hasil masa depan. Sentiasa lakukan penyelidikan anda sendiri dan pertimbangkan situasi kewangan anda sebelum berdagang. Jangan sekali-kali mempertaruhkan wang yang anda tidak mampu rugi.

Pelajaran Prof. Winston

:

  • Backtest yang sempurna tidak bermakna apa-apa jika EA terlalu sesuai (overfitted) dengan data sejarah
  • Slippage, pelebaran spread, dan requotes memusnahkan EA yang tidak pernah mengalaminya dalam backtesting
  • Data tick broker anda dan kelajuan pelaksanaan secara langsung mempengaruhi prestasi EA — uji pada broker langsung
  • EA yang boleh digunakan mengendalikan kegagalan dengan baik: ia menguruskan slippage, mempunyai had drawdown maksimum, dan mencatat segala-galanya
Prof. Winston

Soalan Lazim

Q1Berapa banyak data yang perlu saya gunakan untuk backtest EA MT5 sebelum menganggapnya sah?

Sekurang-kurangnya, 3 tahun data tick yang meliputi keadaan pasaran yang berbeza, sekurang-kurangnya satu tempoh trending yang kuat dan satu tempoh choppy/ranging. Untuk EA dengan lebih daripada 5 parameter yang boleh dioptimumkan, saya akan menolaknya kepada 5 tahun. Nombor utama bukan tahun, tetapi nisbah kiraan parameter kepada bar yang diuji. Lebih daripada satu parameter bebas setiap 1,000 bar sudah menjadi tanda amaran untuk overfitting. Untuk EA scalping pada carta M5, 3 tahun mungkin memberi anda bar yang mencukupi, tetapi anda perlu mengesahkan bahawa kualiti data tick anda dari sejarah broker anda sebenarnya lengkap, jurang dalam data tick akan menjadikan hasil anda kelihatan lebih bersih daripada realiti.

Q2Mengapa EA saya berprestasi baik pada demo tetapi gagal pada akaun langsung dengan broker yang sama?

Ini lebih biasa daripada yang diakui orang. Akaun demo di kebanyakan broker menggunakan model pelaksanaan yang sedikit berbeza daripada akaun langsung, khususnya, pengisian demo selalunya lebih bersih dan lebih cepat dengan spread yang lebih ketat semasa tempoh kecairan rendah. Sesetengah broker juga menghantar pesanan demo dan langsung melalui infrastruktur yang berbeza. Cara untuk menguji ini adalah dengan menjalankan kedua-dua akaun secara serentak selama 2-4 minggu dan membandingkan harga pengisian perdagangan demi perdagangan. Jika pengisian langsung anda secara konsisten 0.5-1 pip lebih buruk daripada demo, itu adalah perbezaan model pelaksanaan dan ia adalah nyata. Ia akan terkumpul terhadap anda sepanjang beratus-ratus perdagangan. Juga semak sama ada akaun langsung anda adalah STP berbanding demo anda adalah ECN, ini berlaku lebih daripada yang suka diiklankan oleh broker.

Q3Bolehkah EA yang gagal pada satu pasangan mata wang berfungsi pada pasangan lain?

Kadang-kadang ya, tetapi anda perlu mengesahkannya semula sepenuhnya pada instrumen baharu, jangan menganggap parameter akan dipindahkan. Pasangan yang berbeza mempunyai profil volatiliti yang berbeza, tingkah laku spread, dan corak kecairan berasaskan sesi. EA yang dibina berdasarkan tingkah laku EUR/USD semasa sesi London mungkin sama sekali salah untuk GBP/JPY yang mempunyai lonjakan volatiliti tersendiri semasa pertindihan Asia/London. Anda perlu mengoptimumkan semula (dengan berhati-hati, tanpa overfitting) pada data pasangan baharu, menjalankan ujian walk-forward yang segar, dan sebaik-baiknya mendemokannya selama 4-6 minggu pada broker sebenar. Logik asas mungkin boleh dipindahkan. Nilai parameter khusus hampir pasti tidak akan.

Q4Apakah tempoh ujian forward minimum sebelum meletakkan EA pada akaun langsung?

Saya menggunakan 100 perdagangan yang lengkap sebagai minimum saya, bukan tempoh masa. Tempoh masa mengelirukan kerana pasaran yang perlahan mungkin memberi anda 40 perdagangan dalam 3 bulan manakala pasaran yang pantas memberi anda 200. Anda memerlukan sampel yang bermakna secara statistik dari pembuatan keputusan sebenar EA anda. Jika EA anda purata 5 perdagangan seminggu, itu adalah 20 minggu perdagangan demo sebelum anda mempertimbangkan untuk berdagang secara langsung, kira-kira 5 bulan. Saya tahu itu terasa lama. Tetapi ia lebih pendek daripada pulih dari akaun yang musnah. Perkara lain yang saya semak ialah sama ada hasil ujian forward berada dalam selang keyakinan Monte Carlo dari backtest. Jika drawdown ujian forward melebihi persentil ke-95 simulasi Monte Carlo anda, sesuatu telah berubah di pasaran dan EA perlu dinilai semula sebelum berdagang secara langsung.

Adakah anda suka artikel ini?

Sejauh mana artikel ini berguna?

Klik bintang untuk menilai

Komen

0/500
...

Kekal di hadapan pasaran

Dapatkan analisis pasaran mingguan, strategi dagangan dan petua MT5. Tiada spam, berhenti bila-bila masa.

Daniel Harrington

Tentang Penulis

Daniel Harrington

Penganalisis Dagangan Kanan

Daniel Harrington ialah Penganalisis Dagangan Kanan dengan MScF (Sarjana Sains dalam Kewangan) yang mengkhusus dalam pengurusan aset dan risiko kuantitatif. Dengan lebih 12 tahun pengalaman dalam pasaran forex dan derivatif, beliau membincangkan pengoptimuman platform MT5, strategi dagangan algoritmik dan pandangan praktikal untuk pedagang runcit.

All these calculators are built into Pulsar Terminal with real-time data from your MT5 account. One-click position sizing, automatic risk management, and instant calculations.