Dieser Artikel stellt eine Handelsstrategie vor, die auf dem Larry Williams-Dynamischen gleitenden Durchschnitt für drei Perioden basiert. Die Strategie verwendet zwei exponentielle gleitende Durchschnitte (EMA), um Preistrends zu erfassen und Handelssignale zu erzeugen, wenn der Schlusskurs von drei aufeinander folgenden Kerzen die EMA durchbricht. Die Strategieparameter sind anpassbar und für verschiedene Märkte und Zeitrahmen geeignet.
Larry Williams' dreiperiodische dynamische gleitende Durchschnittshandelsstrategie ist eine Trendfolgestrategie, die auf doppelten EMAs und der Richtung der aufeinanderfolgenden Kerzen basiert. Mit Parameteroptimierung kann sie sich an verschiedene Märkte anpassen. Die Strategie selbst ist jedoch relativ einfach, funktioniert schlecht in unruhigen Märkten und fehlt Risikokontrollmaßnahmen, die weitere Optimierung und Verbesserung erfordern. Angesichts der Vor- und Nachteile der Strategie ist sie für die Verwendung in Märkten mit klaren Trends geeigneter und sollte mit Positionsmanagement- und Risikokontrollmaßnahmen kombiniert werden, um die Gesamtleistung und Stabilität zu verbessern.
/*backtest start: 2023-05-05 00:00:00 end: 2024-05-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Larry Williams 3 Periodos Editável de MarcosJr", overlay=true, process_orders_on_close=true) // Parametrização do período do EMA emaPeriodHighs = input.int(title="Highs Period", defval=3, minval=1, maxval=9999) emaPeriodLows = input.int(title="Lows Period", defval=3, minval=1, maxval=9999) // Parametrização da data de início e fim do período a ser coletado startYear = input.int(title="Start Year", defval=2020) startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12) startDay = input.int(title="Start Day", defval=1, minval=1, maxval=31) endYear = input.int(title="End Year", defval=2020) endMonth = input.int(title="End Month", defval=12, minval=1, maxval=12) endDay = input.int(title="End Day", defval=31, minval=1, maxval=31) // Convertendo data de início e fim para timestamp startDate = timestamp(startYear, startMonth, startDay, 00, 00) endDate = timestamp(endYear, endMonth, endDay, 23, 59) // EMA emaH = ta.ema(high, emaPeriodHighs) emaL = ta.ema(low, emaPeriodLows) // PLOT: // Desenha as linhas EMA no gráfico plot(emaH, color=color.green, linewidth=2) plot(emaL, color=color.red, linewidth=2) // Condições inDateRange = true // Verifica se houve mais de três candles consecutivos do mesmo sentido checkThreeConsecutiveCandles = (close[0] > close[1] and close[1] > close[2] and close[2] > close[3]) or (close[0] < close[1] and close[1] < close[2] and close[2] < close[3]) if(close < emaL and inDateRange and checkThreeConsecutiveCandles and barstate.isconfirmed) strategy.entry("Long", strategy.long, comment="Long", when=strategy.position_size == 0) if(close > emaH and inDateRange and checkThreeConsecutiveCandles and barstate.isconfirmed) strategy.close("Long", comment="Close Long") // Fechar a operação no fechamento do pregão if(strategy.position_size > 0 and na(time_close[0])) strategy.close("Long", comment="Close Long")