
Multiple Swing Indicator Trading System ist eine auf der technischen Analyse basierende quantitative Trading-Strategie, deren Kern auf der Identifizierung von schwankenden Höhen und Tiefen beruht, um Markttrendänderungen zu bestimmen. Die Strategie baut eine dynamische Tracking-Stopp-Loss-Level auf, indem sie die Höchst- und Tiefstpreise der letzten N-Zyklen (TSL) verfolgt, die als Entscheidungsgrenze für den Multi-Swing-Handel dienen. Das System führt automatisch ein Kaufsignal aus, wenn der Preis die TSL-Level überschreitet, und führt automatisch ein Verkaufsignal aus, wenn der Preis die TSL-Level überschreitet, und verwaltet automatisch die Positionen, um sicherzustellen, dass jeder einzelne Position jeweils in eine Richtung gehalten wird.
Die Kernlogik der Strategie basiert auf der Verfolgung von Stop-Loss-Levels (TSL), die wie folgt umgesetzt werden:
Schlüsselpreise innerhalb eines Kalkulationszyklus:
ta.highest(high, no)Berechnen Sie die Höchstpreise der letzten no-Zyklen (res)ta.lowest(low, no)Berechnen Sie die Mindestpreise der letzten No-Zyklen (sup)Die Position des Preises im Vergleich zu den vorherigen Höhen und Tiefen:
Konstruieren Sie ein Tracking-Stopp-Level (TSL):
Erzeugung von Handelssignalen:
Ausführen von Transaktionen:
Das System enthält auch visuelle Komponenten wie die Markierung von Kauf- und Verkaufspunkten, K-Linien und Hintergründe, die sich in Farbe verändern, sowie horizontale Linien, die den Preis für die Eröffnung eines Lagers in Echtzeit anzeigen, um die visuelle Erfahrung des Handelsprozesses zu verbessern.
Trendfangfähigkeit: Durch die dynamische Berechnung von Höchst- und Tiefstpreisen ist es möglich, Markttrendänderungen effektiv zu erfassen und sich den Schwankungen in verschiedenen Marktzyklen anzupassen.
Hohe Automatisierungsstufe: Das System erkennt und vollzieht automatisch die Kauf- und Verkaufssimulationen und reduziert die Einflussnahme durch Menschen und Emotionen.
Zwei-Wege-Trading-Mechanismen: Unterstützt gleichzeitig mehrköpfige und leere Trades, um in steigenden und fallenden Märkten Gewinne zu erzielen.
Eingebettetes Risikomanagement: Das Tracking von Stop-Loss-Levels (TSL) ist im Wesentlichen so konzipiert, dass es eine Stop-Loss-Funktion enthält, die den maximalen Verlust eines einzelnen Handels einschränkt.
Visualisierung von Trading-Feedbacks: Die Trading-Signale und der Kurs für die Eröffnung von Positionen werden über eine grafische Oberfläche deutlich angezeigt, sodass Händler die Strategie-Performance in Echtzeit überwachen und bewerten können.
Parameterflexibilität: Durch die Anpassung der Schwingzyklusparameter ((no)) kann die Markteigenschaften unterschiedlicher Zeiträume angepasst werden, von der kurzen bis zur mittleren Länge.
Klare Signale: Das System bietet eine doppelte Text- und visuelle Warnung, um die Wahrscheinlichkeit eines Fehlverhaltens zu verringern.
Schwankungsmarkter verhalten sich schlecht: In schwankenden Märkten kann die Strategie häufige Falschsignale erzeugen, was zu einem anhaltenden Stop-Loss führt.
Risiko von Slippage und Verzögerung der Ausführung: In einem realen Handel kann es einen Zeitunterschied zwischen der Signalgenerierung und der Ausführung des Auftrags geben, der dazu führt, dass der tatsächliche Handelspreis vom idealen Preis abweicht.
Die derzeitige Strategie verwendet die feste Einheit ((qty=1) für den Handel und es fehlt ein Mechanismus, um die Größe der Position an die Marktvolatilität oder die Größe des Kontos anzupassen.
Parameter-Sensitivität: Die Strategie-Performance ist stark abhängig von der Einstellung des Schwankzyklus-Parameters ((no), wobei unterschiedliche Parameterwerte in verschiedenen Marktumgebungen erforderlich sein können.
Schwache Reaktionsfähigkeit bei Unvorhergesehenen: Bei schnellen Preisveränderungen aufgrund von wichtigen Nachrichten oder schwarzen Schwimmereignissen kann der Stop-Loss-Level nicht schnell angepasst werden, was zu größeren Verlusten führt.
Methoden zur Minderung dieser Risiken umfassen: Signalbestätigung in Verbindung mit anderen Indikatoren, Implementierung von dynamischem Positionsmanagement, Setzung von Maximalstop-Limit, Anpassung der Parameter an die Volatilität sowie regelmäßige Rückmessungen und Optimierung der Strategieparameter.
volatility = ta.atr(14) / close * 100 // 计算波动率百分比
position_size = strategy.equity * 0.01 / volatility // 根据波动率调整仓位
rsi = ta.rsi(close, 14)
valid_buy = Buy and rsi < 70 // 避免在超买区域买入
valid_sell = Sell and rsi > 30 // 避免在超卖区域卖出
Anpassungsparameter: Schwankungszyklusparameter ((no)) basierend auf der dynamischen Anpassung der Marktvolatilität, kleinere Werte bei niedrigerer Volatilität und größere Werte bei hoher Volatilität.
Additionelle Gewinnziele: Setzen Sie Gewinnziele basierend auf den ATR oder den Unterstützungs-/Widerstandsebenen und sperren Sie einen Teil des Gewinns ein, wenn der Markt weit genug in eine günstige Richtung bewegt.
Zeitfilter: Hinzufügen von Handelszeitfensterbeschränkungen, um Zeiten mit geringer Liquidität oder außergewöhnlichen Marktschwankungen zu vermeiden.
Rücknahme-Kontrollmechanismen: Einführung von Handelspausen basierend auf den Prozentsätzen der Rücknahme von Kontenrechten und -zinsen, die den Handel unterbrechen, wenn die fortlaufenden Verluste die vorgegebene Schwelle erreichen.
Multi-Zyklus-Bestätigung: Die Gewinnrate erhöht sich, wenn die Positionen nur in der Richtung eröffnet werden, die mit den höheren Zeitzyklen übereinstimmt.
Diese Optimierungsrichtungen können die Robustheit und Anpassungsfähigkeit der Strategie erheblich verbessern und insbesondere bei der Umstellung auf verschiedene Marktumgebungen bessere risikobereinigte Renditen bieten.
Multiple Swing Indicator Trading System ist eine auf der technischen Analyse basierende automatisierte Handelsstrategie, die Markttrendänderungen durch dynamische Verfolgung von Stop-Loss-Levels (TSL) erfasst und Multiple-Swing-Trading durchführt. Die Strategie funktioniert hervorragend in trendspezifischen Märkten und kann die Preisentwicklung effektiv verfolgen und die Positionen automatisch verwalten.
Die Kernvorteile der Strategie liegen in ihrer einfachen und effektiven Signalgenerierungsmechanik und den integrierten Risikomanagementfunktionen, die besonders für den Handel mit kurz- und mittelfristigen Trends geeignet sind. Die Strategie kann jedoch in turbulenten Märkten mit häufigen Falschsignalen konfrontiert werden und muss weiter optimiert werden, um ihre Anpassungsfähigkeit in verschiedenen Marktumgebungen zu verbessern.
Durch die Implementierung von Optimierungsmaßnahmen wie dynamische Positionsverwaltung, Multi-Indicator-Signal-Bestätigung und adaptive Parameter-Anpassung kann die Strategie ihre risikobereinigte Rendite und Stabilität weiter steigern. Für quantitative Händler bietet dieses automatisierte System, das auf klaren Regeln basiert, einen zuverlässigen Rahmen, der emotionale Störungen reduziert und die Handelsdisziplin bewahrt.
Die erfolgreiche Anwendung dieser Strategie hängt letztlich von der Feinabstimmung der Parameter-Sätze und dem Verständnis der Merkmale des Marktes ab. Es wird empfohlen, vor der Anwendung auf dem Markt eine ausreichende historische Rückverfolgung und die Validierung von Simulationsgeschäften durchzuführen.
/*backtest
start: 2024-05-06 00:00:00
end: 2025-03-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Accurate Swing Trading System with Auto Entry (Long & Short)", overlay=true)
// Parameters
no = input.int(3, title="Swing")
Barcolor = input.bool(true, title="Barcolor")
Bgcolor = input.bool(false, title="Bgcolor")
// Calculate TSL (Trailing Stop Level)
res = ta.highest(high, no)
sup = ta.lowest(low, no)
avd = close > res[1] ? 1 : close < sup[1] ? -1 : 0
avn = ta.valuewhen(avd != 0, avd, 0)
tsl = avn == 1 ? sup : res
// Define Buy and Sell Conditions
Buy = ta.crossover(close, tsl)
Sell = ta.crossunder(close, tsl)
plotshape(Buy, "BUY", shape.labelup, location.belowbar, color.green, text="BUY", textcolor=color.black)
plotshape(Sell, "SELL", shape.labeldown, location.abovebar, color.red, text="SELL", textcolor=color.black)
// Plot TSL
colr = close >= tsl ? color.green : close <= tsl ? color.red : na
plot(tsl, color=colr, linewidth=3, title="TSL")
barcolor(Barcolor ? colr : na)
bgcolor(Bgcolor ? colr : na)
// Alerts
alertcondition(Buy, title="Buy Signal", message="Buy")
alertcondition(Sell, title="Sell Signal", message="Sell")
// Automatic Entry & Exit with 1 Unit
if (Buy)
strategy.entry("Long", strategy.long, qty=1) // Enter long with 1 unit
strategy.close("Short") // Close any open short positions
alert("Buy Signal - Entry Long", alert.freq_once_per_bar_close)
alert("Buy Entry Sound", alert.freq_once_per_bar_close)
if (Sell)
strategy.entry("Short", strategy.short, qty=1) // Enter short with 1 unit
strategy.close("Long") // Close any open long positions
alert("Sell Signal - Entry Short", alert.freq_once_per_bar_close)
alert("Sell Entry Sound", alert.freq_once_per_bar_close)
// Plotting lines for open trades
var float long_price = na
var float short_price = na
// For Long Position: Plot the entry line at the price of the open position
if (strategy.opentrades > 0)
if (strategy.opentrades.entry_id(0) == "Long" and not na(strategy.opentrades.entry_price(0)))
long_price := strategy.opentrades.entry_price(0)
if (strategy.opentrades.entry_id(0) == "Short" and not na(strategy.opentrades.entry_price(0)))
short_price := strategy.opentrades.entry_price(0)
plot(long_price, color=color.green, style=plot.style_line, linewidth=2, title="Long Entry Line", offset=-1)
plot(short_price, color=color.red, style=plot.style_line, linewidth=2, title="Short Entry Line", offset=-1)