Diese Strategie integriert die Techniken des gleitenden Durchschnitts-Crossover und des Widerstands-Level-Breakouts, um Kauf- und Verkaufssignale für den automatisierten Handel einzurichten. Wenn der kurzfristige gleitende Durchschnitt den mittelfristigen gleitenden Durchschnitt von unten überschreitet und der Aktienkurs den Widerstandsstand durchbricht, wird ein Kaufsignal generiert. Die Strategie setzt den Gewinn auf 15% Preiserhöhung und den Stop-Loss auf 3% Preisrückgang, um Risiken zu kontrollieren. Diese reife quantitative Handelsstrategie kann automatisch Markttrends identifizieren und mit einem ordnungsgemäßen Risikomanagement in Positionen treten, wenn technische Signale auftauchen.
Die Strategie erzeugt Handelssignale, die hauptsächlich auf folgenden technischen Indikatoren und Beurteilungen basieren:
Bewegliche Durchschnitts-Crossover-Technik: Beim Überschreiten der 20-Tage-SMA über die 44-Tage-Linie wird beurteilt, dass der Markt in einem Aufwärtstrend ist und ein Kaufsignal erzeugt.
Resistance Level Breakout-Technik: Preisniveaus, die der Aktienkurs wiederholt erreicht hat, aber nicht durchbrechen konnte, werden als Widerstandsniveaus bezeichnet. Durchbrechen zeigt, dass der Preis einen neuen Aufwärtstrend betritt. Diese Strategie betrachtet einen Breakout über 0,7% des vorherigen Schlusses als Widerstandsbreakout.
RSI-Oszillator: Relative Strength Index, ein Momentum-Indikator zur Identifizierung von Überkauf- und Überverkaufszuständen.
Volumenanalyse: Ein Volumen, das den letzten 10-Tage-Durchschnitt übersteigt, deutet häufig auf ein stärkeres Kauf- oder Verkaufsinteresse und eine Dynamik der Preisbewegung hin.
Kaufsignale: Ausgelöst, wenn der kurze SMA den mittleren SMA überschreitet, wobei der RSI-Wert überkauft und das durchschnittliche Handelsvolumen übersteigt, was auf einen Aufwärtstrend hinweist.
Verkaufssignale: 15% Gewinn aus dem Einstiegspreis, 3% Stop-Loss.
Diese ausgereifte quantitative Handelsstrategie integriert mehrere technische Analysemethoden zur Ermittlung der Marktstruktur und des Markttrends und erzeugt automatisch Handelssignale während der Trendbildung mit einem angemessenen Risikomanagement.
Erfasst Markttrends reibungslos mit der gleitenden Durchschnittstechnik.
Vermeidet die Eröffnung von Positionen bei falschen Ausbrüchen durch die Einbeziehung von Volumenanalyse.
Wirksame Risikokontrolle durch Festlegung von Stop-Loss und Take-Profit, Optimierung des Risiko-Rendite-Verhältnisses.
Insgesamt ist dies eine solide quantitative Handelsstrategie, die durch ausgezeichnete Marktstrukturbeurteilung, strenge Handelsregeln und Risikokontrolle gewährleistet ist.
Doppel gleitende Durchschnittssysteme können für unterschiedliche Perioden empfindlich auf Parameter-Tuning reagieren.
Trendfolgende Systeme können nicht schnell auf plötzliche fundamentale Ereignisse reagieren und sind mit Stop-Loss-Risiken konfrontiert.
Auch wenn ein Stop-Loss eingerichtet ist, führt eine hohe Handelsfrequenz zu einer unvermeidlichen Anzahl von Stop-Loss-Ausführungen, was zu ungleichen Gewinnniveaus führt.
Die Signale der technischen Indikatoren liegen häufig hinter den besten Umkehrpunkten der Märkte zurück.
Optimieren Sie Parameter wie gleitende Durchschnittslängen, Stop-Loss / Gewinnziel durch Parameter-Tuning-Methoden, um das optimale zu finden.
Hinzufügen anderer technischer Indikatoren wie Bollinger-Bänder für die Reichweitenerkennung, MACD für die Erkennung von Divergenzen usw. zur Verbesserung der Signalgenauigkeit.
Einbeziehung von fundamentalen und ereignisgesteuerten Signalen, um Stopp-Loss durch negative Nachrichten zu vermeiden.
Optimierung des Geldmanagements durch festgelegte Mengen und festgelegte Prozentsatzmethoden zur Kontrolle von Handelsrisiken.
Diese Strategie zeigt reibungslose Operationen, genaue Urteile und strenge Handelsregeln und stellt eine der wirksamsten quantitativen Handelstechniken dar. Aber die technische Analyse allein hat Einschränkungen beim Lesen von Märkten, so dass weitere Verbesserungen darin liegen, mehr Indikatoren und fundamentale / Ereignissignale zu integrieren, Stop-Loss / Profit-Taking-Levels und Geldmanagementmechanismen zu optimieren. Zusammenfassend hat diese Strategie ein hohes Niveau unter den technischen Analysestrategien erreicht, sollte sich aber in den nächsten Schritten in Richtung fundamentale / Ereignisgetriebene Zyklus-Handelsstrategien entwickeln.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Advanced Strategy with Conditional Stop Loss", overlay=true) // Parameters ma_length_20 = 20 ma_length_44 = 44 ma_length_100 = 100 rsi_length = 14 volume_length = 10 profit_target = 1.15 // 15% above the buy price stop_loss_target = 0.97 // 3% below the buy price wait_candles = 10 // Number of candles to wait after selling, unless MA cross condition met // Indicators moving_average_20 = ta.sma(close, ma_length_20) moving_average_44 = ta.sma(close, ma_length_44) moving_average_100 = ta.sma(close, ma_length_100) rsi = ta.rsi(close, rsi_length) volumeAvg = ta.sma(volume, volume_length) // Variables to manage the wait period after a sell var int last_sell_candle = 0 // Update last sell candle if (strategy.position_size[1] > 0 and strategy.position_size == 0) last_sell_candle := bar_index // Trend identification uptrend = close > moving_average_20 above_ma20_by_1_percent = close > moving_average_20 * 1.01 ma_cross = ta.crossover(moving_average_20, moving_average_44) or ta.crossunder(moving_average_20, moving_average_44) close_near_high = (close >= high * 0.993) and (close <= high) // Buy condition (only in uptrend, above 1% from 20-day MA, and respecting new filter) can_buy_after_cross = ma_cross and close > high[1] can_buy_after_wait = (bar_index - last_sell_candle) > wait_candles buy_condition = (can_buy_after_cross or can_buy_after_wait) and uptrend and above_ma20_by_1_percent and close > moving_average_44 and close > moving_average_100 and close > high[1] and rsi > 50 and volume > volumeAvg and not close_near_high // Entry if (buy_condition and strategy.position_size == 0) strategy.entry("Buy", strategy.long) // Exit conditions if (strategy.position_size > 0) // Profit target profit_level = strategy.position_avg_price * profit_target strategy.exit("Take Profit", "Buy", limit=profit_level) // Dynamic Stop Loss - Check on every bar if the price has dropped 3% below the buy price stop_loss_level = strategy.position_avg_price * stop_loss_target if (low < stop_loss_level) strategy.close("Buy", comment="Stop Loss") // Plotting plot(moving_average_20, color=color.green, title="20-Day Moving Average") plot(moving_average_44, color=color.blue, title="44-Day Moving Average") plot(moving_average_100, color=color.red, title="100-Day Moving Average")