
Idea teras strategi ini adalah menggunakan julat turun naik harga yang dikira oleh penunjuk ATR untuk menentukan penembusan harga, dan penunjuk EMA untuk menentukan arah trend keseluruhan, untuk mewujudkan perdagangan mengikut trend. Apabila harga menembus dari julat ATR di atas atau di bawah, jika arah penembusan sejajar dengan arah EMA, masuklah ke dalam lebih banyak atau kosong.
Pertama, strategi ini menggunakan penunjuk ATR untuk mengira julat pergerakan harga dalam tempoh tertentu. Julat ATR mempunyai had atas sebagai SMA + ATR dan had bawah sebagai SMA-ATR. Di mana SMA mewakili purata bergerak sederhana harga penutupan hari dan ATR mewakili purata gelombang sebenar.
Peluang perdagangan terbentuk apabila harga melangkaui atau melangkaui dari julat ATR. Pada masa ini, anda perlu menentukan arah, jika melangkaui ke atas, lakukan lebih banyak, jika melangkaui ke bawah, lakukan kosong. Untuk memastikan arah penembusan selaras dengan arah trend, strategi menggunakan indikator EMA untuk menentukan arah trend keseluruhan.
Akhirnya, strategi menggunakan harga untuk memecahkan semula julat ATR sebagai isyarat kedudukan rendah. Apabila harga jatuh ke bawah, ia akan ditutup; apabila harga jatuh ke atas, ia akan ditutup.
Dengan menggunakan penunjuk ATR untuk menilai penembusan, penembusan trend harga dapat ditangkap dengan berkesan. Julat ATR ditetapkan berdasarkan kadar turun naik, tidak akan mengganggu turun naik normal.
Menambah indikator EMA sebagai penilaian arah dan mengelakkan perdagangan bertentangan dengan arah trend dapat meningkatkan kadar keuntungan dengan ketara.
Menggunakan harga untuk kembali ke dalam julat ATR sebagai cara untuk menghentikan kerugian, untuk mengawal risiko kerugian maksimum.
Dalam keadaan yang tidak menentu, jarak ATR mungkin sering dipotong, yang boleh menyebabkan terlalu banyak transaksi yang tidak sah dan kerugian yang meluas.
EMA sebagai penunjuk arah trend, terdapat sedikit ketinggalan. Oleh itu, ia mungkin terlepas peluang untuk membalikkan harga dalam jangka pendek.
Hentikan kerosakan dengan cara harga terbalik, mudah untuk memperluas kerugian akibat kejadian yang tidak dijangka.
Ia boleh dipertimbangkan untuk menilai trend dan penarikan balik dalam kombinasi dengan petunjuk lain, untuk mengelakkan kesalahan penilaian tunggal EMA, seperti MACD, KDJ dan sebagainya.
Anda boleh mempertimbangkan untuk menyesuaikan parameter ATR mengikut kadar turun naik pasaran dalam masa nyata, menjadikan julat ATR lebih dekat dengan turun naik sebenar.
Ia boleh digabungkan dengan cara berhenti bergerak, menyesuaikan titik berhenti dalam masa nyata, dan meminimumkan risiko kerugian tunggal.
Strategi ini mempunyai pemikiran keseluruhan yang jelas, menggunakan indikator ATR untuk menentukan harga yang pecah dan bekerjasama dengan arah penilaian EMA, dapat mengikuti trend dengan berkesan; cara menghentikan kerugian adalah langsung dan mudah dikendalikan. Tetapi pada masa yang sama terdapat risiko tertentu, ruang pengoptimuman yang besar, yang perlu diuji dan disesuaikan. Secara keseluruhan, strategi ini sesuai untuk pedagang trend yang mengejar kemenangan tinggi.
/*backtest
start: 2024-01-23 00:00:00
end: 2024-02-22 00:00:00
period: 3h
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/
// © cwagoner78
//@version=4
strategy("cATRpillar", overlay=true)
//------------
//inputs
lookback = input(title="Periods", type=input.integer, defval=37)
atrMult = input(title="Range Multiplier", type=input.float, defval=.2)
takeProfit = input(title="Take Profit", type=input.float, defval=5000)
stopLoss = input(title="Stop Loss", type=input.float, defval=2500)
lots = input(title="Lots to Trade", type=input.float, defval=1)
//------------
//indicators
atr=atr(lookback)*atrMult
sma=sma(close, lookback)
ema=ema(close,lookback*2)
rangeLo=sma-atr
rangeHi=sma+atr
//------------
//draw objects
p0 =plot(close, title="Close", color=#26A69A, linewidth=0, transp=80,style=plot.style_stepline)
p1 =plot(rangeHi, title="High", color=color.fuchsia, linewidth=0, transp=80,style=plot.style_stepline)
p2 =plot(rangeLo, title="Low", color=color.lime, linewidth=0, transp=80,style=plot.style_stepline)
p3 =plot(ema, title="EMA", color=color.white, linewidth=0, transp=80, style=plot.style_stepline)
fill(p1, p0, color=color.fuchsia)
fill(p0, p2, color=color.lime)
//------------
//Trading
atrShort=open[1] > rangeHi and open < rangeLo
atrLong=open[1] < rangeLo and open > rangeHi
exitLong=open>rangeLo
exitShort=open<rangeHi
//Long
longCondition=atrLong and open>ema+atr
strategy.entry(id="cATRpillar-Buy", long=true, when=longCondition)
longCloseCondition=exitLong
strategy.exit(id="cATRpillar-Exit", qty=lots, profit=takeProfit, loss=stopLoss, when=longCloseCondition)
//Short
shortCondition=atrShort and open<ema-atr
strategy.entry(id="cATRpillar-Sell", long=false, when=shortCondition)
shortCloseCondition=exitShort
strategy.exit(id="cATRpillar-Exit", qty=lots, profit=takeProfit, loss=stopLoss, when=shortCloseCondition)
plotshape(shortCondition, title= "Short", location=location.belowbar, color=color.fuchsia, transp=80, style=shape.triangledown, size=size.tiny)
plotshape(longCondition, title= "Long", location=location.abovebar, color=color.lime, transp=80, style=shape.triangleup, size=size.tiny)
//------------