Strategi ATR dan T3 Moving Average

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

Gambaran umum

Strategi ini menggabungkan ATR dan T3 moving average untuk penentuan dan pelacakan tren. ATR membentuk saluran harga untuk menilai arah tren secara keseluruhan.

Logika Strategi

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

  2. Rata-rata bergerak T3 membantu menentukan waktu masuk tertentu, membeli pada garis price breaking T3.

  3. Penembusan harga di bawah band bawah memicu stop loss exit; penembusan di atas band atas mengambil keuntungan.

  4. Opsi untuk perdagangan hanya panjang atau dua arah.

  5. Optimasi parameter dikombinasikan dengan sifat indikator untuk menemukan pengaturan optimal.

Analisis Keuntungan

  1. Saluran ATR memberikan identifikasi tren dan arah yang jelas.

  2. Parameter T3 yang dapat disesuaikan untuk menangkap tren pada tingkat yang berbeda.

  3. Aturan stop loss dan take profit yang konsisten menghindari keluarnya yang sewenang-wenang.

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

Analisis Risiko

  1. Perbedaan indikator dapat menyebabkan perdagangan yang salah.

  2. Tidak mempertimbangkan pola volatilitas saham individu berisiko overfit.

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

  4. Penguasaan posisi berat membawa risiko slippage akhir hari.

Arahan Optimasi

  1. Tambahkan indikator lain untuk memastikan validitas perdagangan.

  2. Pengaturan parameter untuk produk yang berbeda meningkatkan kemampuan beradaptasi.

  3. Mengoptimalkan ukuran posisi untuk menyeimbangkan frekuensi dan risiko.

  4. Pertimbangkan stop loss yang dinamis dan mengambil keuntungan untuk memperluas ruang keuntungan.

  5. Tambahkan Filter tingkat strategi untuk meningkatkan ketahanan.

Ringkasan

Strategi ini mengintegrasikan ATR dan T3 moving average untuk pelacakan tren yang sederhana dan efektif.


/*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 banyak