Ini adalah strategi perdagangan kuantitatif panjang/pendek berdasarkan teori breakout. Ini menghitung harga penutupan tertinggi selama 100 hari perdagangan terakhir dan menentukan apakah akan terjadi breakout berdasarkan apakah harga penutupan terakhir melebihi level tersebut. Jika breakout terdeteksi, sinyal panjang dipicu. Setelah masuk panjang, posisi akan ditutup dengan stop loss setelah 25 bar.
Logika inti dari strategi ini memanfaatkan teori
Secara khusus strategi ini menggunakan fungsi Pine Script built-inta.highest()
untuk menghitung penutupan tertinggi selama 100 bar terakhir. kemudian membandingkan jika harga penutupan bar saat ini lebih tinggi dari level tersebut. jika harga penutupan menerobos dan melebihi harga penutupan tertinggi 100 hari, sinyal masuk panjang dipicu.
Setelah memasuki posisi long, strategi menetapkan kondisi stop loss untuk menutup posisi.ta.barssince()
untuk menghitung jumlah bar yang telah berlalu sejak masuk panjang, itu akan memaksa untuk menutup posisi setelah 25 bar.
Logika entri dapat diringkas sebagai:
Keuntungan terbesar dari strategi ini adalah menangkap titik pembalikan harga dengan tingkat keberhasilan yang relatif tinggi dari perdagangan yang mengikuti tren.
Keuntungan konkretnya adalah:
1. Mengikuti tren, tingkat keberhasilan yang lebih tinggi
Teori breakout percaya bahwa setelah harga melampaui tingkat kunci, itu dapat memulai tren baru.
2. Risiko yang terkontrol, dengan stop loss
Strategi ini menetapkan stop loss exit setelah 25 bar hingga kerugian tunggal maksimum, menghindari kerugian besar.
3. Cocok untuk kepemilikan jangka menengah hingga panjang
Periode pemegang default adalah 25 bar, sekitar 1 bulan. Frekuensi ini cocok untuk strategi jangka menengah hingga panjang, tidak terlalu pendek untuk whipsaws, dan tidak terlalu lama untuk meningkatkan risiko.
4. Beberapa parameter, mudah dioptimalkan
Pada dasarnya ada 2 parameter yang dapat disetel. Dengan beberapa parameter, mudah untuk menguji dan menemukan parameter optimal untuk perdagangan yang sebenarnya.
5. Dapat ditransfer ke berbagai produk
Strategi ini tidak menjawab indikator khusus produk tertentu. Logikanya berlaku untuk saham, forex, komoditas, cryptocurrency dll. Jadi fleksibel untuk beralih antara produk.
Sementara strategi ini memiliki beberapa keunggulan, ada juga beberapa risiko ketika digunakan dalam perdagangan yang sebenarnya, terutama:
1. Risiko memegang posisi yang kehilangan
Strategi ini tidak memiliki trailing stop loss untuk mengikuti posisi yang menguntungkan. Jika tren harga tidak berjalan seperti yang diharapkan, atau breakout ternyata palsu, maka keluar paksa pada titik stop loss yang telah ditetapkan sebelumnya dapat menyebabkan kerugian besar. Ini adalah risiko terbesar.
2. Pengaturan parameter mungkin diperlukan
Parameter default mungkin tidak optimal. Mereka perlu dioptimalkan selama perdagangan langsung untuk menemukan yang paling cocok untuk produk dan rezim pasar tertentu. Ini menambahkan pekerjaan tambahan.
3. Korelasi kinerja dengan pasar
Strategi ini terlalu bergantung pada tren harga yang terus-menerus. Ini tidak bekerja dengan baik selama rezim yang terbatas pada kisaran. Jika terjadi pasar whipsaw, keluar paksa akan sering terjadi yang menyebabkan keuntungan / kerugian yang tidak stabil.
Untuk membuat strategi ini lebih kuat dan menguntungkan untuk penyebaran yang sebenarnya, beberapa peningkatan dapat dilakukan dari aspek berikut:
1. Tambahkan mekanisme stop loss trailing
Tambahkan logika stop loss trailing untuk mengikuti posisi menguntungkan, dengan secara dinamis memperbarui titik stop loss berdasarkan keuntungan yang mengambang.
2. Parameter adaptatif berdasarkan pasar
Membuat parameter seperti periode breakout dan periode holding adaptif berdasarkan kekuatan pasar, diukur dengan menggunakan metrik seperti ATR. Ini dapat secara dinamis menyesuaikan parameter.
**3. Gabungkan filter tren **
Menyaring lebih baik tren yang tidak jelas ketika menerapkan strategi, melalui analisis tren sebelumnya, baik secara diskresional atau kuantitatif.
4. Uji pada produk dan interval yang berbeda
Memeriksa parameter dan aturan yang dioptimalkan pada produk yang berbeda (misalnya indeks, komoditas, forex, crypto) dan interval (misalnya harian, 60m bar) akan membuat strategi ini lebih kuat dan dapat diterapkan secara luas.
Strategi pembalikan breakout ini dengan stop loss mudah diterapkan dengan aturan yang jelas tentang identifikasi tren dan manajemen posisi. Kami menganalisis kekuatan dan risikonya, memberikan saran untuk meningkatkan profitabilitas dan penerapannya. Dengan optimasi lebih lanjut, ini dapat menjadi strategi perdagangan kuantitatif yang solid.
/*backtest start: 2023-01-29 00:00:00 end: 2024-02-04 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © All_Verklempt //@version=5 strategy("Breakout Strategy", overlay=true) // Input variable for breakout period breakoutPeriod = input.int(100, title="Breakout Period", minval=1) // Calculate the highest close of the past breakout period highestClose = ta.highest(close, breakoutPeriod) // Input variables for start and end dates startYear = input.int(2022, title="Start Year", minval=1900) startMonth = input.int(1, title="Start Month", minval=1, maxval=12) startDay = input.int(1, title="Start Day", minval=1, maxval=31) endYear = input.int(2023, title="End Year", minval=1900) endMonth = input.int(12, title="End Month", minval=1, maxval=12) endDay = input.int(31, title="End Day", minval=1, maxval=31) // Convert start and end dates to timestamp startDate = timestamp(startYear, startMonth, startDay, 00, 00) endDate = timestamp(endYear, endMonth, endDay, 23, 59) // Entry condition: Breakout and higher close within the specified date range enterLong = close > highestClose[1] and close > close[1] // Exit condition: Close the long position after twenty-five bars exitLong = ta.barssince(enterLong) >= 25 // Strategy logic if (enterLong) strategy.entry("Long", strategy.long) if (exitLong) strategy.close("Long")