Strategi Supertrend berdasarkan Average True Range


Tarikh penciptaan: 2024-01-18 12:26:33 Akhirnya diubah suai: 2024-01-18 12:26:33
Salin: 1 Bilangan klik: 623
1
fokus pada
1617
Pengikut

Strategi Supertrend berdasarkan Average True Range

Gambaran keseluruhan

Strategi ini membina saluran SuperTrend berdasarkan purata gelombang sebenar (Average True Range, ATR) dan menghasilkan isyarat beli dan jual berdasarkan harga yang menembusi saluran SuperTrend. Strategi ini menggabungkan kelebihan pengesanan trend dan pengurusan hentian kerugian untuk mengesan arah trend dengan berkesan.

Prinsip Strategi

Rel atas dan bawah saluran super trend dikira dengan formula berikut:

Laluan atas = (harga tertinggi + harga terendah) / 2 + ATR (n) * faktor Laluan bawah = (harga tertinggi + harga terendah) / 2 - ATR (n) * faktor

Di antaranya, ATR ((n) mewakili purata gelombang sebenar untuk n hari, faktornya adalah parameter yang boleh disesuaikan, dengan default 3 ◦.

Apabila harga penutupan lebih tinggi daripada tren naik, ia adalah isyarat bullish, dan apabila harga penutupan lebih rendah daripada tren turun, ia adalah isyarat bearish. Strategi menentukan masuk dan keluar berdasarkan isyarat bullish dan bearish.

Analisis kelebihan

  • Menggunakan ATR untuk menentukan ruang laluan berdasarkan gelombang pasaran, trend dapat dikesan dengan berkesan
  • Bergabung dengan penembusan laluan untuk menentukan masa masuk ke pasaran, mengelakkan penembusan palsu
  • Julat saluran boleh disesuaikan mengikut parameter faktor untuk menyesuaikan diri dengan pasaran kadar turun naik yang berbeza
  • Kelebihan mengintegrasikan trend tracking dan pengurusan kerugian

Analisis risiko

  • Tetapan parameter faktor yang tidak betul boleh menyebabkan keuntungan yang tidak mencukupi atau kerugian yang berlebihan
  • Isyarat perdagangan yang dikeluarkan oleh saluran super trend sering berlaku semasa pasaran bergolak dan boleh menyebabkan perdagangan berlebihan
  • Perlu mengoptimumkan perbandingan parameter kitaran ATR dengan parameter faktor

Penyelesaian risiko:

  • Parameter penyesuaian faktor untuk pasaran yang berbeza untuk mengurangkan risiko terhad
  • Menambah penapis syarat untuk mengelakkan dagangan yang kerap berlaku di pasaran yang bergolak
  • Faktor-faktor seperti kadar turun naik pasaran, jangka masa memegang dan lain-lain yang selaras dengan kitaran ATR

Arah pengoptimuman

  • Gabungan dengan petunjuk lain untuk menapis isyarat dan mengoptimumkan masa masuk
  • Menambah pengesanan berhenti bergerak untuk mengunci lebih banyak keuntungan
  • Pelbagai varieti, optimasi parameter kitaran
  • Mengoptimumkan perbandingan ATR dengan parameter faktor

ringkaskan

Strategi ini menggunakan saluran hypertrend untuk mencapai trend pelacakan dan pengurusan hentian. Pertandingan parameter ATR dan faktor adalah penting untuk kesan strategi. Langkah seterusnya adalah untuk mengoptimumkan lagi strategi dari segi parameter pengoptimuman, penapisan isyarat dan lain-lain, supaya ia dapat menyesuaikan diri dengan persekitaran pasaran yang lebih kompleks.

Kod sumber strategi
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Backtest", shorttitle="STBT", overlay=true)

// Input for ATR Length
atrLength = input.int(10, title="ATR Length", minval=1)
atrFactor = input.float(3.0, title="Factor", minval=0.01, step=0.01)

// Calculate SuperTrend
[supertrend, direction] = ta.supertrend(atrFactor, atrLength)
supertrend := barstate.isfirst ? na : supertrend

// Define entry and exit conditions
longCondition = ta.crossover(close, supertrend)
shortCondition = ta.crossunder(close, supertrend)

// Plot the SuperTrend
plot(supertrend, color=color.new(color.blue, 0), title="SuperTrend")

// Plot Buy and Sell signals
plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")

// Strategy Entry and Exit
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)