
Ringkasan
Strategi ini terutama menggunakan ATR (Average True Range) dan SMA (Simple Moving Average) dua indikator untuk menilai pasar penyusunan dan pecah, sehingga melakukan perdagangan. Gagasan utama strategi ini adalah: ketika harga menembus ATR naik atau turun, menganggap pasar terjadi, membuka posisi; ketika harga kembali ke dalam orbit ATR, menganggap pasar masuk ke penyusunan, meratakan posisi keluar.
Prinsip Strategi
- Perhitungan indikator ATR dan indikator SMA, ATR digunakan untuk menilai volatilitas pasar, dan SMA digunakan untuk menilai tingkat harga rata-rata pasar.
- Berdasarkan ATR dan SMA dihitung naik turun, naik turun adalah SMA + ATR * multiplier, turun adalah SMA - ATR * multiplier, multiplier adalah kelipatan yang disesuaikan oleh pengguna.
- Untuk menentukan apakah pasar berada dalam kondisi penataan, pasar dianggap berada dalam kondisi penataan ketika harga tertinggi lebih rendah dari harga atas dan harga terendah lebih tinggi dari harga bawah.
- Untuk menentukan apakah pasar mengalami penembusan, ketika harga tertinggi menembus tren naik, dianggap terjadi penembusan ke atas; ketika harga terendah jatuh dari tren turun, dianggap terjadi penembusan ke bawah.
- Berdasarkan situasi terobosan, posisi terobosan terbuka ke atas, posisi terobosan terbuka ke bawah, dan posisi kosong dibuka.
- Pada kondisi Stop Loss dan Stop Stop, posisi ditutup ketika harga mencapai harga Stop Loss (SMA - ATR * stop_loss_percentage) atau Stop Loss (SMA + ATR * take_profit_percentage).
- Menghitung jumlah risiko per perdagangan berdasarkan rasio risiko yang disesuaikan oleh pengguna (risk_percentage), kemudian menghitung ukuran posisi berdasarkan ATR (position_size).
Analisis Keunggulan
- Strategi logis yang jelas, mudah dipahami dan diterapkan.
- Menggunakan indikator ATR untuk menilai volatilitas pasar, dapat beradaptasi dengan kondisi pasar yang berbeda.
- Indikator SMA digunakan untuk menilai tingkat harga rata-rata pasar dan dapat melacak tren utama pasar.
- Dengan mempertimbangkan kondisi pasar saat membuka posisi, maka dapat dihindari seringnya transaksi di pasar yang bergejolak.
- Dengan menggunakan stop loss dan stop-loss, Anda dapat secara efektif mengendalikan risiko setiap transaksi.
- Menggunakan Manajemen Posisi, Anda dapat secara otomatis menyesuaikan ukuran posisi Anda sesuai dengan jumlah dan tingkat risiko akun Anda.
Analisis risiko
- Strategi ini mungkin tidak bekerja dengan baik di pasar yang bergoyang, karena seringnya penembusan dan penyusunan dapat menyebabkan seringnya pembukaan dan penghentian posisi, sehingga meningkatkan biaya transaksi.
- Pengaturan parameter kebijakan sangat berpengaruh pada kinerja kebijakan, dan parameter yang berbeda dapat menyebabkan hasil yang sama sekali berbeda, sehingga perlu untuk melakukan debug dan optimasi parameter dengan hati-hati.
- Setelan stop loss dan stop loss dalam strategi mungkin tidak cukup fleksibel, dan persentase stop loss dan stop loss yang tetap mungkin tidak dapat disesuaikan dengan kondisi pasar yang berbeda.
- Manajemen posisi strategi mungkin terlalu sederhana dan tidak mempertimbangkan faktor-faktor seperti tren pasar dan volatilitas, yang dapat menyebabkan posisi terlalu besar atau terlalu kecil dalam beberapa kasus.
Arah optimasi
- Anda dapat mempertimbangkan untuk menambahkan kondisi penyaringan tren, seperti hanya membuka posisi over jika tren naik, dan membuka posisi kosong jika tren turun, untuk menghindari sering berdagang di pasar yang bergoyang.
- Anda dapat mempertimbangkan untuk menggunakan stop loss dan stop loss yang lebih fleksibel, seperti menyesuaikan stop loss dan stop loss sesuai dengan ATR atau dinamika pasar yang berfluktuasi untuk menyesuaikan dengan kondisi pasar yang berbeda.
- Anda dapat mempertimbangkan untuk menggunakan metode manajemen posisi yang lebih kompleks, seperti penyesuaian ukuran posisi berdasarkan tren pasar dan volatilitas, untuk mengendalikan risiko dan meningkatkan keuntungan.
- Untuk meningkatkan keandalan dan stabilitas strategi, Anda dapat mempertimbangkan untuk menambahkan filter lain, seperti volume transaksi, volatilitas, dan lain-lain.
Meringkaskan
Strategi ini menggunakan ATR dan SMA, dua indikator sederhana, untuk melakukan perdagangan dengan menilai harga terobosan dan menyusun, dan menggunakan kontrol risiko dan manajemen posisi untuk mengendalikan risiko dan ukuran posisi setiap perdagangan. Logika strategi jelas, mudah dipahami dan diimplementasikan, tetapi dalam aplikasi praktis mungkin ada beberapa masalah, seperti kinerja yang buruk di pasar yang bergolak, pengaturan parameter mempengaruhi kinerja strategi, pengaturan stop loss dan stop loss tidak cukup fleksibel, manajemen posisi terlalu sederhana, dll.
Kode Sumber Strategi
/*backtest
start: 2024-05-09 00:00:00
end: 2024-05-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Consolidation Breakout Strategy", overlay=true)
// Input Parameters
length = input.int(20, "Length", minval=1)
multiplier = input.float(2.0, "Multiplier", minval=0.1, maxval=10.0)
risk_percentage = input.float(1.0, "Risk Percentage", minval=0.1, maxval=10.0)
stop_loss_percentage = input.float(1.0, "Stop Loss Percentage", minval=0.1, maxval=10.0)
take_profit_percentage = input.float(2.0, "Take Profit Percentage", minval=0.1, maxval=10.0)
// ATR calculation
atr_value = ta.atr(length)
// Average price calculation
average_price = ta.sma(close, length)
// Upper and lower bounds for consolidation detection
upper_bound = average_price + multiplier * atr_value
lower_bound = average_price - multiplier * atr_value
// Consolidation detection
is_consolidating = (high < upper_bound) and (low > lower_bound)
// Breakout detection
is_breakout_up = high > upper_bound
is_breakout_down = low < lower_bound
// Entry conditions
enter_long = is_breakout_up and not is_consolidating
enter_short = is_breakout_down and not is_consolidating
// Exit conditions
exit_long = low < (average_price - atr_value * stop_loss_percentage) or high > (average_price + atr_value * take_profit_percentage)
exit_short = high > (average_price + atr_value * stop_loss_percentage) or low < (average_price - atr_value * take_profit_percentage)
// Risk calculation
risk_per_trade = strategy.equity * (risk_percentage / 100)
position_size = risk_per_trade / atr_value
// Strategy
if (enter_long)
strategy.entry("Long", strategy.long, qty=position_size)
if (enter_short)
strategy.entry("Short", strategy.short, qty=position_size)
if (exit_long)
strategy.close("Long")
if (exit_short)
strategy.close("Short")