
Kita semua pernah mengalaminya. Anda menatap chart EURUSD H1 di jam 3 pagi waktu server. Sepi. Tenang. Damai. Enam *candle* beruntun terlihat seperti barisan tentara semut yang gepeng—*doji* semua, *body* nyaris tidak ada. Harga tidak bergerak. Tapi coba tebak? Chart Anda tetap "bekerja", memuntahkan *candle* baru setiap jam.
Lalu, lompat ke jam 8:30 malam. Rilis NFP. Dalam SATU *candle* M1, harga melompat 80 pips, turun 60 pips, lalu tutup di tengah. Semua drama, perang *bid* dan *ask*, dan jutaan dolar yang berpindah tangan... terkompresi menjadi satu batang jelek yang sumbunya panjang ke mana-mana.
Di sinilah kita harus berhenti dan bertanya: "Apakah WAKTU adalah cara terbaik untuk mengukur aktivitas pasar?"
Jawabannya, dalam banyak kasus, adalah: Tentu saja tidak.
Chart berbasis waktu (M1, M5, H1, D1) adalah standar... tapi standar yang (jujur saja) agak bodoh. Ia memperlakukan 1 jam sepi di musim liburan sama pentingnya dengan 1 jam super volatil saat The Fed bicara. Ini adalah kebohongan. Ini adalah "noise" visual yang dirancang untuk membuat analisis kita lebih sulit.
Bagaimana jika kita bisa melihat pasar berdasarkan... *aktivitas*-nya? Bukan berdasarkan detak jam dinding yang membosankan? Selamat datang, wahai para pemberontak, di dunia *Non-Standard Charts*: dunia Tick, Volume, dan Range.
Dan tentu saja, karena ini MetaTrader 5—platform yang luar biasa canggih tapi entah kenapa "lupa" menyertakan fitur-fitur yang jelas-jelas berguna—kita tidak bisa langsung memakainya. Oh, tidak. Kita harus *membuatnya* sendiri dari nol. Siapkan kopi Anda, ini bakal teknis dan sedikit menyakitkan.
Coba pikirkan. Mengapa 1 Hari (D1) itu penting? Karena bumi butuh 24 jam untuk berotasi? Apa peduli pasar EURUSD dengan rotasi bumi? Mengapa M5? Apa pentingnya 300 detik?
Chart berbasis waktu (time-based) punya dua masalah besar:
Intinya, waktu adalah proksi yang buruk untuk *aktivitas trading*. Jika kita ingin tahu apa yang *sebenarnya* terjadi, kita perlu mengganti sumbu-X kita dari "waktu" menjadi "aktivitas".
Ada tiga cara populer untuk menggantikan "waktu". Masing-masing memberi kita kacamata yang berbeda untuk melihat pasar.
Apa ini? Sederhana: Lupakan jam. Setiap "bar" atau "candle" di chart ini mewakili sejumlah *ticks* (transaksi) yang telah selesai.
Contoh: Anda set "233-tick chart" (angka Fibonacci populer, tentu saja).
Apa gunanya? Ini adalah "Mikroskop Aktivitas". Anda melihat *kecepatan* pasar yang sebenarnya. Saat *bar-bar* terbentuk dengan cepat, Anda tahu momentum sedang gila. Saat *bar-bar* melambat, Anda tahu pasar sedang "menarik napas". Ini favorit para *scalper* dan *day-trader* yang ingin melihat *order flow* mentah.
Apa ini? Mirip dengan *Tick Chart*, tapi (bisa dibilang) lebih baik. Ia tidak peduli *berapa kali* transaksi terjadi. Ia peduli *SEBERAPA BESAR* transaksi itu.
Contoh: Anda set "1000-volume chart".
Apa gunanya? Ini adalah "Pelacak Uang". Anda bisa melihat kapan volume besar masuk ke pasar. *Bar* yang terbentuk dengan cepat di *Volume Chart* adalah sinyal paling jelas bahwa "Smart Money" sedang bergerak. Ini sangat bagus untuk mengkonfirmasi *breakout*.
Apa ini? Yang ini mirip dengan Renko yang kita bahas sebelumnya, tapi dengan perbedaan kunci. Ia tidak peduli waktu, *tick*, atau volume. Ia hanya peduli pada pergerakan harga.
Contoh: Anda set "10-pip Range Chart".
Apa bedanya dengan Renko? Renko menggambar "bata" (bricks) yang ukurannya sama dan tidak punya sumbu (shadow). *Range Chart* masih terlihat seperti *candlestick* normal—ia punya Open, High, Low, Close, dan *body*—tapi ukurannya (dari High ke Low) sudah "dikunci".
Apa gunanya? Ini adalah "Filter Bising" level dewa. Pasar *sideways* yang bikin frustrasi akan hilang dari chart Anda. Yang Anda lihat hanyalah pergerakan tren yang "murni".
Sekarang Anda pasti berpikir, "Wow! Keren! Di mana tombol untuk mengubah chart saya jadi 233-Tick?"
Jawabannya: Tidak ada.
Ya, benar. Platform trading paling populer di dunia, MetaTrader 5, dengan segala kecanggihan MQL5, Strategy Tester *multi-core*, dan integrasi Python-nya, TIDAK BISA menggambar chart berbasis *tick* atau *volume* secara *native*. Entah ini sebuah kelalaian desain yang memalukan atau mereka sengaja melakukannya agar kita para *programmer* tetap punya pekerjaan. Entahlah.
Jadi, sama seperti Renko, kita harus "meretas" MT5 untuk membuatnya menuruti kemauan kita. Solusinya? Tentu saja: Indikator Kustom + Offline Chart.
Kita, sekali lagi, harus membuat sebuah "pabrik" kecil (indikator) yang akan berjalan di belakang layar, memproses data mentah M1, lalu "mencetak" data sejarah palsu (.hcc) yang kemudian kita buka sebagai *offline chart*. Ini merepotkan. Ini tidak elegan. Tapi ini satu-satunya cara.
Ini adalah bagian di mana para *non-programmer* biasanya mulai pusing. Tapi sebagai *developer* (atau calon *developer*), Anda harus tahu apa yang terjadi di "dapur". Artikel MQL5 (15688) menjelaskan ini secara klinis. Mari kita jelaskan dengan sedikit... "bumbu".
Tugas kita adalah membuat **Indikator** (bukan EA) yang akan melakukan 4 hal:
Anda mungkin berpikir kita butuh `OnTick()` untuk data *tick-by-tick*. Sebenarnya, tidak. `OnCalculate()` jauh lebih kuat. Versi lengkap `OnCalculate` memberi kita semua yang kita butuhkan:
int OnCalculate(const int rates_total, const int prev_calculated, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& tick_volume[], const long& volume[], const int& spread[])
Lihat dua array terakhir itu? tick_volume[] dan volume[] (alias `real_volume`)? Itulah emasnya. tick_volume adalah jumlah *ticks* dalam *bar* M1 itu. volume adalah *real volume* (jumlah lot/kontrak) dalam *bar* M1 itu. MetaQuotes sudah menyediakannya untuk kita. Kita "hanya" perlu merakitnya.
Ini adalah inti dari algoritma Anda. Anda perlu beberapa variabel *static* (atau *global*) untuk melacak *bar* kustom Anda yang sedang "dalam proses":
static MqlRates customBar; // Struct untuk nyimpan bar kita static long customTickCounter = 0; // Penghitung tick static long customVolumeCounter = 0; // Penghitung volume static double customRangeStartPrice = 0; // Untuk range chart
Lalu, di dalam *loop* `OnCalculate()` Anda (yang berulang dari `prev_calculated` ke `rates_total`), Anda akan melakukan logika seperti ini (contoh untuk *Tick Chart* 1000-tick):
if (customTickCounter >= 1000)Anda tinggal mengadaptasi logika `if` di Langkah 5 untuk chart lain. Untuk *Volume Chart*, Anda cek `customVolumeCounter >= 10000`. Untuk *Range Chart*, Anda cek `(customBar.high - customBar.low) >= 10 * _Point`.
Ini adalah bagian di mana 90% orang menyerah. Anda tidak bisa seenaknya `FileWrite()`. Anda harus membuat file histori *binary* kustom yang formatnya bisa dibaca MT5. Ini melibatkan `FileOpen()` dengan *flag* `FILE_BIN | FILE_WRITE`, lalu menggunakan `FileWriteStruct()` untuk menulis *struct* `MqlRates` (si `customBar` tadi) setiap kali *bar*-nya "matang".
Anda juga harus menangani penutupan file (`FileClose()`) di `OnDeinit()` agar file Anda tidak korup. Ini adalah pekerjaan kotor, merepotkan, dan seharusnya tidak perlu kita lakukan. Tapi apa boleh buat.
Setelah semua penderitaan teknis itu, apakah sepadan?
Keuntungannya (PRO):
Konsekuensinya (KONTRA / YANG MENYAKITKAN):
Chart non-standar (Tick, Volume, dan Range) adalah alat analisis yang sangat, sangat canggih. Mereka membuka dimensi baru dalam melihat pasar, membuang ilusi "waktu" dan fokus pada apa yang penting: *aktivitas* dan *uang*.
Namun, di platform MT5, mengakses kekuatan ini adalah sebuah "perjuangan". Ini adalah "retasan", sebuah *workaround* yang rumit yang membuktikan bahwa kita (para *developer*) lebih pintar daripada *default setting* platform kita.
Ini jelas bukan *Holy Grail*. Ini adalah mikroskop bedah yang kuat. Ia tidak akan memberi Anda sinyal "Beli di sini, Jual di sana". Tapi ia akan memberi Anda informasi berkualitas jauh lebih tinggi untuk membuat keputusan Anda sendiri. Ini adalah alat untuk seorang profesional yang rela "repot" demi mendapatkan data terbaik.
Jika Anda adalah tipe orang yang suka membongkar mesin, tidak puas dengan pengaturan *default*, dan selalu ingin tahu "mengapa" di balik setiap pergerakan harga... maka Anda adalah tipe orang yang kami sukai.
Dunia *trading* teknis penuh dengan "retasan" cerdas dan analisis mendalam seperti ini. Jika Anda ingin terus mengasah otak Anda dan tidak ketinggalan diskusi teknis dan strategi *out-of-the-box*... Pastikan Anda follow akun sosial media INVEZTO. Kami di sana bukan untuk pamer sinyal, tapi untuk membedah pasar dengan cara yang cerdas, edukatif, dan (kadang) sedikit sarkastik. Dapatkan info menarik lainnya dan jadilah trader yang benar-benar paham apa yang mereka lihat.
Multi-Level Grid Trading M...
Bitcoin: Asia Serves Toxic...
Pasar Forex Curang? ...
Gartley Pattern MQL5: The ...