Strategi purata bergerak ATR dan T3

Penulis:ChaoZhang, Tarikh: 2023-09-17 18:30:48
Tag:

Ringkasan

Strategi ini menggabungkan purata bergerak ATR dan T3 untuk penentuan trend dan penjejakan. ATR membentuk saluran harga untuk menilai arah trend keseluruhan. purata bergerak T3 memberikan isyarat kemasukan dan titik keluar stop loss. Strategi ini sesuai dengan pengikut trend yang mencari keuntungan yang stabil.

Logika Strategi

  1. ATR membentuk saluran harga, arah saluran menentukan trend utama.

  2. Purata bergerak T3 membantu menentukan masa kemasukan tertentu, membeli pada garis harga pecah T3.

  3. Penembusan harga di bawah band bawah mencetuskan keluar stop loss; penembusan di atas band atas mengambil keuntungan.

  4. Pilihan untuk perdagangan jangka panjang sahaja atau dua arah.

  5. Pengoptimuman parameter digabungkan dengan sifat penunjuk untuk mencari tetapan optimum.

Analisis Kelebihan

  1. Saluran ATR memberikan pengenalan trend dan arah yang jelas.

  2. Parameter T3 yang boleh diselaraskan untuk menangkap trend pada tahap yang berbeza.

  3. Peraturan stop loss dan mengambil keuntungan yang konsisten mengelakkan keluar secara sewenang-wenang.

  4. Frekuensi perdagangan yang rendah sesuai dengan strategi pegangan jangka panjang.

Analisis Risiko

  1. Perbezaan penunjuk boleh menyebabkan perdagangan yang salah.

  2. Tidak mempertimbangkan corak turun naik saham individu berisiko terlalu banyak.

  3. Frekuensi perdagangan yang rendah berisiko kehilangan peluang dan potensi keuntungan yang terhad.

  4. Penguasaan kedudukan berat membawa risiko slippage akhir hari.

Arahan pengoptimuman

  1. Tambah penunjuk lain untuk memastikan kesahihan perdagangan.

  2. Penyesuaian parameter untuk produk yang berbeza meningkatkan kebolehsesuaian.

  3. Mengoptimumkan saiz kedudukan untuk mengimbangi kekerapan dan risiko.

  4. Pertimbangkan penangguhan stop loss dan mengambil keuntungan dinamik untuk mengembangkan ruang keuntungan.

  5. Tambah Filter peringkat strategi untuk meningkatkan ketahanan.

Ringkasan

Strategi ini mengintegrasikan purata bergerak ATR dan T3 untuk pengesanan trend yang mudah dan berkesan.


/*backtest
start: 2023-09-09 00:00:00
end: 2023-09-16 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Author - CryptoJoncis
strategy("ATR and T3 strategy", shorttitle="AT3S_CryptoJoncis", overlay=true)

shorting = input(false, title="shorts on?")
precentage_diff = input(5,title="Precantage")/100
Lengthx = input(25, title="Lenght of T3")

//For best results use 0.7 or 0.618
Vfactx = input(0.72, minval=0.01,step=0.01, title="Volume Factor of T3 with HA source")

Source_of_T3_Normal = close
Source_of_T3 =  Source_of_T3_Normal 
FirstEMAx = ema(Source_of_T3, Lengthx)
SecondEMAx = ema(FirstEMAx, Lengthx)
ThirdEMAx = ema(SecondEMAx, Lengthx)
FourthEMAx = ema(ThirdEMAx, Lengthx)
FifthEMAx = ema(FourthEMAx, Lengthx)
SixthEMAx = ema(FifthEMAx, Lengthx)

//Doing all the calculations which are from 
c1x = -Vfactx*Vfactx*Vfactx
c2x = 3*Vfactx*Vfactx + 3*Vfactx*Vfactx*Vfactx
c3x = -6*Vfactx*Vfactx -3*Vfactx -3*Vfactx*Vfactx*Vfactx
c4x = 1 + 3*Vfactx + Vfactx*Vfactx*Vfactx + 3*Vfactx*Vfactx

//Assigning EMAS to T3 Moving average
T3MAx = c1x * SixthEMAx + c2x * FifthEMAx + c3x * FourthEMAx + c4x * ThirdEMAx

color_of_Tilson_Moving_Average = T3MAx > T3MAx[1] ? lime : red
plot(T3MAx, title="Tilson Moving Average(ema)", color=color_of_Tilson_Moving_Average)

t_up = T3MAx + (T3MAx * precentage_diff)
t_dn = T3MAx - (T3MAx * precentage_diff)

x=plot(t_up, color=color_of_Tilson_Moving_Average)
z=plot(t_dn, color=color_of_Tilson_Moving_Average)
fill(x,z, color= T3MAx[1] < T3MAx ? lime : gray)

Factor=input(5, minval=1)
Pd=input(5, minval=1)
//

Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))


TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

linecolor = Trend == 1 ? green : red
//
b=plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "")

Factor1=input(1, minval=1)
Pd1=input(1, minval=1)
//

Up1=hl2-(Factor1*atr(Pd1))
Dn1=hl2+(Factor1*atr(Pd1))


TrendUp1=close[1]>TrendUp1[1]? max(Up1,TrendUp1[1]) : Up1
TrendDown1=close[1]<TrendDown1[1]? min(Dn1,TrendDown1[1]) : Dn1

Trend1 = close > TrendDown1[1] ? 1: close< TrendUp1[1]? -1: nz(Trend1[1],1)
Tsl1 = Trend1==1? TrendUp1: TrendDown1

linecolor1 = Trend1 == 1 ? green : red
//
a=plot(Tsl1, color = linecolor1 , style = line , linewidth = 2,title = "")

long = (close > Tsl and close > Tsl1 and close > T3MAx)

short = (close < Tsl and close < Tsl1 and close < T3MAx)

if(shorting==true)
    strategy.entry("MacdSE", strategy.short, comment="Open Short", when=short)
    strategy.entry("MacdLE", strategy.long, comment="Open Long", when=long)
    strategy.close("MacdLE", when=hl2 < t_dn)
    strategy.close("MacdSE", when=hl2 > t_up)
if(shorting==false)
    strategy.entry("MacdLE", strategy.long, comment="Open Long", when=long)
    strategy.close("MacdLE", when=hl2 < t_dn)
fill(a,b,color=linecolor)



Lebih lanjut