Diese Strategie kombiniert den doppelten gleitenden Durchschnitt und die Supertrend-Indikatoren, um Handelssignale zu konstruieren und die Trendrichtung durch verschiedene Zykluskombinationen zu beurteilen, um eine hohe Rentabilität zu erzielen.
Diese Strategie verwendet die MACD- und Supertrend-Indikatoren, um den Markteintrittszeitpunkt zu bestimmen.
Wenn die schnelle Linie durch die langsame Linie nach oben bricht, ist es ein Kaufsignal. Wenn der mittelfristige bis langfristige Supertrend auch ein Aufwärtstrend ist, wird das endgültige Kaufsignal generiert, um lang zu gehen. Im Gegenteil, wenn die schnelle Linie durch die langsame Linie nach unten bricht, ist es ein Verkaufssignal. Wenn der mittelfristige bis langfristige Supertrend auch ein Abwärtstrend ist, wird das endgültige Verkaufssignal generiert, um kurz zu gehen.
Der Stop-Loss und der Take-Profit sind auf feste Werte festgelegt.
Der größte Vorteil dieser Strategie besteht darin, dass sowohl Doppel gleitende Durchschnitte als auch Supertrend zur Bestimmung der Marktrichtung verwendet werden, wobei mittelfristige, kurzfristige und mittelfristige Analysen kombiniert werden, um die Entscheidungswirksamkeit erheblich zu verbessern und falsche Ausbrüche zu vermeiden.
Das Hauptrisiko dieser Strategie besteht darin, dass feste Stop-Loss- und Take-Profit-Einstellungen größere Gewinnchancen verpassen können. Darüber hinaus funktioniert die Strategie nicht ordnungsgemäß, wenn zwischen mittelfristigen, kurzfristigen und mittelfristigen Urteilen Abweichungen bestehen. Wir können dieses Risiko durch schwebende Stop-Loss- und Take-Profit-Einstellungen reduzieren.
Diese Strategie kann in folgenden Aspekten optimiert werden:
Erhöhung des dynamischen Anpassungsmechanismus für Stop-Loss und Take-Profit und Festlegung von Stop-Loss und Take-Profit entsprechend der Marktvolatilität und -Tendenzen.
Optimieren Sie die MACD-Parameter, um gleitende Durchschnittsparameter für die Zielvariante zu finden.
Optimierung der Supertrend-Parameter, um die Marktempfindlichkeit anzupassen.
Erhöhung anderer Indikatoren für das Urteilsvermögen, um mehr Signaldimensionen zu liefern und die Strategieleistung zu verbessern.
Diese Strategie kombiniert erfolgreich die Vorteile von doppelten gleitenden Durchschnitten und Supertrend-Indikatoren. Durch die Kombination verschiedener Zyklusurteile filtert sie falsche Signale aus und erzielt bessere Renditen in Trending-Märkten. Wir können die Stabilität und Rentabilität dieser Strategie durch Parameteroptimierung und Mechanismusanpassungen weiter verbessern.
/*backtest start: 2024-01-28 00:00:00 end: 2024-02-04 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator strategy("Super Trend 2 MACD", overlay=true) // MACD input source = input(close) fastLength = input(12, minval=1, title="MACD fast moving average") slowLength=input(26,minval=1, title="MACD slow moving average") signalLength=input(9,minval=1, title="MACD signal line moving average") // Calculation fastMA = sma(source, fastLength) slowMA = sma(source, slowLength) Macd = fastMA - slowMA Signal = sma(Macd, signalLength) res = input(title="Main SuperTrend Time Frame", defval="120") Factor=input(1, minval=1,maxval = 100) Pd=input(1, minval=1,maxval = 100) tp = input(500,title="Take Profit") sl = input(400,title="Stop Loss") Up=hl2-(Factor*atr(Pd)) Dn=hl2+(Factor*atr(Pd)) MUp=request.security(syminfo.tickerid,res,hl2-(Factor*atr(Pd))) MDn=request.security(syminfo.tickerid,res,hl2+(Factor*atr(Pd))) Mclose=request.security(syminfo.tickerid,res,close) TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn MTrendUp=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp MTrendDown=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1) Tsl = Trend==1? TrendUp: TrendDown MTrend = Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1) MTsl = MTrend==1? MTrendUp: MTrendDown linecolor = Trend == 1 ? green : red plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend") Mlinecolor = MTrend == 1 ? blue : orange plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend") plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0) plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0) up = Trend == 1 and Trend[1] == -1 and MTrend == 1 down = Trend == -1 and Trend[1] == 1 and MTrend == -1 plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0) plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0) golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 and Macd > Signal goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 and Macd < Signal strategy.entry("Buy", strategy.long,when=golong) strategy.exit("Close Buy","Buy",profit=tp,loss=sl) strategy.entry("Sell", strategy.short,when=goshort) strategy.exit("Close Sell","Sell",profit=tp,loss=sl)