Kategori
Platform
Tingkat
Pemula
Digunakan pada
Operasional MT5Evaluasi EA

Magic number

Bilangan bulat yang dibubuhkan Expert Advisor pada setiap order yang dikirimnya, agar ia mengenali posisinya sendiri dan membiarkan semua hal lain di akun itu apa adanya.

juga: magic EA, nomor magic order, MAGIC

Diperbarui · Ditinjau

Dengan bahasa sederhana

Label nama pada setiap transaksi. Terminal tidak peduli siapa yang membuka sebuah posisi, jadi tiap EA menuliskan nomornya sendiri pada tiket lalu hanya menyentuh tiket yang membawa nomor itu.

Mengapa ini penting

MetaTrader memberi setiap EA di sebuah akun pandangan yang sama atas semua posisi. Tanpa penanda, sebuah EA tidak bisa membedakan transaksinya sendiri dari milik Anda atau milik EA lain — dan EA yang mengelola posisi yang salah adalah bug yang memakan uang, bukan bug yang memunculkan pesan kesalahan.

  • Inilah yang membuat menjalankan beberapa EA pada satu akun menjadi mungkin sama sekali.
  • Ia melindungi transaksi manual: transaksi itu membawa magic 0, dan EA yang ditulis dengan benar tidak pernah menyentuhnya.
  • Inilah cara riwayat transaksi dipisah per strategi setelahnya — penanda itu bertahan sampai ke riwayat deal.

Di MetaTrader 5

Letaknya di MT5

  • Chart → properti EA (F7) → Inputs — input MagicNumber milik EA itu sendiri
  • Strategy Tester → Inputs — input yang sama saat pengujian
  • Kode MQL5: MqlTradeRequest.magic saat mengirim, POSITION_MAGIC / ORDER_MAGIC / DEAL_MAGIC saat membaca kembali

Cara EA memakainya

  • Disetel sekali saat start — CTrade::SetExpertMagicNumber(MagicNumber) — setelah itu setiap order yang dikirim EA membawa penanda tersebut.
  • Disaring pada tiap putaran: loop posisi melewati tiket mana pun yang POSITION_MAGIC-nya bukan miliknya sebelum memodifikasi, men-trail, atau menutup apa pun.
  • Riwayat disaring dengan cara yang sama, sehingga statistik per EA dihitung hanya dari deal EA tersebut.
  • Setiap EA yang dihasilkan Builder mt5depot dilengkapi input MagicNumber dengan nilai yang diturunkan dari strateginya, sehingga dua EA hasil generate yang berbeda tidak bentrok sejak awal.

Pengaturan umum

Pengaturan Nilai umum Catatan
Transaksi manual 0 Bawaan terminal. Sebuah EA tidak boleh mengelola magic 0.
Satu EA, satu simbol bilangan bulat unik apa saja Apa pun yang mudah diingat bisa — 20260807, 1001.
EA yang sama pada beberapa simbol satu nilai per chart Jika tidak, instance EURUSD akan menutup posisi milik instance GBPUSD.
EA portofolio yang menjalankan beberapa strategi satu nilai per kaki Tiap kaki butuh penandanya sendiri agar bisa di-trail dan ditutup secara terpisah.

Masalah operasional yang sering terjadi

  • Dua instance dibiarkan pada magic yang sama: masing-masing melihat posisi yang lain sebagai miliknya dan menutupnya pada saat yang salah.
  • Mengubah magic ketika ada posisi terbuka membuatnya yatim — EA tidak lagi mengenali transaksi yang dibukanya beberapa menit lalu, dan tidak ada yang akan menutupnya secara otomatis.
  • Membiarkan magic di 0 membuat EA berkuasa atas transaksi manual Anda.
  • Memasang ulang EA setelah terminal restart dengan nilai bawaan alih-alih nilai yang Anda konfigurasikan menghasilkan keyatiman yang sama, secara diam-diam.

Fungsi MT5 terkait

CTrade::SetExpertMagicNumber()
Menetapkan penanda yang akan dibawa setiap order berikutnya dari instance ini.
PositionGetInteger(POSITION_MAGIC)
Membaca penanda dari sebuah posisi terbuka.
OrderGetInteger(ORDER_MAGIC)
Membacanya dari order pending.
HistoryDealGetInteger(ticket, DEAL_MAGIC)
Membacanya dari deal yang sudah ditutup, dan begitulah riwayat dipisah per EA.

Contoh

Tiga EA pada satu akun. Masing-masing membubuhkan nomornya sendiri, jadi tiap loop posisi hanya menyentuh barisnya sendiri meski semuanya melihat keenam posisi itu.

Satu terminal, satu akun, tiga pemilik — penanda itulah satu-satunya yang memisahkan mereka.
EA tren di EURUSD
20260101
EA mean-reversion di USDJPY
20260102
Transaksi manual Anda
0
Tidak ada EA yang mengklaim penanda ini, jadi tidak ada yang otomatis menutupnya.

Perhitungan if (PositionGetInteger(POSITION_MAGIC) != MagicNumber) continue;

Hasil Tiap EA hanya mengelola posisi yang dibukanya sendiri

Angka ilustratif — bukan rekam jejak EA mana pun yang terdaftar.

Cara memakainya

Perlakukan magic number sebagai konfigurasi akun, bukan setelan strategi: catat sebelum EA masuk live, dan jangan pernah mengubahnya saat ada posisi terbuka.

  • Berikan satu nilai per instance yang berjalan, bukan per produk EA — EA yang sama di dua chart butuh dua nilai.
  • Simpan daftarnya. Begitu empat atau lima instance berjalan, penanda yang tidak dicatat tak bisa dibedakan dari penanda yang kembar.
  • Jangan pernah memakai ulang penanda yang masih punya posisi terbuka, bahkan dari EA yang sudah Anda lepas.
  • Periksa setelah tiap instalasi ulang terminal atau pemulihan profil, karena di situlah nilai bawaan kembali.

Nilainya sendiri tidak berarti apa-apa bagi MetaTrader — bilangan bulat mana pun bisa. Yang penting hanyalah nilainya unik di antara semua yang berjalan pada akun itu.

Kesalahan umum

Mengira magic number memengaruhi eksekusi

Ia tidak mengubah apa pun tentang bagaimana order terisi. Ia metadata: broker tidak bertindak berdasarkan itu dan ia tidak berpengaruh pada harga, spread, maupun slippage.

Memakai satu magic number untuk satu EA di banyak chart

Identitas yang penting adalah instance yang berjalan, bukan produknya. Dua chart berbagi satu penanda berarti dua instance mengelola satu kumpulan posisi yang sama.

Mengubahnya untuk «me-reset» EA yang berulah

Posisi yang terbuka tetap membawa penanda lama. Mengubah input berarti menelantarkannya: EA berhenti mengenalinya dan posisi itu tetap terbuka sampai ditutup manual atau oleh stop out.

Mengira magic number memisahkan laporan akun

Tab Trade pada terminal tidak menampilkannya. Memisahkan hasil per EA menuntut pembacaan DEAL_MAGIC dari riwayat, dan itulah yang dilakukan alat pelaporan — bukan sesuatu yang diberikan laporan bawaan.

Penjelasan lengkap

Apa yang tidak ikut terbeli bersama penanda itu, dihitung di rak ini

Untuk 14 EA yang dipublikasikan di siniNilai
Listing dengan input MagicNumber10
Listing yang mengharuskan mengubahnya saat pemasangan0
Listing yang meminta dijalankan di tempat tidak ada hal lain menransaksikan simbol itu8
Dari jumlah itu, listing yang tetap membawa input MagicNumber6
Simbol yang diklaim lebih dari satu listing7 dari 15
Pasangan EA yang tidak bisa berbagi satu akun15 dari 91

Bacalah baris tiga dan empat bersamaan. Menandai order adalah satu pekerjaan; memutuskan apakah sinyal baru boleh dieksekusi adalah pekerjaan lain, dan EA yang membatasi diri pada satu posisi terbuka harus menghitung lebih dulu. Bila ia menghitung dengan PositionsTotal() dan pemeriksaan simbol, posisi milik pihak lain ikut masuk ke total; bila ia menyaring lebih dulu dengan POSITION_MAGIC, tidak ikut. Enam listing di sini membawa input tersebut dan tetap mencetak peringatannya, dan itulah yang memberi tahu Anda cara mana yang dipakai penghitungan posisi mereka.

Jadi pertanyaan tentang memasangkan EA adalah pertanyaan tentang simbol, dan bisa dijawab sebelum membeli. USD/JPY diklaim empat listing sekaligus — Iridescence, Kestrel Hover, Lanternfish, dan Tessera — sehingga tidak ada dua di antaranya yang cocok bersama. EUR/GBP kini membawa dua, Ballast dan Thunderhead. Hanya Orrery, Peregrine, dan Zerqon yang tidak bertumpang tindih dengan siapa pun. Bila dua saling bertumpang tindih, memisahkan akun menyelesaikan apa yang tidak bisa diselesaikan penanda: tiap EA lalu menghitung kumpulan yang hanya berisi transaksinya sendiri. Metodologi kami mencatat tiap run yang dipublikasikan per simbol, yang merupakan pembedaan yang sama dilihat dari sisi pengukuran.

Pertanyaan yang sering diajukan

Magic number berapa yang sebaiknya saya pakai?
Bilangan bulat apa pun yang belum dipakai di akun itu, dan bukan 0 — nilai itu milik transaksi manual. Nilai berbentuk tanggal seperti 20260807 mudah dilacak ketika beberapa instance sedang berjalan.
Bisakah dua EA berbagi magic number yang sama?
Secara teknis bisa, dan itu penyebab umum kerugian yang sulit didiagnosis: tiap instance memperlakukan posisi yang lain sebagai miliknya dan bisa menutup atau men-trail-nya pada saat yang salah. Berikan nilai tersendiri untuk tiap instance yang berjalan.
Apakah magic number berpengaruh di Strategy Tester?
Untuk pengujian satu EA tidak, karena tidak ada hal lain yang bertransaksi di akun uji. Ia mulai berpengaruh begitu lebih dari satu EA berjalan pada akun live atau demo yang sama.