Dasar-dasar MQL5 EA — cara kerja robot MetaTrader 5 yang sesungguhnya

Verifikasi terakhir: · Konten selalu relevan
Peringatan risiko · YMYL Artikel ini bersifat edukatif semata dan bukan merupakan saran investasi. Perdagangan di pasar Forex melibatkan risiko tinggi kehilangan modal — ESMA menyatakan bahwa antara 74% hingga 89% akun investor ritel mengalami kerugian.

Expert Advisor yang ditulis dalam MQL5 adalah program kecil yang menempel pada grafik di dalam MetaTrader 5 dan, pada setiap tick, memeriksa apakah pasar baru saja menghasilkan kondisi yang Anda tetapkan sebagai sinyal masuk. Jika kondisi itu terpenuhi, EA menempatkan order sendiri — tanpa meminta izin. Artikel ini menjelaskan bagaimana EA dibangun dari dalam, bagaimana ia berkomunikasi dengan platform dan broker, serta kapan menjalankannya benar-benar masuk akal. Ini bukan tutorial pemrograman.

Apa sebenarnya Expert Advisor dalam MQL5

MQL5 adalah bahasa yang dekat dengan C++ dan dirancang khusus untuk platform MetaTrader 5. Expert Advisor adalah satu program dalam bahasa tersebut, dikompilasi menjadi file biner .ex5 dan dilampirkan ke grafik seperti halnya sebuah indikator. Perbedaannya terletak pada izin: indikator hanya menggambar di grafik, sedangkan EA diperbolehkan menempatkan order nyata ke akun trading Anda. Satu baris dalam model izin platform ini memisahkan tampilan pasif dari otomasi otonom.

Apa bedanya "EA" dengan "robot trading" secara umum? Hanya pada ekosistemnya. Robot yang ditulis dalam Python pun tetap robot — ia hanya hidup di luar terminal, biasanya terhubung ke broker melalui REST API atau FIX. EA, menurut definisinya, hidup di dalam MT5. Bagi yang baru mengenal praktik trading algoritmik secara keseluruhan, kategori praktik kami menyediakan panduan langkah demi langkah.

Cara EA berkomunikasi dengan platform — siklus OnInit, OnTick, OnDeinit

Setiap Expert Advisor memiliki ritme hidup yang ditentukan oleh tiga event yang dipanggil platform atas namanya. OnInit dijalankan tepat satu kali, ketika EA dilampirkan ke grafik atau terminal dimulai ulang. Di sinilah EA membaca parameter inputnya, membuka handle ke indikator yang digunakannya, dan memberi sinyal bahwa ia siap menerima tick.

Event kedua adalah yang paling penting. OnTick dipanggil setiap kali kuotasi baru tiba dari broker untuk simbol tempat EA berdiam. Pada pasangan yang likuid seperti EUR/USD selama sesi London, ini dapat terjadi beberapa puluh kali per detik. Di dalam OnTick, EA memutuskan apakah harga saat ini memenuhi kondisi masuk, apakah stop loss perlu digeser, atau apakah posisi terbuka harus ditutup. Seluruh logika strategi berada dalam satu fungsi ini.

Event ketiga, OnDeinit, dipanggil ketika EA dihapus dari grafik, simbol diubah, atau MT5 ditutup. Tugasnya adalah pembersihan — melepaskan handle indikator, menyimpan status, menutup file log. Saya sengaja melewati handler pembantu seperti OnTimer dan OnTrade, karena keduanya tidak mengubah prinsip dasarnya. Setiap EA pada intinya adalah program penanganan event yang merespons apa pun yang diberikan MT5 kepadanya.

Cara EA menempatkan order — kelas CTrade

Hal kedua yang perlu dipahami tanpa masuk ke sintaks adalah cara EA berkomunikasi dengan broker. MT5 tidak membiarkan Anda sekadar "mengirim buy" seperti yang dilakukan manusia dengan mengklik antarmuka. Setiap order dikirimkan sebagai permintaan terstruktur — sebuah MqlTradeRequest — dan server membalas dengan hasil berisi kode yang menyatakan apakah order berhasil diproses, atau ditolak karena alasan seperti margin tidak mencukupi, level stop tidak valid, atau deviasi yang melampaui batas.

Mengisi struktur tersebut secara manual itu memakan waktu, sehingga MetaQuotes menyertakan kelas bernama CTrade di dalam standard library-nya, yang membungkus segalanya dalam metode praktis seperti Buy, Sell, PositionClose, dan OrderModify. Thread forum tanpa henti memperdebatkan seluk-beluknya — apakah menggunakan Buy(volume, symbol) atau mengisi request sendiri, cara menangani requote, cara bereaksi terhadap slippage (selip harga) pada breakout cepat. Untuk sebagian besar strategi ritel, CTrade lebih dari cukup.

Strategy Tester, atau cara memeriksa apakah EA tidak sekadar menghafal sejarah

Strategy Tester yang dibangun dalam MT5 adalah alat yang jauh lebih serius dibandingkan versi MT4-nya. Ia memberi EA data tick historis (dihasilkan dari bar atau tick asli dari server MetaQuotes), menjalankan ribuan putaran pada berbagai kombinasi parameter, dan menghasilkan laporan dengan kurva ekuitas, drawdown (penurunan ekuitas), dan profit factor.

Masalahnya adalah tester yang sama — yang dimaksudkan untuk memverifikasi pekerjaan Anda — cenderung menjadi mesin penghasil ilusi. Mengoptimalkan parameter pada seluruh riwayat hampir selalu menghasilkan kurva semulus benang, dan kurva itu hampir selalu hancur begitu EA berhadapan dengan uang nyata. Fenomena ini punya nama — curve fitting (sobreajuste / pencocokan berlebihan) — dan itu adalah kepastian matematis, bukan nasib buruk. Langkah pencegahannya adalah membagi data menjadi periode in-sample dan out-of-sample, serta idealnya menggunakan walk-forward analysis di atasnya.

"Strategi yang menguntungkan pada data historis belum tentu menguntungkan di masa depan. Data historis hanyalah sampel kecil dari semesta kemungkinan kondisi pasar, dan mengoptimalkan parameter terhadap sampel itu persis seperti namanya — menyesuaikan diri dengan sampel tersebut." — Ernest P. Chan, 2013

Kapan EA benar-benar membantu, dan kapan ia merugikan

Apakah menjalankan EA masuk akal sangat bergantung pada strateginya. Ada tiga situasi di mana EA memberikan keunggulan nyata: eksekusi konsisten atas aturan yang secara psikologis tidak dapat ditegakkan oleh manusia (bayangkan dua ratus transaksi scalping dalam sebulan), pemantauan pasar sepanjang waktu selama sesi Asia ketika sebagian besar dunia sedang tidur, dan trading di mana keputusan harus dibuat dalam sepersekian detik — wilayah di mana manusia tout court terlalu lambat.

EA bekerja buruk di mana pun diperlukan penilaian subyektif. Trading saat rilis Non-Farm Payrolls (NFP), memutuskan apakah pergerakan harga saat ini adalah perubahan rezim sejati atau sekadar kebisingan sementara, menafsirkan konteks geopolitik — sebagian besar hal ini mendiskualifikasi EA. Statistik dari survei forum MQL5 independen sangat brutal: mayoritas jelas EA dari Marketplace, meski memiliki grafik backtest yang mengkilap, mencatatkan kerugian dalam trading nyata selama tahun pertamanya. Ini bukan itikad buruk dari penjual — backtest yang indah itu murah, sedangkan keunggulan nyata itu langka.

Di Indonesia, perdagangan forex ritel diawasi oleh BAPPEBTI (Badan Pengawas Perdagangan Berjangka Komoditi) dan OJK (Otoritas Jasa Keuangan). Sebelum mengaktifkan EA apa pun dengan uang nyata, pastikan Anda menggunakan broker/pialang berjangka yang berizin BAPPEBTI. Waspadai penawaran EA dari vendor luar negeri tanpa izin — EA yang terlihat hebat di backtest tidak menjamin kinerja nyata, dan regulasi lokal tidak akan melindungi Anda jika broker tidak terdaftar. Temukan informasi lebih lanjut tentang memilih broker yang tepat di kategori broker kami.

Apakah layak menulis EA sendiri?

Jika Anda memahami strategi yang Anda tradingkan dan dapat mendeskripsikannya sebagai aturan yang cukup presisi sehingga tidak ada diskresi yang tersisa, membangun EA sendiri adalah investasi waktu terbaik yang dapat Anda lakukan di bidang ini. Tiga hingga enam bulan dengan dokumentasi MQL5, sebuah proyek uji sederhana, dan Strategy Tester membangun pengetahuan yang tidak akan diberikan oleh paket robot berbayar mana pun kepada Anda.

Alasan kedua bersifat praktis. EA berjalan sepanjang waktu lima hari seminggu — tetapi hanya jika mesin tempat ia berdiam juga berjalan sepanjang waktu. Desktop rumahan yang listriknya bergantung pada satu kabel tidak cukup. Itulah mengapa VPS memainkan peran tersendiri: EA yang sama dapat menghasilkan hasil yang berbeda secara nyata tergantung pada latensi antara server broker dan mesin tempat EA berdiam. Biaya VPS dari penyedia spesialis MT hari ini berkisar antara 15 hingga 50 EUR per bulan. Beberapa broker menawarkan VPS gratis di atas ambang deposit atau volume tertentu.

Langkah pertama Anda

  1. Unduh MetaTrader 5 dari situs broker Anda, buka akun demo, dan buka tab Strategy Tester. Muat salah satu EA sampel bawaan (Moving Average atau MACD Sample) pada EUR/USD H1, jalankan satu putaran, dan baca laporan hasilnya dengan cermat untuk melihat seperti apa metrik dasar — kurva ekuitas, drawdown (penurunan ekuitas), dan profit factor — dalam praktiknya. Langkah ini tidak memerlukan satu baris pun kode dan memberi Anda gambaran nyata tentang apa yang dilakukan tester.
  2. Buka dokumentasi resmi MQL5 di mql5.com/en/docs dan baca hanya tiga bab: OnInit, OnTick, dan kelas CTrade. Jangan mencoba menulis apa pun dulu — tujuannya adalah melihat bagaimana dokumentasi disusun dan di mana menemukan contoh-contoh kerja begitu Anda membutuhkannya nanti.
  3. Tuliskan strategi Anda sebagai aturan logis dalam bentuk "jika X dan Y maka masuk posisi beli (long) dengan stop di level Z". Jika setelah satu jam aturan masih mengandung frasa seperti "tergantung konteks" atau "secara intuitif", Anda memiliki strategi diskresioner yang tidak akan diselamatkan oleh otomasi — kembalilah ke fondasi strategi trading yang terstruktur sebelum menulis satu baris kode pun.
  4. Jika aturan sudah keluar tanpa ambiguitas, rencanakan jadwal belajar: sekitar tiga bulan dasar-dasar MQL5 dari dokumentasi MetaQuotes, ditambah proyek sampingan satu minggu untuk membangun EA sesederhana mungkin berdasarkan persilangan moving average. Satu proyek tersebut mengajarkan lebih banyak dari sepuluh robot berbayar.
  5. Sebelum menjalankan apa pun dengan uang nyata, komitlah untuk setidaknya satu bulan forward testing pada demo dengan kuotasi terkini. Backtest tidak dapat menggantikan forward test — forward test mengekspos latensi eksekusi broker, yang tidak dapat dilihat oleh backtest.
Jarosław Wasiński
Tentang penulis

Jarosław Wasiński

Pemimpin redaksi MyBank.pl · Analis keuangan dan pasar

Analis dan praktisi independen dengan pengalaman lebih dari 20 tahun di sektor keuangan. Pendiri dan pemimpin redaksi portal MyBank.pl yang beroperasi sejak 2004. Analisis fundamental pasar valuta asing dan makroekonomi sejak 2007. Menulis dari perspektif pasar global dengan perhatian pada kerangka regulasi ESMA dan BAPPEBTI.

Sumber dan referensi

  1. MetaQuotes MQL5 Reference — OnTick event handler · oficjalna dokumentacja zdarzenia wywoływanego na każdą kwotację www.mql5.com ↗
  2. MetaQuotes MQL5 Standard Library — CTrade class · klasa biblioteki standardowej do składania zleceń przez EA www.mql5.com ↗
  3. MetaQuotes MetaTrader 5 — Strategy Tester documentation · narzędzie do backtestowania i optymalizacji EA www.metatrader5.com ↗

Pertanyaan yang sering diajukan

Apa bedanya EA dalam MQL5 dengan "robot" Python?

Secara logika — keduanya tidak berbeda sama sekali. Keduanya bermuara pada sebuah loop yang secara berkala memeriksa kondisi pasar dan mengirimkan order. Perbedaannya ada pada ekosistemnya. EA dalam MQL5 adalah anak MetaTrader: ia dilampirkan ke grafik, memanfaatkan indikator bawaan, dan menggunakan Strategy Tester. Robot Python hidup di luar terminal dan terhubung ke broker secara eksternal — biasanya melalui REST API atau protokol FIX. EA unggul jika strategi Anda mengandalkan indikator MT5 dan Anda memerlukan tester bawaan. Python unggul jika Anda ingin menggunakan library machine learning, statistik, atau menggabungkan data dari beberapa sumber.

Apakah saya perlu bisa memprogram untuk menjalankan EA?

Untuk sekadar menjalankan EA milik orang lain — tidak perlu. Anda cukup menyeret file .ex5 ke grafik, mengatur parameternya, dan mengaktifkan AutoTrading. Kesulitan sebenarnya dimulai setelah itu: tanpa mengenal MQL5, Anda tidak dapat memverifikasi apa yang sebenarnya dilakukan robot di dalamnya, bagaimana ia bereaksi terhadap slippage (selip harga), atau apakah ia diam-diam menggunakan metode Martingale. Penjual EA di MQL5 Market sering menyembunyikan parameter terpenting dari pengguna. Tanpa kemampuan membuka kode sumber (dan sebagian besar EA komersial bersifat tertutup), Anda terpaksa memberikan kepercayaan buta. Itulah mengapa saya menyarankan investasi dalam mempelajari dasar-dasar bahasa ini — beberapa minggu dengan dokumentasi sudah cukup untuk memahami apa yang sedang Anda baca.

Mengapa Strategy Tester menunjukkan hasil luar biasa sementara trading nyata menunjukkan kerugian?

Karena Strategy Tester adalah alat optimasi, bukan alat prediksi. Jika Anda menyisir seluruh data historis untuk mencari parameter yang menghasilkan kurva ekuitas terbaik, Anda hampir pasti akan menemukan kombinasi yang menghasilkan hasil bagus — tetapi hanya pada sampel tertentu itu saja. Fenomena ini disebut curve fitting (pencocokan berlebihan) dan merupakan kepastian matematis. Penangkalnya adalah membagi data menjadi periode in-sample untuk optimasi (misalnya 2018–2022) dan periode out-of-sample untuk verifikasi (misalnya 2023–2024), di mana Anda menjalankan EA tanpa mengubah parameter lebih lanjut. Hanya hasil yang konsisten pada periode validasi yang membuat masuk akal bahwa Anda tidak sedang melihat artefak. Walk-forward analysis melangkah lebih jauh — ia menggeser jendela pelatihan dan pengujian sepanjang seluruh riwayat.

Apakah VPS benar-benar diperlukan untuk menjalankan EA?

Untuk strategi yang bereaksi dalam sepersekian detik — ya, tanpa perdebatan. Seorang scalper yang EAnya menembakkan puluhan order per hari kehilangan keunggulannya setiap kali koneksi rumah terganggu atau komputer masuk mode tidur. VPS yang ditempatkan di pusat data yang sama dengan server broker dapat memangkas latensi dari sekitar lima puluh milidetik menjadi beberapa milidetik. Untuk strategi posisi yang melakukan satu transaksi per minggu, VPS adalah kenyamanan, bukan persyaratan — desktop rumahan dengan UPS (uninterruptible power supply) sudah cukup. Biaya di penyedia spesialis MT hari ini berkisar antara 15 hingga 50 EUR per bulan. Beberapa broker menawarkan VPS gratis di atas ambang deposit atau volume tertentu. Di Indonesia, pastikan broker Anda berizin BAPPEBTI — latensi rendah tidak ada artinya jika dana Anda tidak terlindungi oleh regulasi setempat.

Pelajari lebih lanjut · panduan lengkap