Diese Strategie verwendet das goldene Kreuz und die toten Kreuzsignale, die durch doppelte gleitende EMA-Durchschnitte gebildet werden, kombiniert mit dem ATR-Indikator, um die Marktvolatilität zu beurteilen, um einen Trend zu implementieren, der einem niedrigen Kauf-hohen Verkauf folgt. Wenn die schnelle Linie über die langsame Linie überschreitet und der ATR-Indikator niedriger ist als der vorherige Tag, gilt es als ein bullisches Signal, um lang zu gehen. Wenn die schnelle Linie unter die langsame Linie überschreitet und der ATR-Indikator höher ist als der vorherige Tag, gilt es als ein bärisches Signal, um kurz zu gehen.
Verwenden Sie doppelte gleitende EMA-Durchschnitte von Länge 20 und 55. Wenn die schnelle Linie über die langsame Linie geht und ein goldenes Kreuz erzeugt, gilt dies als ein bullisches Signal. Wenn die schnelle Linie unter die langsame Linie geht und ein totes Kreuz erzeugt, gilt es als ein bärisches Signal.
Der ATR-Indikator spiegelt die Volatilität und das Risikoniveau des Marktes wider. Wenn der ATR niedriger als am Vortag ist, zeigt er an, dass die Marktvolatilität abnimmt und es geeignet ist, lang zu gehen. Wenn der ATR höher als am Vortag ist, zeigt er an, dass die Marktvolatilität zunimmt und es geeignet ist, kurz zu gehen.
Gehen Sie nur lang, wenn die schnelle Linie Gold die langsame Linie überschreitet und die ATR niedriger ist als am Vortag. Gehen Sie nur kurz, wenn die schnelle Linie tot die langsame Linie überschreitet und die ATR höher ist als am Vortag. Dies vermeidet, dass Sie intervenieren, wenn die Marktvolatilität hoch ist.
Der ATR-Indikator wird auch verwendet, um Stop-Loss- und Take-Profit-Levels festzulegen. Der Stop-Loss wird zum aktuellen Preis minus ATR multipliziert mit dem Stop-Loss-Multiplikator festgelegt. Der Take-Profit wird zum aktuellen Preis plus ATR multipliziert mit dem Take-Profit-Multiplikator festgelegt.
Der Standard-Stop-Loss-Multiplikator beträgt 3xATR und der Standard-Take-Profit-Multiplikator beträgt 3xATR. Dies ermöglicht es dem Stop-Loss und Take-Profit, der Marktvolatilität dynamisch zu folgen.
Die Verwendung eines doppelten gleitenden Durchschnittssystems ermöglicht eine stärkere Bestätigung des Long/Short-Status und verhindert, dass man durch falsche Ausbrüche, die häufig auf dem Markt auftreten, irregeführt wird.
Durch die Einführung des ATR-Indikators kann die Strategie nur dann eingesetzt werden, wenn die Volatilität gering ist.
Der dynamische ATR-Stop-Loss/Take-Profit ermöglicht es, die Stops und Ziele entsprechend dem Marktvolatilitätsniveau festzulegen, um zu verhindern, dass die Stops zu nahe oder die Ziele zu flach sind.
Es ist möglich, den gleitenden Durchschnitts-Crossover als zusätzlichen Ausgangmechanismus einzustellen, um die Rentabilität des Systems weiter zu optimieren.
Dynamische Stop-Loss- und Take-Profit-Niveaus basierend auf ATR passen besser zur Trend-Trading-Logik.
Die beiden gleitenden Durchschnitte weisen eine gewisse Signalverzögerung auf, was zu starken kurzfristigen Trends führen kann.
Wenn die Volatilität hoch ist, steigt der ATR und kann die Eintrittsmöglichkeiten verpassen.
Für lange Halteperioden kann der Stop-Loss zu nahe kommen. Er muss entsprechend der Trendstärke entspannt werden.
Die gleitenden Durchschnittswerte sind in unruhigen Märkten schwach ausgeprägt.
Die ATR-Parameter müssen für verschiedene Produkte und Zeitrahmen angepasst werden.
Versuche verschiedene Kombinationen von gleitenden Durchschnittslängen, um Parameter zu finden, die den Trendmerkmalen des Produkts entsprechen.
Einbeziehung anderer Indikatoren wie MACD, KD zur Bestätigung der gleitenden Durchschnitts-Crossover-Signale und Verbesserung der Entscheidungssicherheit.
Optimierung der ATR-Parameter durch Backtesting, um die Volatilitätsmerkmale des Produkts besser abzugleichen.
Der ATR-Multiplikator ist anpassbar, um den Stop-Loss-/Take-Profit-Kurs dynamisch an die Trendstärke anzupassen.
Einbeziehung eines Trendstärkenindikators zur Verringerung der Stop-Loss-Anforderungen bei schwachen Trends und Erhöhung der Gewinnspanne bei starken Trends.
Diese Strategie integriert die Trendbeurteilung von dual EMAs und die Risikokontrolle des ATR-Volatilitätsindikators, um ein relativ vollständiges Trendfolgensystem zu bilden. Der Fokus für die Optimierung liegt auf der Anpassung der gleitenden Durchschnitts- und ATR-Parameter an die Produktcharakteristiken und der Gestaltung dynamischer Stop-Loss/Take-Profit-Mechanismen, um Änderungen in der Trendstärke zu folgen.
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // ********************************************** // PtahX EMA/ATR Strategy Public Release // EMA Strategy with ATR & "Fear Factor" built in // written by PtahX October 2019 // * modifications welcome // * please let me know if you improve it so I can continue to learn :) // * use at your own risk - I'm a new programmer and still learning // * Best of luck on your trades!! // Take Profit (TP) option based on ATR or MA Crossover //*********************************************** strategy(title="PtahX EMA/ATR Strategy", overlay=true, pyramiding=1, calc_on_every_tick=true, default_qty_value=1, initial_capital=10000, slippage=2) //***************************** // Global Inputs //***************************** fastMA = input(title="Fast Moving Average", defval=20, step=1) slowMA = input(title="Slow Moving Average", defval=55, step=1) source = input(close, title="Source") atrLength = input(title="ATR Length", defval=14, minval=7, step=1) slMultiplier = input(title="Stop Loss Multiple", type=input.float, defval=3, minval=1, step=0.2) tpMultiplier = input(title= "Take Profit Multiple", type=input.float, defval=3, minval=1, step=0.2) maPlot = input(true, title="Plot EMA?") maCrossoverExit = input(false, title="Exit with Slow MA Crossover?") atrExit = input(true, title="Exit with ATR?") //*********************************** // ATR //*********************************** atr = atr(atrLength) //*********************************** // Volatility Filter //********************************** // During uptrends the ATR indicator tends to post lower volatility. // During downtrends, the ATR indicator tends to post higher volatility volatilityBullish = atr < atr[1] volatilityBearish = atr > atr[1] //*********************************** // Moving Averages //*********************************** // Double Line Plot Code (used for Entries & Exits not plotted by default) fast = ema(source, fastMA) slow = ema(source, slowMA) maLong = crossover(fast, slow) maShort = crossunder(fast, slow) // Single Line Plot Code bullish = slow > slow[1] bearish = slow < slow[1] barColor = bullish ? color.green : bearish ? color.red : color.blue //***************************** // Entries //***************************** entryLong = maLong and volatilityBullish entryShort = maShort and volatilityBearish if entryLong sLoss = source - atr * slMultiplier strategy.entry("Long", strategy.long, qty=10) strategy.exit("Long Exit", "Long", stop=sLoss) if entryShort sLoss = source + atr * slMultiplier tProfit = close > slowMA strategy.entry("Short", strategy.short, qty=10) strategy.exit("Short Exit", "Short", stop=sLoss) //***************************** // Exits //***************************** exitLong = 0 exitShort = 0 if maCrossoverExit exitLong = maShort exitShort = maLong strategy.exit("Long Exit", "Long", when = exitLong) strategy.exit("Short Exit", "Short", when = exitShort) if atrExit exitLong = source + atr * tpMultiplier exitShort = source - atr * tpMultiplier strategy.exit("Long Exit", "Long", limit = exitLong) strategy.exit("Short Exit", "Short", limit = exitShort) //****************************** // ATR Based Exit/ Stop Plotting //****************************** // Stop Loss Calculations longStopLoss = source - atr(atrLength) * slMultiplier shortStopLoss = source + atr(atrLength) * slMultiplier longTakeProfit = source - atr(atrLength) * slMultiplier shortTakeProfit = source + atr(atrLength) * slMultiplier //********************************* //Chart Plotting //********************************* //ATR Based Stop Losses plot(shortStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Short Stop Loss") plot(longStopLoss, color=color.fuchsia, offset=0, transp=0, show_last=5, linewidth=2, style=plot.style_stepline, title="Long Stop Loss") // Single Slow EMA Option plot(slow and maPlot ? slow : na, title="EMA", color=barColor, linewidth=3)