Cara Menghitung Donchian Channels
Jawaban langsung
Donchian Channels dihitung dengan mengambil harga tertinggi dan harga terendah selama jendela lookback tetap, lalu memplot dua ekstrem berjalan tersebut sebagai batas saluran. Garis ketiga yang umum adalah titik tengah, biasanya rata-rata dari batas atas dan bawah.
Poin verifikasi utama adalah bahwa perhitungan bergantung pada apa yang dimaksud dengan “harga” dalam kumpulan data Anda (misalnya, harga tertinggi/terendah candle) dan pada panjang lookback yang tepat (sering disebut periode). Jika Anda dapat mereproduksi input tersebut secara konsisten, Anda dapat memeriksa nilai indikator secara independen.
Mekanisme: definisi dan input
Ide inti
Untuk setiap titik waktu (sering kali setiap candle/bar), Donchian Channels menggunakan dua fungsi berjalan pada N bar terbaru:
- Pita atas = maksimum dari harga tertinggi selama N bar terakhir.
- Pita bawah = minimum dari harga terendah selama N bar terakhir.
Secara opsional, banyak implementasi juga memplot:
- Pita tengah = (Pita atas + Pita bawah) / 2.
Input yang harus Anda tentukan
Untuk menghitung Donchian Channels, Anda memerlukan:
- Deret waktu candle atau bar (interval reguler) atau kumpulan data berstempel waktu yang setara.
- Nilai tertinggi dan terendah untuk setiap bar. Menggunakan harga tertinggi dan terendah adalah pendekatan paling standar; menggunakan harga penutupan sebagai gantinya akan menjadi indikator yang berbeda, meskipun orang masih menyebutnya secara longgar sebagai “Donchian”.
- Periode lookback N (misalnya, 20 bar umum di banyak konteks, tetapi bilangan bulat N apa pun dapat digunakan).
- Aturan untuk penyelarasan: nilai pada waktu t dihitung dari bar dalam jendela yang berakhir di t (atau terkadang berakhir di bar sebelumnya, tergantung implementasinya). Saat memverifikasi, cocokkan konvensi implementasi tersebut.
Asumsi untuk pemeriksaan mandiri
Saat Anda memverifikasi perhitungan pada data Anda sendiri, asumsikan:
- Bar diurutkan secara kronologis.
- Setiap bar memiliki harga tertinggi dan terendah.
- Jendela lookback tepat N bar terbaru yang Anda pilih.
- Tidak ada look-ahead: nilai atas dan bawah pada waktu t hanya boleh menggunakan informasi yang tersedia hingga t.
Rumus: bagaimana pita dihitung
Misalkan:
- t adalah indeks bar saat ini.
- N adalah periode lookback.
- High[i] adalah harga tertinggi bar i.
- Low[i] adalah harga terendah bar i.
Maka Donchian Channels biasanya didefinisikan sebagai:
- Upper(t) = max(High[t−N+1], … , High[t])
- Lower(t) = min(Low[t−N+1], … , Low[t])
- Mid(t) = (Upper(t) + Lower(t)) / 2 (opsional, tetapi umum)
Apa arti “berjalan”
“Berjalan” berarti nilai maksimum dan minimum dihitung ulang pada setiap bar baru:
- Saat Anda maju dari t ke t+1, jendela bergeser maju satu bar.
- Bar terjauh sebelumnya keluar dari jendela, dan bar baru masuk.
Inilah sebabnya pita dapat melompat: harga tertinggi maksimum atau harga terendah minimum dapat berubah secara tiba-tiba ketika sebuah nilai ekstrem masuk atau keluar dari jendela.
Bukti atau contoh: hitung satu langkah secara manual
Asumsikan kumpulan data sederhana dengan periode lookback N = 3. Untuk bar t tertentu, misalkan tiga bar terakhir memiliki:
- High[t−2] = 1.1000, High[t−1] = 1.1030, High[t] = 1.1010
- Low[t−2] = 1.0950, Low[t−1] = 1.0960, Low[t] = 1.0970
Maka:
- Upper(t) = max(1.1000, 1.1030, 1.1010) = 1.1030
- Lower(t) = min(1.0950, 1.0960, 1.0970) = 1.0950
- Mid(t) = (1.1030 + 1.0950) / 2 = 1.0990
Jika Anda mengulangi ini untuk bar berikutnya t+1, Anda menghapus bar tertua di jendela dan menyertakan harga tertinggi dan terendah bar baru. Jika angka Anda berbeda dari suatu implementasi, perbedaannya biasanya disebabkan oleh ketidakcocokan input (harga tertinggi/terendah vs harga penutupan) atau ketidakcocokan penyelarasan jendela (menyertakan atau mengecualikan bar saat ini).
Keterbatasan dan mode kegagalan umum
1) Ketidakcocokan definisi data
Sumber kesalahan yang sering terjadi adalah definisi yang tidak konsisten di antara penyedia data:
- Beberapa sumber mungkin menyesuaikan harga (lebih relevan untuk rangkaian historis yang panjang atau pasar tertentu).
- Konstruksi candle bergantung pada feed, penanganan timezone, dan bagaimana platform mengagregasi tick menjadi bar.
- Periode yang hilang atau tidak likuid dapat menghasilkan nilai tertinggi/terendah yang tidak lazim.
Bahkan jika rumusnya benar, dua kumpulan data dapat menghasilkan saluran yang berbeda.
2) Kebingungan “look-ahead” dan penyelarasan
Jika sebuah implementasi menggunakan jendela yang berakhir di bar berikutnya (disengaja atau tidak), secara efektif ia menggunakan informasi yang tidak tersedia pada waktu t. Saat memverifikasi, pastikan:
- Nilai maksimum/minimum pada waktu t hanya menggunakan bar hingga t.
- Anda menerapkan konvensi pengindeksan yang sama (berakhir di t vs berakhir di t−1).
3) Perilaku tepi jendela
Untuk bar paling awal, Anda tidak dapat menghitung pita sampai setidaknya N bar tersedia. Beberapa platform mengeluarkan hasil kosong atau parsial. Ini memengaruhi segmen awal dan backtest apa pun yang dimulai terlalu dekat dengan awal.
4) Ekstrem berjalan bisa sensitif terhadap lonjakan
Karena pita atas adalah maksimum berjalan dan pita bawah adalah minimum berjalan, satu lonjakan singkat pada harga tertinggi atau terendah dapat menarik batas ke luar hingga N bar. Dalam praktiknya, ini berarti saluran dapat mencerminkan outlier daripada pergerakan yang berkelanjutan.
5) Hubungan dengan “implikasi” tidak otomatis
Bahkan ketika dihitung dengan benar, pita hanya fungsi deskriptif dari harga tertinggi dan terendah masa lalu. Bagaimana mereka diinterpretasikan bergantung pada konteks dan aturan tambahan. Indikator itu sendiri tidak secara inheren memberikan sinyal yang berdiri sendiri.
Verifikasi dan pertanyaan berikutnya
Untuk memverifikasi Donchian Channels secara independen:
- Pilih periode lookback N.
- Gunakan satu kumpulan data harga yang konsisten dengan harga tertinggi dan terendah per bar.
- Untuk beberapa stempel waktu yang dipilih, hitung Upper(t) sebagai maksimum berjalan dari harga tertinggi dan Lower(t) sebagai minimum berjalan dari harga terendah.
- Konfirmasikan apakah titik tengah Anda cocok dengan (Upper + Lower)/2 jika garis tengah disertakan.
- Periksa penyelarasan: verifikasi apakah jendela menyertakan bar saat ini.