Strategi ini membandingkan ATR dengan harga dengan menghitung rata-rata real range of fluctuation, untuk menentukan arah tren harga, dan digabungkan dengan penilaian tambahan rata-rata bergerak. Dibandingkan dengan metode penilaian tren lainnya, strategi ini lebih cepat menangkap tren perubahan harga, dan pengunduran diri kecil.
Strategi ini didasarkan pada langkah-langkah berikut untuk menentukan tren harga:
Perhitungan rata-rata real range ATR untuk N hari terakhir. Di sini digunakan metode perhitungan ATR yang didefinisikan oleh Wilder, yang dapat lebih mencerminkan kondisi pasar saat ini.
Garis atas dan garis bawah dihitung berdasarkan ATR dan atk adjustment coefficient. Garis atas = harga - ((atk dikali ATR); Garis bawah = harga + ((atk dikali ATR) [2]. di mana atk biasanya disetel antara 2-3 [2].
Perbandingan harga dengan garis atas dan bawah, untuk menentukan arah tren. Harga di atas garis atas adalah sinyal bullish; harga di bawah garis bawah adalah sinyal bearish.
Ketika terjadi sinyal trading, lakukan over atau under. Di sini kombinasi dengan moving average menentukan kualitas sinyal.
Termasuk dalam strategi pengendalian risiko Stop Loss.
Menggunakan warna untuk menandai status strategi, untuk membantu penilaian.
Strategi ini memanfaatkan keuntungan ATR untuk menangkap tren perubahan harga dengan cepat dan melakukan operasi mundur rendah, yang merupakan strategi pelacakan tren yang lebih khas.
Strategi ini memiliki keuntungan sebagai berikut:
ATR dapat merespons dengan cepat terhadap perubahan harga. ATR dapat merespons dengan cepat terhadap tren terbaru, sehingga dapat menangkap perubahan tren tepat waktu.
Pemunduran kecil. Ada zona penyangga di jalur atas dan bawah yang dapat mengurangi kemungkinan hambatan rusak dan mengurangi pemunduran.
Sinyal perdagangan jelas. Penarikan jangkauan untuk sinyal perdagangan berkualitas tinggi, dapat dilakukan dengan jelas.
Tingkat kustomisasi yang tinggi. Siklus dan kelipatan ATR dapat disesuaikan untuk menyesuaikan dengan lingkungan pasar yang berbeda.
Visualisasi yang kuat. Menggunakan alat grafis untuk menunjukkan status kebijakan, operasi intuituve.
Mudah untuk dioptimalkan. Dapat ditambahkan modul seperti Stop Loss Mobile, Filter, dan lainnya untuk dioptimalkan lebih lanjut.
Secara keseluruhan, strategi ini menarik mundur kecil, keuntungan menonjol, cocok untuk mengikuti tren, dan merupakan strategi perdagangan yang sangat praktis.
Strategi ini juga memiliki beberapa risiko:
Risiko kesalahan penilaian tren. Pada saat harga bergejolak, sinyal yang salah dapat muncul.
Risiko memilih titik keluar. Perlu memilih titik berhenti yang masuk akal untuk mencegah keluar terlalu dini.
Risiko optimasi parameter. Periode dan kelipatan ATR memerlukan pengoptimalan tes berulang, dan pengaturan yang tidak tepat dapat mempengaruhi kinerja strategi.
Risiko terlalu sering bertransaksi. Frekuensi transaksi mungkin terlalu tinggi ketika pasar sangat tidak stabil.
Resikonya kurang baik. Dalam beberapa pasar di mana tren tidak jelas, efeknya mungkin kurang baik.
Risiko penyesuaian disk fisik. Dalam operasi disk fisik, penyesuaian dan pengoptimalan juga diperlukan untuk titik geser, biaya dan sebagainya.
Risiko sistemik. Perlu mempertimbangkan pengendalian risiko sistem secara keseluruhan dan tidak dapat bergantung pada strategi ini secara terpisah.
Untuk mengatasi risiko tersebut, langkah-langkah berikut dapat dilakukan:
Optimalkan parameter ATR untuk meningkatkan akurasi penilaian.
Analisis multi-siklus untuk menentukan tren.
Menggunakan Stop Loss Mobile untuk mengunci keuntungan dan mengurangi penarikan.
Penggunaan kondisi filter untuk mengontrol frekuensi transaksi.
Parameter strategi yang disesuaikan dengan pasar yang berbeda.
Berbagai varietas telah diuji coba untuk menemukan aplikasi terbaik.
Pertimbangan yang menyeluruh terhadap berbagai jenis risiko transaksi di real-time.
Strategi ini dapat dioptimalkan dengan:
Memperkenalkan indikator seperti garis rata-rata untuk memfilter, mengurangi sinyal yang salah. Pertimbangan tambahan dari indikator seperti MACD, KDJ dapat ditambahkan.
Optimalkan parameter ATR. Anda dapat menguji parameter ATR periode yang berbeda untuk menemukan nilai optimal.
Optimalkan parameter perkalian. Anda dapat menguji parameter perkalian yang berbeda untuk menentukan sensitivitas sinyal yang dihasilkan.
Bergabunglah dengan strategi stop loss bergerak. Stop loss dinamis berdasarkan ATR atau volatilitas dapat mengurangi penarikan kembali lebih jauh.
Kombinasi dengan analisis multi-frame waktu. Penambahan penilaian indikator siklus waktu yang lebih tinggi dapat memfilter sinyal palsu yang jarang terjadi.
Menggunakan pembelajaran mesin untuk meningkatkan penilaian sinyal. Menggunakan pelatihan model seperti RNN untuk menilai model sinyal jual beli.
Parameter yang disesuaikan dengan karakteristik varietas. Misalnya, untuk saham yang berfluktuasi, siklus ATR dapat dipersingkat secara tepat.
Optimalkan titik masuk. Anda dapat menemukan titik masuk yang lebih baik dengan cara menembus dan menarik kembali.
Indikator kekuatan penggabungan. Penambahan kekuatan sinyal tambahan seperti volume transmisi.
Tambahkan strategi stop. Tentukan stop berdasarkan indikator energi tren, dll.
Strategi supertrend ini sangat praktis secara keseluruhan, memiliki respon cepat, mundur kecil, dan mudah dioptimalkan, dan merupakan strategi pelacakan tren yang khas. Tetapi juga perlu memperhatikan kesalahan penghakiman dan optimalisasi parameter. Risiko seperti ini harus dipertimbangkan secara menyeluruh di lapangan. Dengan optimalisasi lebih lanjut, strategi dapat dibuat lebih kokoh dan mendapatkan hasil yang lebih baik di lebih banyak pasar.
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KivancOzbilgic
//@version=4
strategy("SuperTrend STRATEGY", overlay=true)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 999)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => true
longCondition = buySignal
if (longCondition)
strategy.entry("BUY", strategy.long, when = window())
shortCondition = sellSignal
if (shortCondition)
strategy.entry("SELL", strategy.short, when = window())
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)
//@version=3
//study(title="3 Moving Average Exponential", shorttitle="3 EMA", overlay=true)
//len1 = input(17, minval=1, title="Fast")
//len2 = input(72, minval=1, title="Medium")
len3 = input(305, minval=1, title="Slow")
//src1 = input(close, title="Source Fast")
//src2 = input(close, title="Source Medium")
src3 = input(close, title="Source Slow")
//out1 = ema(src1, len1)
//out2 = ema(src2, len2)
out3 = ema(src3, len3)
//plot(out1, title="EMA1", color=fuchsia)
//plot(out2, title="EMA2", color=orange)
plot(out3, title="EMA3", color=color.blue)