Strategi Penembusan SuperTrend

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

img

Ringkasan

Strategi ini menjana isyarat perdagangan apabila harga keluar dari saluran uptrend / downtrend yang dibentuk oleh penunjuk SuperTrend.

Logika Strategi

Strategi ini mula-mula mengira penunjuk ATR sebagai ukuran turun naik harga, kemudian menggabungkannya dengan purata harga tertinggi, terendah dan penutupan untuk mengira jalur atas dan bawah. Apabila harga memecahkan di atas jalur bawah semasa aliran naik, isyarat beli dihasilkan. Apabila harga memecahkan di bawah jalur atas semasa aliran turun, isyarat jual dicetuskan. Ini membentuk saluran aliran naik / turun adaptif yang mengesan trend harga.

Selepas memasuki pasaran, strategi menetapkan tanda riba sasaran dan tanda stop loss. Ia menutup kedudukan untuk keuntungan apabila harga mencapai sasaran keuntungan, dan berhenti apabila penarikan mencapai tahap stop loss.

Analisis Kelebihan

Manfaat terbesar strategi ini adalah keupayaan trend berikut yang sangat baik. Saluran adaptif dapat menangkap perubahan trend dengan cepat. Menggunakan ATR juga memberikan jaminan perdagangan bersama dengan momentum. Di samping itu, sasaran keuntungan dan mekanisme hentian kerugian memberikan kawalan risiko / ganjaran yang jelas.

Analisis Risiko

Satu risiko utama adalah bahawa ia boleh menghasilkan whipsaws yang berlebihan semasa pasaran terikat julat, kerana harga sentiasa menembusi jalur.

Untuk mengurangkan risiko tersebut, parameter seperti tempoh ATR atau pengganda saluran boleh dioptimumkan untuk menyesuaikan dengan trend sebenar dengan lebih baik. Penapis lain juga boleh ditambah pada isyarat masuk untuk mengelakkan whipsaws.

Peluang Peningkatan

Strategi ini boleh ditingkatkan dalam beberapa aspek:

  1. Mengoptimumkan parameter ATR untuk mencerminkan dinamik turun naik sebenar dengan lebih baik.

  2. Uji pengganda yang berbeza untuk pengoptimuman lebar saluran.

  3. Tambah penunjuk lain sebagai penapis pada entri, contohnya MACD untuk masa yang lebih baik.

  4. Mengoptimumkan sasaran keuntungan dan tahap berhenti kerugian untuk memaksimumkan pulangan yang disesuaikan dengan risiko.

  5. Pertimbangkan objektif lain seperti nisbah Sharpe atau faktor keuntungan untuk menilai kualiti keseluruhan.

Ringkasan

Strategi ini memanfaatkan model penembusan saluran adaptif untuk mencapai keupayaan mengikuti trend yang hebat. Ia juga mempunyai mekanisme kawalan risiko yang jelas. Dengan penyesuaian parameter dan peningkatan logik yang lebih lanjut, ia mempunyai potensi untuk berfungsi lebih baik di pelbagai keadaan pasaran 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 lanjut