Strategi ini membandingkan ATR dengan harga dengan mengira purata jangkauan pergerakan sebenar, menentukan arah trend harga, dan menggabungkan penilaian tambahan dengan purata bergerak. Berbanding dengan kaedah penilaian trend lain, strategi ini dapat menangkap trend perubahan harga dengan lebih cepat, dan pengunduran kecil.
Strategi ini mengesan trend harga melalui langkah-langkah berikut:
Mengira purata rentang turun naik sebenar ATR untuk N hari terakhir. Di sini menggunakan kaedah pengiraan ATR yang ditakrifkan oleh Wilder, yang lebih baik mencerminkan turun naik pasaran semasa.
Garis lintasan atas dan bawah dikira berdasarkan ATR dan ATK. Garis lintasan atas = harga - ((atk kali ATR); Garis lintasan bawah = harga + ((atk kali ATR) [2]. di mana ATK biasanya ditetapkan antara 2-3 [2].
Bandingkan harga dengan garisan atas dan bawah, untuk menentukan arah trend. Harga atas memakai garisan atas sebagai isyarat bullish; harga bawah melanggar garisan bawah sebagai isyarat bearish.
Apabila berlaku isyarat dagangan, buat lebih atau buat kosong. Di sini gabungan purata bergerak menentukan kualiti isyarat.
Menambah strategi kawalan risiko Hentikan Kerosakan
Menggunakan warna untuk menandakan keadaan strategi, untuk membantu penilaian.
Strategi ini memanfaatkan kelebihan ATR untuk menangkap trend perubahan harga dengan cepat dan melakukan operasi penarikan balik rendah, yang merupakan strategi pengesanan trend yang lebih khas.
Strategi ini mempunyai kelebihan berikut:
Bertindak pantas terhadap perubahan harga. ATR dapat bertindak balas dengan cepat terhadap keadaan terkini, yang membantu menangkap perubahan trend tepat pada masanya.
Pengunduran kecil. Terdapat kawasan pelindung di atas dan di bawah landasan yang dapat mengurangkan kemungkinan penghalang terputus dan mengurangkan pengunduran.
Isyarat dagangan jelas. Penembusan julat penyusunan adalah isyarat dagangan berkualiti tinggi.
Tingkat penyesuaian yang tinggi. Siklus dan kelipatan ATR boleh disesuaikan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
Visual yang kuat. Penggunaan alat grafik untuk memaparkan status strategi, operasi intuituve.
Mudah dioptimumkan. Modul seperti Stop Loss Mobile, Filter dan sebagainya boleh ditambah untuk dioptimumkan lebih jauh.
Secara keseluruhannya, strategi ini adalah strategi perdagangan yang sangat praktikal, dengan sedikit kemunduran, kelebihan yang menonjol, sesuai untuk mengikuti trend.
Strategi ini juga mempunyai risiko:
Risiko kesilapan dalam menilai trend. Apabila harga bergoyang, isyarat yang salah mungkin berlaku.
Risiko memilih titik keluar. Perlu memilih titik berhenti yang munasabah untuk mengelakkan penarikan diri terlalu awal.
Risiko pengoptimuman parameter. Kitaran ATR dan kelipatan memerlukan pengoptimuman ujian berulang. Tetapan yang tidak betul akan menjejaskan prestasi strategi.
Risiko frekuensi dagangan yang terlalu tinggi. Frekuensi dagangan mungkin terlalu tinggi apabila pasaran bergelora.
Kesan kurang baik: risiko tidak baik. Kesan kurang baik mungkin berlaku dalam pasaran tertentu yang tidak menunjukkan trend.
Risiko penyesuaian cakera. Apabila operasi cakera, penyesuaian dan pengoptimuman perlu dilakukan untuk titik slippage, yuran dan sebagainya.
Risiko sistemik. Pengendalian risiko sistem secara keseluruhan perlu dipertimbangkan dan tidak boleh bergantung kepada strategi ini sahaja.
Langkah-langkah berikut boleh diambil untuk mengawal risiko tersebut:
Mengoptimumkan parameter ATR untuk meningkatkan ketepatan penilaian.
Menggabungkan analisis kitaran masa untuk menentukan trend.
Menggunakan Stop Loss Mobile untuk mengunci keuntungan dan mengurangkan pengeluaran.
Penggunaan syarat penapisan untuk mengawal kekerapan transaksi.
Parameter strategi penyesuaian untuk pasaran yang berbeza.
Uji varieti yang berbeza untuk mencari kegunaan terbaik.
Berfikir secara menyeluruh mengenai risiko perdagangan dalam pasaran sebenar.
Strategi ini boleh dioptimumkan dengan:
Pengenalan penapis indikator seperti garis rata-rata, mengurangkan isyarat salah. Keputusan tambahan dari indikator seperti MACD, KDJ boleh dimasukkan.
Optimumkan parameter ATR. Anda boleh menguji parameter kitaran ATR yang berbeza untuk mencari nilai optimum.
Optimumkan parameter perkalian. Anda boleh menguji parameter perkalian yang berbeza untuk menentukan kepekaan yang dihasilkan oleh isyarat.
Menyertai strategi hentian bergerak. Hentian dinamik berdasarkan ATR atau kadar turun naik dapat mengurangkan penarikan balik.
Digabungkan dengan analisis pelbagai bingkai masa. Dengan penambahan penilaian indeks jangka masa yang lebih tinggi, isyarat palsu yang jarang berlaku dapat ditapis.
Menggunakan pembelajaran mesin untuk meningkatkan kefahaman isyarat. Menggunakan latihan model seperti RNN untuk menilai model isyarat jual beli.
Parameter penyesuaian untuk ciri-ciri varietas. Sebagai contoh, untuk saham yang bergelombang, anda boleh mengurangkan kitaran ATR dengan sewajarnya.
Mengoptimumkan tempat masuk. Anda boleh mencari tempat masuk yang lebih baik dengan cara menerobos dan menarik balik.
Penunjuk keupayaan penggabungan. Penambahan bantuan untuk menentukan kekuatan isyarat, seperti jumlah pertukaran.
Tambahkan strategi berhenti. Tentukan titik berhenti berdasarkan indikator tenaga trend dan sebagainya.
Strategi super trend ini sangat praktikal secara keseluruhan, mempunyai keunggulan seperti tindak balas cepat, pengunduran kecil, dan mudah untuk dioptimumkan, dan merupakan strategi pengesanan trend yang tipikal. Tetapi juga perlu berhati-hati dengan kesalahan penghakiman dan pengoptimuman parameter, risiko yang perlu dipertimbangkan secara menyeluruh dalam bidang nyata. Dengan pengoptimuman lanjut, strategi ini dapat dibuat lebih mantap dan memperoleh hasil yang lebih baik di lebih banyak pasaran.
/*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)