Larry Williams' Kreuzung der gleitenden Durchschnitte

Schriftsteller:ChaoZhang, Datum: 2023-12-26 15:03:16
Tags:

img

Übersicht

Dies ist eine einfache und klassische gleitende Durchschnitts-Crossover-Strategie, die von dem berühmten Trader Larry Williams entwickelt wurde. Die Strategie verwendet 9-tägigen einfachen gleitenden Durchschnitt als schnelle Linie und 21-tägigen exponentiellen gleitenden Durchschnitt als langsame Linie. Es geht lang, wenn der Preis über die 9-tägige Linie bricht, und geht kurz, wenn der Preis unter die 9-tägige Linie bricht. Um falsche Ausbrüche zu filtern, wird die 21-tägige Linie auch verwendet, um den Trend zu bestätigen.

Strategie Logik

Die Strategie basiert auf dem goldenen Crossover und dem Death Crossover von gleitenden Durchschnitten, um lange und kurze Chancen zu bestimmen. Wenn die schnelle Linie über die langsame Linie von unten bricht, ist es ein goldener Crossover, der eine Veränderung in einen bullischen Trend anzeigt.

Um falsche Ausbrüche zu vermeiden, die zu virtuellen Verlusten führen, wird die 21-Tage-Linie auch verwendet, um den Haupttrend zu bestimmen. Nur wenn die schnelle Linie ausbricht und der Preis auch die 21-Tage-Linie bricht, werden Handelsmaßnahmen ergriffen. Dies kann viele falsche Ausbrüche effektiv filtern.

Insbesondere wird das lange Signal ausgelöst, wenn: die schnelle Linie über das Höchstmaß von gestern bricht und über die 21-Tage-Linie bricht. Das kurze Signal wird ausgelöst, wenn: die schnelle Linie unter das Tief von gestern bricht und unter die 21-Tage-Linie bricht.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Die Strategieidee ist einfach und leicht zu verstehen und umzusetzen.
  2. Die Technik des gleitenden Durchschnitts ist ausgereift und weit verbreitet.
  3. Die Einführung der 21-Tage-Linie filtert falsche Ausbrüche effektiv.
  4. Wenn man die Extrempunkte von gestern nutzt, um Positionen einzugehen, kann man verhindern, dass man gefangen wird.
  5. Die Strategieparameter sind relativ robust, ohne leicht zu überanpassen.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. In volatilen Märkten liegen die gleitenden Durchschnitte hinterher und können die besten Einstiegspunkte verpassen.
  2. In den Märkten mit Randpreisbewegung können häufige kleine Verluste auftreten.
  3. Es kann nicht effektiv auf plötzliche Ereignisse und signifikante Trendveränderungen reagieren.

Um diesen Risiken entgegenzuwirken, können Optimierungen in folgenden Bereichen vorgenommen werden:

  1. Einführung des MACD-Indikators für mehr Echtzeitsignale.
  2. Erhöhung der Parameter für die MA-Periode auf eine geringere Handelsfrequenz.
  3. Hinzufügen von Stop-Loss-Strategien, um die Höhe eines einzelnen Handelsverlusts zu kontrollieren.

Optimierungsrichtlinien

Zu den wichtigsten Optimierungsrichtungen dieser Strategie gehören:

  1. Parameteroptimierung: Systematischere Methoden können verwendet werden, um verschiedene MA-Periodenkombinationen zu testen, um bessere Parameter zu finden.

  2. Setzen Sie den richtigen beweglichen Stop-Loss, Prozentsatz Stop-Loss usw. ein, um den einzelnen Handelsverlust effektiv zu kontrollieren.

  3. Kombination anderer Indikatoren. Einführung von Signalen von MACD, ATR, KD usw. zur Erlangung mehrer Bestätigungsdimensionen und Verbesserung der Strategie-Stabilität.

  4. Optimieren Sie Exit-Mechanismen. Erforschen Sie verschiedene Arten von Exit-Methoden wie Umkehrsignal-Ausgänge, bewegliche Gewinn-Ausgänge usw.

Schlussfolgerung

Zusammenfassend ist diese gleitende Durchschnitts-Crossover-Strategie eine sehr typische und praktische Trendfolgestrategie. Sie hat den Vorteil, dass sie leicht zu verstehen und umzusetzen ist und auch Verbesserungsmöglichkeiten bietet. Durch Methoden wie Parameteroptimierung, Stop-Loss-Optimierung, Multi-Indikatoren-Kombination usw. können kontinuierliche Verbesserungen vorgenommen werden, um sie zu einem stabileren und praktischeren Handelssystem zu machen.


// @_benac
//@version=5
strategy('Larry', overlay=true , initial_capital=1000 )


////////////////////////////////////////////////////////
//                                                    //
//                                                    //
//                 Codigo Operacional                 //
//                                                    //
//                                                    //
////////////////////////////////////////////////////////

// Usage for Stocks , or Criptos with value bigger then 1, cuz of 0.01 ´pip.
// Daily timeframe
//Observation Point
start     = timestamp(2020, 00, 00, 00, 00)         // backtest start window
finish    = timestamp(2022, 01, 07, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"  

if time < start 
    strategy.close_all("Closing All")

// Take infos from inputs. 
inp_mmshort = input.int(defval = 9, title = "Media Curta"  )
inp_mminter = input.int(defval = 21, title = "Media Curta"  )

// Risk Manager, here define max and min 
inp_max = input.int(defval = 15, title = "Percentual Ganho"  )
inp_min = input.int(defval = 5, title = "Percental  Perda"  )

// Converting the input to % 
pmax = (inp_max / 100 )
pmin =  (inp_min / 100)

// Infos From Moving Average
mm_short = ta.sma(close , inp_mmshort)
mm_inter = ta.ema(close , inp_mminter)


// Trend Logic
//Long Condition 

//Setup do Larry Willians Bem Simples , media virou para cima e rompeu a maxima de referencia, compra. 
tendencia_alta = mm_short[2] > mm_short[1] and mm_short > mm_short[1] and close > high[1] and close > mm_short and mm_short > mm_inter
tendencia_baixa = mm_short[2] < mm_short[1] and mm_short < mm_short[1] and close > low[1] and close < mm_short and mm_short < mm_inter

// Creating the entry
if tendencia_alta 
    strategy.entry("Compra" , strategy.long , stop = low - 0.01  )
    stop_inst = low - 0.01 
if tendencia_baixa 
    strategy.entry("Venda" , strategy.short , stop= high + 0.01  )
    stop_inst = high + 0.01


// TrailingStop Creation

// Sell Position
if strategy.position_size < 0 
    gain_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmax) 
    stop_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmin) 
    // Managing the position
    if close < gain_p 
        strategy.close_all(comment = " 1 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    if close > stop_p 
        strategy.close_all(comment = " 2 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    
    if  high > mm_short[1]
        strategy.close_all(comment = " 3 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
      

// Buy Position    
if strategy.position_size > 0
    gain_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmax) 
    stop_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmin) 
    // Managing the position
    if close > gain_p 
        strategy.close_all(comment = " 1- Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    if close < stop_p 
        strategy.close_all(comment = " 2 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
    if low < mm_short[1]
        strategy.close_all(comment = " 3 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p)  )
        



Mehr