Strategi SuperTrend Breakout

Penulis:ChaoZhang, Tanggal: 2024-02-28 18:12:47
Tag:

img

Gambaran umum

Strategi ini menghasilkan sinyal perdagangan ketika harga keluar dari saluran uptrend / downtrend yang dibentuk oleh indikator SuperTrend.

Logika Strategi

Strategi ini pertama kali menghitung indikator ATR sebagai ukuran volatilitas harga, kemudian menggabungkannya dengan rata-rata harga tertinggi, terendah dan penutupan untuk menghitung band atas dan bawah. Ketika harga melanggar band bawah selama tren naik, sinyal beli dihasilkan. Ketika harga melanggar band atas selama tren turun, sinyal jual dipicu. Ini membentuk saluran tren naik / turun adaptif yang melacak tren harga.

Setelah memasuki pasar, strategi menetapkan target profit ticks dan stop loss ticks.

Analisis Keuntungan

Keuntungan terbesar dari strategi ini adalah kemampuan mengikuti tren yang sangat baik. Saluran adaptif dapat menangkap perubahan tren dengan cepat. Menggunakan ATR juga memberikan beberapa jaminan perdagangan bersama dengan momentum. Selain itu, target keuntungan dan mekanisme stop loss memberikan kontrol risiko / imbalan yang jelas.

Analisis Risiko

Salah satu risiko utama adalah bahwa hal itu dapat menghasilkan whipsaws yang berlebihan selama pasar yang terikat rentang, karena harga terus menerus menembus pita.

Untuk mengurangi risiko tersebut, parameter seperti periode ATR atau channel multiplier dapat dioptimalkan agar lebih sesuai dengan tren yang sebenarnya. Filter lain juga dapat ditambahkan pada sinyal masuk untuk menghindari whipsaws.

Peluang Peningkatan

Strategi ini dapat ditingkatkan dalam beberapa aspek:

  1. Mengoptimalkan parameter ATR untuk lebih mencerminkan dinamika volatilitas yang sebenarnya.

  2. Uji perkalian yang berbeda untuk optimasi lebar saluran.

  3. Tambahkan indikator lain sebagai filter pada entri, misalnya MACD untuk waktu yang lebih baik.

  4. Mengoptimalkan target keuntungan dan tingkat stop loss untuk memaksimalkan pengembalian yang disesuaikan dengan risiko.

  5. Pertimbangkan tujuan lain seperti rasio Sharpe atau faktor keuntungan untuk mengevaluasi kualitas keseluruhan.

Ringkasan

Strategi ini memanfaatkan model adaptif channel breakout untuk mencapai kemampuan mengikuti tren yang besar. Strategi ini juga memiliki mekanisme kontrol risiko yang jelas. Dengan penyesuaian parameter lebih lanjut dan peningkatan logika, strategi ini memiliki potensi untuk bekerja lebih baik di berbagai kondisi pasar dan kelas aset.


/*backtest
start: 2024-02-26 00:00:00
end: 2024-02-26 20:20:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Strategy", overlay=true)

// Input parameters
atr_length = input.int(10, title="ATR Length")
multiplier = input.float(3.0, title="Multiplier")

target_points = input.int(100, title="Target Points")
stop_loss_points = input.int(50, title="Stop Loss Points")

// Calculate ATR and Supertrend
atr = ta.atr(atr_length)
upper_band = hlc3 + (multiplier * atr)
lower_band = hlc3 - (multiplier * atr)
is_uptrend = close > lower_band
is_downtrend = close < upper_band
trend_changed = (is_uptrend[1] and is_downtrend) or (is_downtrend[1] and is_uptrend)

// Strategy logic
long_condition = is_uptrend and trend_changed
short_condition = is_downtrend and trend_changed

// Plot Supertrend
plot(is_uptrend ? lower_band : na, color=color.green, title="Supertrend Up", style=plot.style_linebr)
plot(is_downtrend ? upper_band : na, color=color.red, title="Supertrend Down", style=plot.style_linebr)

// Strategy entry and exit
if long_condition
    strategy.entry("Long", strategy.long)
if short_condition
    strategy.entry("Short", strategy.short)

// Calculate target and stop loss levels
long_target = strategy.position_avg_price + target_points
long_stop_loss = strategy.position_avg_price - stop_loss_points
short_target = strategy.position_avg_price - target_points
short_stop_loss = strategy.position_avg_price + stop_loss_points

// Strategy exit
strategy.exit("Long Exit", "Long", limit=long_target, stop=long_stop_loss)
strategy.exit("Short Exit", "Short", limit=short_target, stop=short_stop_loss)


Lebih banyak