Idea utama strategi ini adalah untuk menggunakan julat turun naik harga yang dikira oleh penunjuk ATR untuk menilai terobosan harga, dan penunjuk EMA untuk menilai arah trend keseluruhan, untuk mencapai trend selepas perdagangan. Apabila harga menembusi batas atas atau bawah julat ATR, jika arah terobosan konsisten dengan arah EMA, ambil kedudukan panjang atau pendek. Syarat penutupan adalah bahawa harga menembusi julat ATR lagi.
Pertama, strategi ini menggunakan penunjuk ATR untuk mengira julat turun naik harga dalam tempoh tertentu. Had atas julat ATR adalah SMA + ATR, dan had bawah adalah SMA-ATR. Di mana SMA mewakili purata bergerak mudah harga penutupan pada hari itu, dan ATR mewakili Purata Julat Benar.
Apabila harga memecahkan batas atas atau bawah julat ATR, peluang perdagangan berlaku. Pada masa ini, adalah perlu untuk menilai arah. Jika ia adalah terobosan ke atas, pergi panjang. Jika ia adalah terobosan ke bawah, pergi pendek. Untuk memastikan arah terobosan konsisten dengan arah trend, strategi menggunakan penunjuk EMA untuk menentukan arah trend keseluruhan. Hanya apabila arah terobosan konsisten dengan arah EMA, kedudukan akan diambil.
Akhirnya, strategi ini menggunakan harga yang menembusi julat ATR lagi sebagai isyarat penutupan. Selepas pergi panjang, tutup kedudukan apabila harga jatuh di bawah had bawah; selepas pergi pendek, tutup kedudukan apabila harga meningkat di atas had atas.
Menggunakan penunjuk ATR untuk menentukan terobosan dapat menangkap terobosan trend harga dengan berkesan. Julat ATR ditetapkan berdasarkan turun naik dan tidak akan mengganggu terlalu banyak dengan turun naik biasa.
Menambah penunjuk EMA sebagai penilaian arah mengelakkan perdagangan terhadap arah trend, yang dapat meningkatkan kadar keuntungan dengan ketara.
Menggunakan harga pecah kembali di atas julat ATR sebagai kaedah stop loss boleh memaksimumkan kawalan risiko.
Dalam pasaran yang tidak menentu, julat ATR boleh sering menembusi, yang dengan mudah membawa kepada perdagangan yang tidak sah yang berlebihan dan kerugian yang lebih besar.
EMA sebagai penunjuk untuk menilai arah trend mempunyai sedikit kelewatan. jadi ia mungkin terlepas peluang untuk pembalikan harga jangka pendek.
Kaedah stop loss adalah harga pecah kembali di atas julat, yang boleh dengan mudah membawa kepada kerugian yang meluas disebabkan oleh peristiwa tiba-tiba.
Pertimbangkan untuk menggabungkan penunjuk lain untuk menentukan trend dan penurunan untuk mengelakkan kesilapan penilaian tunggal EMA.
Pertimbangkan untuk menyesuaikan parameter ATR dalam masa nyata mengikut turun naik pasaran supaya julat ATR lebih dekat dengan turun naik sebenar.
Pertimbangkan untuk menggabungkan kaedah stop loss bergerak untuk menyesuaikan titik stop loss secara berterusan untuk memaksimumkan kawalan risiko kerugian tunggal.
Idea keseluruhan strategi ini jelas, menggunakan penunjuk ATR untuk menentukan terobosan harga dan bekerjasama dengan EMA untuk menentukan arah, ia dapat dengan berkesan mengikuti trend; kaedah stop loss adalah mudah dan mudah dikendalikan. Tetapi pada masa yang sama, terdapat risiko tertentu dan ruang besar untuk pengoptimuman yang memerlukan ujian dan penyesuaian lanjut. Secara umum, strategi ini sesuai untuk peniaga trend yang mengejar kadar kemenangan yang 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) //------------