Williams' Alligator-Strategie

Schriftsteller:ChaoZhang, Datum: 23.11.2023
Tags:

img

Übersicht

Williams Alligator Strategie ist eine Trendfolgsstrategie, die drei gleitende Durchschnittslinien verschiedener Perioden verwendet, um Alligator Kiefer zu bilden, um die Trendrichtung zu bestimmen. Wenn die schnelle Linie über der Mittellinie und die mittlere Linie über der langsamen Linie liegt, wird ein Aufwärtstrend-Alligator-Mund gebildet, um lang zu gehen. Wenn die schnelle Linie unter der Mittellinie und die mittlere Linie unter der langsamen Linie liegt, wird ein abwärts gerichteter Trend-Alligator-Mund gebildet, um kurz zu gehen.

Wie es funktioniert

Die Strategie verwendet drei SMAs mit unterschiedlichen Periodenlängen - schnelle Linie sma1, mittlere Linie sma2 und langsame Linie sma3, wobei sma1 die kürzeste Periode und sma3 die längste hat.

Wenn sma1 über sma2 und sma2 über sma3 kreuzt, zeigt dies, dass der Markt in einem Aufwärtstrend ist und einen Aufwärtstrend bildet.

Umgekehrt, wenn sma1 unter sma2 und sma2 unter sma3 fällt, zeigt dies, dass der Markt in einem Abwärtstrend ist und einen Abwärtstrend bildet.

Die Ausstiegsbedingung ist, wenn sich die drei Linien neu ausrichten, wobei die schnelle Linie unter der mittleren Linie oder die mittlere Linie unter der langsamen Linie liegt.

Die Strategie zeichnet auch Hintergrundfarben, um die Trendrichtung zu identifizieren - grün für Aufwärtstrend und rot für Abwärtstrend.

Zusammenfassend lässt sich sagen, dass die Strategie die Stärken von gleitenden Durchschnitten und Alligator-Mundmustern nutzt, um die Trendrichtung zu bestimmen und entsprechend zu handeln.

Analyse der Vorteile

  • Der Mund eines Alligators zeigt effektiv, wohin der Trend geht.
  • Die Kombination verschiedener Periodenlinien verbessert die Mustergenauigkeit.
  • Der Handel mit dem Trend entspricht der Theorie des Trendhandels.
  • Hintergrundfarben unterstützen das visuelle Urteilen.
  • Einfache und klare Logik, einfach umzusetzen.

Risikoanalyse

  • Mehrere Whipsaw-Risiken in verschiedenen Märkten.
  • Hohes Risiko, wenn sich die Linien umstellen, um Positionen zu schließen.
  • Es ist nicht möglich, die Trendstärke zu bestimmen, kann es vorkommen, dass Trends falsch eingegeben werden.
  • Kein Stop-Loss, ein hohes Abzugrisiko.
  • Festgelegte Zeiträume können sich nicht an Marktveränderungen anpassen.

Um den Risiken entgegenzuwirken, können folgende Verbesserungen vorgenommen werden:

  1. Fügen Sie einen Trendfilter hinzu, um Whipsaws in den unterschiedlichen Märkten zu vermeiden.

  2. Optimierung der Ausgangszustände unter Verwendung von Trendindikatoren.

  3. Hinzufügen einer Stop-Loss-Strategie zur Kontrolle von Einzelverlusten.

  4. Verwenden Sie adaptive gleitende Durchschnitte, damit sich die Perioden dynamisch anpassen.

Verbesserungsrichtlinien

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Hinzufügen von Trendstärke Filter, um einen vorzeitigen Einstieg in schwache Trends zu vermeiden. Indikatoren wie MACD, KDJ können helfen.

  2. Optimieren Sie gleitende Durchschnittsperioden, um durch Backtesting die besten Kombinationen zu finden.

  3. Verwenden Sie adaptive gleitende Durchschnitte, damit sich die Perioden an die Marktdynamik anpassen.

  4. Fügen Sie Stop-Loss-Strategien wie Trailing-Stop-Loss, Kontostand Stop-Loss hinzu, um Risiken zu kontrollieren.

  5. Verbesserung der Einstiegsbedingungen durch Verwendung von Volumen, Bollinger Bands usw. zur Erhöhung der Genauigkeit.

  6. Verbesserung der Ausgangszustände durch Beurteilung der Wahrscheinlichkeit einer Trendumkehr mit Indikatoren, wenn sich die Linien kreuzen.

Schlussfolgerung

Williams Alligator Strategy ist eine typische Trendfolging-Strategie. Es verwendet den Alligator-Mund, der durch drei gleitende Durchschnitte gebildet wird, um den Trend und den Handel entsprechend zu bestimmen. Die Vorteile sind seine einfache und klare Logik. Die Nachteile sind schwächere Trendgenauigkeit und Risikokontrolle. Zukünftige Verbesserungen können durch die Einbeziehung zusätzlicher Indikatoren, die Optimierung von Parametern, das Hinzufügen von Stop-Loss vorgenommen werden, um es für komplexe Marktbedingungen robuster zu machen.


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=3
strategy(title = "Noro's Alligator Strategy by Bill Williams", shorttitle = "Alligator", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
len1 = input(50, defval = 50, minval = 1, title = "MA 1 Length")
len2 = input(100, defval = 100, minval = 1, title = "MA 2 Length")
len3 = input(200, defval = 200, minval = 1, title = "MA 3 Length")
src = input(close, title = "Source")
showbg = input(false, title = "Show Background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MAs
sma1 = sma(src, len1)
sma2 = sma(src, len2)
sma3 = sma(src, len3)
plot(sma1, color = lime, linewidth = 2)
plot(sma2, color = blue, linewidth = 2)
plot(sma3, color = red, linewidth = 2)

//Signals
up = sma1 > sma2 and sma2 > sma3
dn = sma1 < sma2 and sma2 < sma3

//Background
trend = 0
trend := up ? 1 : dn ? -1 : trend[1]
col = showbg == false ? na : trend == 1 ? lime : red
bgcolor(col)

//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if up
    strategy.entry("Long", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn
    strategy.entry("Short", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()

Mehr