Diese Strategie berechnet den exponentiellen gleitenden Durchschnitt (EMA) von schnellen und langsamen Perioden, zeichnet sie auf dem Chart ab und überwacht Crossovers in Echtzeit, um Trendumkehrungen zu bestimmen. Handelssignale werden durch Einbeziehung des RSI-Oszillators gebildet, um falsche Signale zu vermeiden. Ein Kaufsignal wird erzeugt, wenn die schnelle EMA über die langsame EMA überschreitet. Ein Verkaufssignal wird erzeugt, wenn die schnelle EMA unter die langsame EMA überschreitet.
Die Strategie hat eine klare Logik mit EMA-Kreuzungen zur Bestimmung der Trendumkehrung, gefiltert durch RSI, um mittelfristige bis langfristige Trends zu erfassen. Allerdings bleiben die Optimierung der EMA/RSI-Parameter und der Stop-Loss sowie das Risiko fehlender Umkehrungen und Misserfolge in volatilen Märkten bestehen. Mit abgestimmten Parametern und Risikokontrollen könnte sie dazu dienen, Wendepunkte zu identifizieren und Anlageentscheidungen zu treffen.
/*backtest start: 2022-12-18 00:00:00 end: 2023-12-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Trend Change with EMA Entry/Exit - Intraday", overlay=true) // Define the fast and slow EMA periods fast_ema_period = input(10, title="Fast EMA Period") slow_ema_period = input(50, title="Slow EMA Period") // Calculate the EMAs ema_fast = ta.ema(close, fast_ema_period) ema_slow = ta.ema(close, slow_ema_period) // Plot the EMAs on the chart plot(ema_fast, title="Fast EMA", color=color.blue, linewidth=2) plot(ema_slow, title="Slow EMA", color=color.orange, linewidth=2) // Detect trend changes (crossovers and crossunders) is_uptrend = ta.crossover(ema_fast, ema_slow) is_downtrend = ta.crossunder(ema_fast, ema_slow) // Relative Strength Index (RSI) rsi_length = input(14, title="RSI Length") overbought_level = input(70, title="Overbought Level") oversold_level = input(30, title="Oversold Level") rsi_value = ta.rsi(close, rsi_length) // Trend Filter is_trending = ta.change(is_uptrend) != 0 or ta.change(is_downtrend) != 0 // Entry and Exit signals enter_long = is_uptrend and rsi_value < overbought_level and is_trending exit_long = is_downtrend and is_trending enter_short = is_downtrend and rsi_value > oversold_level and is_trending exit_short = is_uptrend and is_trending strategy.entry("Buy", strategy.long, when=enter_long) strategy.close("Buy", when=exit_long) strategy.entry("Sell", strategy.short, when=enter_short) strategy.close("Sell", when=exit_short)