Die Momentum Swing Effective Profit Strategy ist eine quantitative Handelsstrategie, die entwickelt wurde, um profitable Chancen in mittelfristigen Finanzmärkten zu erfassen, indem Swing-Handelsprinzipien und Momentum-Indikatoren integriert werden.
Das Kaufsignal wird durch mehrere Faktoren bestimmt, darunter A1, A2, A3, XG und weeklySlope.
A1-Bedingung: Überprüft spezifische Preisbeziehungen und überprüft, ob das Verhältnis des höchsten Preises zum Schlusskurs kleiner als 1,03, das Verhältnis des Eröffnungspreises zum niedrigsten Preis kleiner als 1,03 und das Verhältnis des höchsten Preises zum vorherigen Schlusskurs größer als 1,06 ist. Diese Bedingung sucht nach einem spezifischen Muster, das auf eine potenzielle bullische Dynamik hinweist.
A2-Bedingung: Überprüft Preisbeziehungen im Zusammenhang mit dem Schlusskurs, wobei das Verhältnis des Schlusskurses zum Eröffnungskurs größer als 1,05 oder das Verhältnis des Schlusskurses zum vorherigen Schlusskurs größer als 1,05 ist. Diese Bedingung sucht nach Anzeichen einer Aufwärtsbewegung und -dynamik.
A3 Bedingung: Konzentriert sich auf das Volumen und prüft, ob das aktuelle Volumen über das höchste Volumen der letzten 60 Perioden hinausgeht.
XG-Bedingung: Kombiniert die Bedingungen A1 und A2 und überprüft, ob sie sowohl für die aktuellen als auch für die vorherigen Bars zutreffen. Es überprüft auch das Verhältnis des Schlusskurses zu 5-Perioden-EMA-Kreuzungen über dem 9-Perioden-SMA desselben Verhältnisses. Diese Bedingung hilft, potenzielle Kaufsignale zu identifizieren, wenn sich mehrere Faktoren ausrichten, was auf eine starke bullische Dynamik und einen potenziellen Einstiegspunkt hinweist.
Wöchentlicher Trendfaktor: Berechnet die Steigung der 50-Perioden-SMA in einem wöchentlichen Zeitrahmen. Er prüft, ob die Steigung positiv ist und zeigt einen allgemeinen Aufwärtstrend wöchentlich an. Diese Bedingung liefert eine zusätzliche Bestätigung, dass sich die Aktie in einem Aufwärtstrend befindet.
Wenn alle diese Bedingungen erfüllt sind, wird die Kaufbedingung ausgelöst, was auf einen günstigen Zeitpunkt für den Eintrag in eine Longposition hinweist.
Die Verkaufsbedingung ist in der Strategie relativ einfach:
Verkaufssignal: Die Verkaufsbedingung überprüft einfach, ob der Schlusskurs unterhalb der 10-Perioden-EMA überschreitet.
Die Momentum Swing Effective Profit Strategy integriert Swing-Handelsprinzipien und Momentum-Indikatoren durch Parameteroptimierung und Bedingungenintegration und erzielt erhebliche Gewinne bei Backtests. Sie erfasst mittelfristige Trends gut, sollte sich jedoch der Trendumkehrrisiken bewusst sein. Weitere Optimierungen können ihre Robustheit und Live-Performance verbessern.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © fzj20020403 //@version=5 strategy("Slight Swing Momentum Strategy.", overlay=true) // Position Status Definition var inPosition = false // Moving Average Definition ma60 = ta.sma(close, 60) // A1 Condition Definition A1 = high / close < 1.03 and open / low < 1.03 and high / close[1] > 1.06 // A2 Condition Definition A2 = close / open > 1.05 or close / close[1] > 1.05 // A3 Condition Definition highestVol = ta.highest(volume, 60) A3 = ta.crossover(volume, highestVol[1]) // B1 Condition Definition ema5 = ta.ema(close, 5) B1 = close / ema5 // XG Condition Definition A1andA2 = (A1 and A2) and (A1[1] and A2[1]) XG = ta.crossover(B1, ta.sma(B1, 9)) // Weekly Trend Factor Definition weeklyMa = ta.sma(close, 50) weeklySlope = (weeklyMa - weeklyMa[4]) / 4 > 0 // Buy Signal using XG Condition buySignal = A1 and close > ma60 or A2 and A3 and XG and close > ma60 and weeklySlope // Sell Signal Condition sellSignal = close < ta.ema(close, 10) // Buy and Sell Conditions buyCondition = buySignal and not inPosition sellCondition = sellSignal and inPosition // Execute Buy and Sell Operations if (buyCondition) strategy.entry("Buy", strategy.long) inPosition := true if (sellCondition) strategy.close("Buy") inPosition := false // Stop Loss and Take Profit Levels stopLoss = strategy.position_avg_price * 0.5 takeProfit = strategy.position_avg_price * 1.30 // Apply Stop Loss and Take Profit Levels if inPosition strategy.exit("Long Stop Loss", "Buy", stop=stopLoss) strategy.exit("Long Take Profit", "Buy", limit=takeProfit) // Plot Buy and Sell Signal Shapes plotshape(buyCondition, style=shape.arrowdown, location=location.belowbar, color=color.green, size=size.small) plotshape(sellCondition, style=shape.arrowup, location=location.abovebar, color=color.red, size=size.small) // EMA Variable Definition ema = ta.ema(close, 5) // Plot Indicator Line plot(ema, color=color.green, title="EMA")