Strategie des gleitenden Durchschnitts ATR und T3

Schriftsteller:ChaoZhang, Datum: 2023-09-17 18:30:48
Tags:

Übersicht

Diese Strategie kombiniert ATR und T3 Moving Average zur Trendbestimmung und -verfolgung. ATR bildet Preiskanäle, um die allgemeine Trendrichtung zu beurteilen. T3 Moving Average gibt Eintrittssignale und Stop-Loss-Ausgangspunkte. Die Strategie eignet sich für Trendfolger, die nach stetigen Gewinnen suchen.

Strategie Logik

  1. ATR bildet Preiskanäle, die Kanalrichtung bestimmt den Haupttrend.

  2. Der gleitende Durchschnitt T3 hilft bei der Bestimmung des spezifischen Eintrittszeitraums, indem er auf der Preislinie T3 gekauft wird.

  3. Bei einem Preisbruch unterhalb des unteren Bandes erfolgt ein Stop-Loss-Ausgang; bei einem Preisbruch über dem oberen Band wird ein Gewinn erzielt.

  4. Optionen für den Handel nur lang oder in zwei Richtungen.

  5. Parameteroptimierung kombiniert mit Indikator-Natur, um optimale Einstellungen zu finden.

Analyse der Vorteile

  1. Die ATR-Kanäle geben eine klare Trendenkennung und -richtung.

  2. Einstellbare T3-Parameter zur Erfassung von Trends auf verschiedenen Ebenen.

  3. Einheitliche Stop-Loss- und Take-Profit-Regeln vermeiden willkürliche Ausgänge.

  4. Eine geringe Handelsfrequenz eignet sich für langfristige Holdingstrategien.

Risikoanalyse

  1. Die Divergenz der Indikatoren kann zu falschen Trades führen.

  2. Die Nichtbeachtung einzelner Aktienvolatilitätsmuster birgt die Gefahr einer Überanpassung.

  3. Eine geringe Handelsfrequenz birgt die Gefahr, dass Chancen fehlen und das Gewinnpotenzial begrenzt ist.

  4. Ein hoher Positionsanteil birgt Risiken für einen Ausfall am Tagende.

Optimierungsrichtlinien

  1. Zusätzliche Indikatoren zur Gewährleistung der Handelsgültigkeit.

  2. Parameter-Tuning für verschiedene Produkte verbessert die Anpassungsfähigkeit.

  3. Optimieren Sie die Positionsgröße, um Häufigkeit und Risiko auszugleichen.

  4. Betrachten Sie dynamische Trailing Stop Loss und Profit Taking, um den Gewinnraum zu erweitern.

  5. Zusätzliche Filter auf Strategieebene zur Verbesserung der Robustheit.

Zusammenfassung

Die Strategie integriert ATR und T3 gleitende Durchschnitte für einfache und effektive Trendverfolgung.


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



Mehr