Es handelt sich um eine Handelsstrategie, die auf dem Crossover von 15-Perioden- und 50-Perioden-Exponential Moving Averages (EMA) basiert. Die Strategie implementiert intelligente Stop-Loss- und Take-Profit-Niveaus, um die Risiko-Reward-Kontrolle zu optimieren. Sie erfasst nicht nur Trendumkehrsignale, sondern passt auch automatisch Handelsparameter an, die auf der Marktvolatilität basieren, wodurch die Stabilität und Rentabilität der Strategie verbessert werden.
Die Kernlogik basiert auf Crossover-Signalen zwischen der schnellen EMA (15-Periode) und der langsamen EMA (50-Periode). Ein langes Signal wird erzeugt, wenn die schnelle Linie über die langsame Linie überschreitet, und ein kurzes Signal, wenn die schnelle Linie darunter überschreitet. Für die Optimierung des Risikomanagements verwendet die Strategie eine dynamische Stop-Loss-Einstellungsmethode, wobei der niedrigste Eröffnungspreis der vorherigen 2 Kerzen als Long Stop-Loss und der höchste Eröffnungspreis als Short Stop-Loss verwendet wird. Das Gewinnziel wird auf das Doppelte des Risikos festgelegt, was ein günstiges Risiko-Rendite-Verhältnis gewährleistet. Die Strategie verwendet 30% des Kontokapitals für den Handel, was hilft, die Risikoposition zu kontrollieren.
Dies ist eine gut strukturierte EMA-Crossover-Strategie mit klarer Logik. Durch die Kombination klassischer technischer Analysemethoden mit modernen Risikomanagementtechniken erzielt die Strategie günstige Risiko-Belohnungseigenschaften. Während es Raum für Optimierung gibt, zeigt der Grundrahmen eine gute Praktikabilität und Erweiterbarkeit. Durch die vorgeschlagenen Optimierungsrichtungen kann die Leistung der Strategie weiter verbessert werden.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-11 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Cross - Any Direction", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=30) // Input for EMAs ema_short_length = input(15, title="Short EMA Length") ema_long_length = input(50, title="Long EMA Length") // Calculate EMAs ema_short = ta.ema(close, ema_short_length) ema_long = ta.ema(close, ema_long_length) // Plot EMAs plot(ema_short, color=color.blue, title="15 EMA") plot(ema_long, color=color.red, title="50 EMA") // Entry Conditions (Any EMA Cross) cross_condition = ta.crossover(ema_short, ema_long) or ta.crossunder(ema_short, ema_long) // Determine Trade Direction is_long = ta.crossover(ema_short, ema_long) is_short = ta.crossunder(ema_short, ema_long) // Stop Loss and Take Profit long_stop_loss = ta.lowest(open[1], 2) // Lowest open of the last 2 candles short_stop_loss = ta.highest(open[1], 2) // Highest open of the last 2 candles long_take_profit = close + 2 * (close - long_stop_loss) short_take_profit = close - 2 * (short_stop_loss - close) // Execute Trades if (cross_condition) if (is_long) strategy.entry("Long", strategy.long) strategy.exit("Exit Long", "Long", stop=long_stop_loss, limit=long_take_profit) else if (is_short) strategy.entry("Short", strategy.short) strategy.exit("Exit Short", "Short", stop=short_stop_loss, limit=short_take_profit) // Plot Stop Loss and Take Profit Levels plot(long_stop_loss, color=color.orange, title="Long Stop Loss", style=plot.style_circles, linewidth=2) plot(long_take_profit, color=color.green, title="Long Take Profit", style=plot.style_circles, linewidth=2) plot(short_stop_loss, color=color.orange, title="Short Stop Loss", style=plot.style_circles, linewidth=2) plot(short_take_profit, color=color.red, title="Short Take Profit", style=plot.style_circles, linewidth=2)