Diese Strategie ist ein dynamisches Trendfolgensystem, das auf doppelten gleitenden Durchschnittskanälen basiert und mit Risikomanagementmechanismen kombiniert wird. Es verwendet zwei einfache gleitende Durchschnitte (SMA) zum Aufbau eines Handelskanals, wobei das obere Band mit dem hohen Preis und das untere Band mit dem niedrigen Preis berechnet wird. Das System erzeugt Eintrittssignale, wenn der Schlusskurs fünf aufeinanderfolgende Bars über dem oberen Band bleibt, und Ausstiegssignale, wenn der Preis entweder fünf aufeinanderfolgende Bars unter das untere Band fällt oder sich 25% vom höchsten Punkt zurückzieht, wodurch dynamische Trendverfolgung und Risikokontrolle erreicht werden.
Die Grundprinzipien umfassen die Erfassung der Preisentwicklung durch zwei gleitende Durchschnittskanäle und die Einführung strenger Ein- und Ausstiegsmechanismen: 1. Eintrittsmechanismus: Erfordert, dass sich der Preis fünf aufeinanderfolgende Tage über dem oberen Band hält, um die Kontinuität und Gültigkeit des Trends sicherzustellen 2. Exit-Mechanismus: Arbeitet auf zwei Ebenen - Trend-Abweichungs-Ausgang: Ausgelöst, wenn der Preis fünf aufeinanderfolgende Tage unter die untere Bandbreite fällt, was auf eine mögliche Trendumkehr hinweist - Stop-Loss-Exit: Aktiviert, wenn der Preis sich um 25% vom höchsten Punkt zurückzieht, wodurch übermäßige Verluste verhindert werden 3. Positionsmanagement: Verwendet einen festen Prozentsatz des Kontokapitals für die Positionsgröße, um eine effektive Kapitalverteilung zu gewährleisten
Diese Strategie konstruiert ein komplettes Trendfolgesystem durch zwei gleitende Durchschnittskanäle und kombiniert strikte Eintrittsbestätigung und doppelte Ausstiegsmechanismen, um eine effektive Trendverfolgung und Risikokontrolle zu erreichen. Die Stärken der Strategie liegen in ihrer klaren Ausführungslogik und umfassenden Risikokontrolle, obwohl sie eine Parameteroptimierung für verschiedene Marktumgebungen erfordert und durch Filterung des Marktumfelds und mehrere Zeitrahmenbestätigungen weiter verbessert werden kann. Insgesamt stellt sie eine strukturell vollständige und logisch strenge quantitative Handelsstrategie dar, die für Anwendungen in Märkten mit klaren Trends geeignet ist.
/*backtest start: 2025-01-02 00:00:00 end: 2025-01-09 00:00:00 period: 10m basePeriod: 10m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Moving Average Channel (MAC)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Parameters for Moving Averages upperMALength = input.int(10, title="Upper MA Length") lowerMALength = input.int(8, title="Lower MA Length") stopLossPercent = input.float(25.0, title="Stop Loss (%)", minval=0.1) / 100 // Calculate Moving Averages upperMA = ta.sma(high, upperMALength) lowerMA = ta.sma(low, lowerMALength) // Plot Moving Averages plot(upperMA, color=color.red, title="Upper Moving Average") plot(lowerMA, color=color.green, title="Lower Moving Average") // Initialize variables var int upperCounter = 0 var int lowerCounter = 0 var float entryPrice = na var float highestPrice = na // Update counters based on conditions if (low <= upperMA) upperCounter := 0 else upperCounter += 1 if (high >= lowerMA) lowerCounter := 0 else lowerCounter += 1 // Entry condition: 5 consecutive bars above the Upper MA if (upperCounter == 5 and strategy.position_size == 0) strategy.entry("Long", strategy.long) highestPrice := high // Initialize highest price // Update the highest price after entry if (strategy.position_size > 0) highestPrice := na(highestPrice) ? high : math.max(highestPrice, high) // Exit condition: 5 consecutive bars below the Lower MA if (lowerCounter == 5 and strategy.position_size > 0) strategy.close("Long", comment="Exit: 5 bars below Lower MA") // Stop-loss condition: Exit if market closes below 25% of the highest price since entry stopLossCondition = low < highestPrice * (1 - stopLossPercent) if (stopLossCondition and strategy.position_size > 0) strategy.close("Long", comment="Exit: Stop Loss")