Diese Strategie ist ein trendfolgende Handelssystem, das auf mehreren Perioden gleitenden Durchschnitten basiert. Es verwendet 89-Perioden- und 21-Perioden-Simple Moving Averages (SMA) zur Bestimmung der allgemeinen Markttrendrichtung, während es 5-Perioden-Exponential Moving Average (EMA) -Hoch- und Tiefstände enthält, um spezifische Handelssignale zu identifizieren. Die Strategie verwendet einen doppelten Positionsmanagementansatz in Kombination mit festen Stop-Loss- und Trailing-Take-Profit-Mechanismen.
Die Kernlogik umfasst folgende Schlüsselelemente: 1. Trendbestimmung: Verwendet die relative Position der 89-Perioden- und 21-Perioden-SMA zusammen mit der Preisposition, um Trends zu identifizieren. Ein Aufwärtstrend wird bestätigt, wenn der Preis und die 5-Perioden-EMA über der 21-Perioden-SMA liegen, die über der 89-Perioden-SMA liegt; das Gegenteil bestätigt einen Abwärtstrend. 2. Eintrittssignale: Bei Aufwärtstrends, lange Positionen eingeben, wenn der Preis zum 5-Perioden-EMA-Tief zurückkehrt; bei Abwärtstrends, kurze Positionen eingeben, wenn der Preis zum 5-Perioden-EMA-Hoch springt. 3. Positionsmanagement: Eröffnet zwei identische Vertragspositionen für jedes ausgelöste Signal. 4. Risikokontrolle: Feste Stop-Loss- und Gewinnziele für die erste Position und für die zweite Position gelten.
Diese Strategie stellt ein umfassendes Trend-Folge-System dar, das Markttrends durch mehrjährige gleitende Durchschnitte erfasst und gleichzeitig flexible Positionsmanagement- und Risikokontrollmethoden implementiert. Obwohl Optimierungsmöglichkeiten bestehen, zeigt der Grundrahmen gute Praktikabilität und Skalierbarkeit. Die Stabilität der Strategie kann durch Anpassung von Parametern und Hinzufügen von Filterbedingungen für verschiedene Handelsinstrumente und Marktumgebungen verbessert werden.
/*backtest start: 2024-11-12 00:00:00 end: 2024-12-11 08:00:00 period: 2h basePeriod: 2h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © tobiashartemink2 //@version=5 strategy("High 5 Trading Technique", overlay=true) // --- Input parameters --- sma89Length = input.int(title="SMA 89 Length", defval=89) sma21Length = input.int(title="SMA 21 Length", defval=21) ema5HighLength = input.int(title="EMA 5 High Length", defval=5) ema5LowLength = input.int(title="EMA 5 Low Length", defval=5) contracts = input.int(title="Aantal Contracten", defval=1) stopLossPoints = input.int(title="Stop Loss Points per Contract", defval=25) takeProfitPoints = input.int(title="Take Profit Points per Contract", defval=25) // --- Calculate moving averages --- sma89 = ta.sma(close, sma89Length) sma21 = ta.sma(close, sma21Length) ema5High = ta.ema(high, ema5HighLength) ema5Low = ta.ema(low, ema5LowLength) // --- Identify trend and order of moving averages --- longSetup = close > sma89 and close > sma21 and ema5High > sma21 and sma21 > sma89 shortSetup = close < sma89 and close < sma21 and ema5Low < sma21 and sma21 < sma89 // --- Entry signals --- longTrigger = longSetup and close <= ema5Low shortTrigger = shortSetup and close >= ema5High // --- Entry orders --- if (longTrigger) strategy.entry("Long 1", strategy.long, qty=contracts) strategy.entry("Long 2", strategy.long, qty=contracts) if (shortTrigger) strategy.entry("Short 1", strategy.short, qty=contracts) strategy.entry("Short 2", strategy.short, qty=contracts) // --- Stop-loss and take-profit for long positions --- if (strategy.position_size > 0) strategy.exit("Exit Long 1", "Long 1", stop=strategy.position_avg_price - stopLossPoints, limit=strategy.position_avg_price + takeProfitPoints) strategy.exit("Exit Long 2", "Long 2", stop=strategy.position_avg_price - stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints) // --- Stop-loss and take-profit for short positions --- if (strategy.position_size < 0) strategy.exit("Exit Short 1", "Short 1", stop=strategy.position_avg_price + stopLossPoints, limit=strategy.position_avg_price - takeProfitPoints) strategy.exit("Exit Short 2", "Short 2", stop=strategy.position_avg_price + stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints) // --- Plot moving averages --- plot(sma89, color=color.blue, linewidth=2) plot(sma21, color=color.red, linewidth=2) plot(ema5High, color=color.green, linewidth=2) plot(ema5Low, color=color.orange, linewidth=2)