Diese Strategie berechnet den gleitenden Durchschnitt des wahren Bereichs, um die Marktvolatilität zu reflektieren. Sie bestimmt die Trendrichtung auf der Grundlage der Beziehung zwischen Volatilität und ihrem gleitenden Durchschnitt. Sie geht kurz, wenn die Volatilität über den gleitenden Durchschnitt überschreitet, und geht lang, wenn sie unterhalb des Durchschnitts überschreitet, mit einem nachfolgenden Stop-Loss.
Die ATR-Funktion wird verwendet, um den wahren Bereich über einen bestimmten Zeitraum zu berechnen. Der einfache gleitende Durchschnitt des ATR wird dann als gleitende Durchschnittslinie der Volatilität berechnet. Wenn der ATR über seinen gleitenden Durchschnitt geht, wird die Marktvolatilität als zunehmend angesehen und eine Kurzstrategie angenommen. Wenn der ATR unter seinen gleitenden Durchschnitt geht, wird die Marktvolatilität als abnehmend angesehen und eine lange Strategie angenommen.
Bei einer Position wird ein fester Prozentsatz für den Stop-Loss eingestellt, um den Stop-Loss dynamisch anhand von Kursänderungen anzupassen, um Gewinne zu schützen und gleichzeitig zu vermeiden, dass der Stop-Loss vorzeitig eingestellt wird.
Diese Strategie beurteilt Markttrends über den Volatilitätsindikator und vermeidet Lärmstörungen. Sie geht kurz, wenn die Volatilität steigt, und lang, wenn die Volatilität fällt, um abgesicherte Operationen zu realisieren. Der nachfolgende Stop-Loss passt Stop-Loss-Positionen nach Echtzeit-Preisschwankungen an, um Gewinnschutz und unnötigen Stop-Loss auszugleichen.
Die Strategie stützt sich ausschließlich auf einen Volatilitätsindikator, mit etwas Verzögerung. Der nachfolgende Stop-Loss berücksichtigt nur nachteilige Preisbewegungen und kann keine Gewinnrückschritte verhindern. Wenn die Preise heftig schwanken, kann der Stop-Loss getroffen werden und große Verluste verursachen.
Eine Anpassung der Parameter auf ATR und gleitende Durchschnittsperioden könnte helfen, ebenso wie die Einbeziehung anderer Indikatoren für umfassende Beurteilungen.
Versuche verschiedene Parameterkombinationen von ATR und gleitenden Durchschnitten, um optimale Parameter zu finden.
Einbeziehung anderer Indikatoren für die Beurteilung, um ein Strategieensemble zu bilden, um die Genauigkeit zu verbessern.
Annahme dynamischer Stop-Loss-Strategien, wobei der Stop-Loss-Prozentsatz anhand der Marktvolatilität angepasst wird.
Optimierung von Positionsgrößenmodellen für verschiedene Produkte.
Anwendung von maschinellem Lernen zur Ermittlung von Wendepunkten bei der Volatilität.
Kombination mit gleitenden Durchschnitten für einen höheren Zeitrahmen zur Bestimmung einer größeren Trendrichtung.
Die Strategie beurteilt Markttrends einfach und direkt über Volatilität, aber ein einzelner Indikator hat Einschränkungen. Die Einführung mehrerer Indikatoren und Parameteroptimierung kann die Robustheit verbessern.
/*backtest start: 2023-08-20 00:00:00 end: 2023-09-19 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 20/08/2018 // The Volatility function measures the market volatility by plotting a // smoothed average of the True Range. It returns an average of the TrueRange // over a specific number of bars, giving higher weight to the TrueRange of // the most recent bar. // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Volatility Backtest", shorttitle="Volatility") Length = input(10, minval=1) LengthMA = input(26, minval=1) reverse = input(false, title="Trade reverse") xATR = atr(Length) nRes = ((Length - 1) * nz(nRes[1], 0) + xATR) / Length xMARes = sma(nRes, LengthMA) pos = iff(nRes < xMARes, 1, iff(nRes > xMARes, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(nRes, color=blue, title="Volatility") plot(xMARes, color=red, title="MA")