Strategie der Multifaktor-Momentumsrotation

Schriftsteller:ChaoZhang, Datum: 2023-10-25 11:52:19
Tags:

img

Übersicht

Diese Strategie kombiniert RSI, MACD, Bollinger Bands und Limit-Up/Down-Faktoren, um Multi-Faktor-Momentum-Rotation-Trading umzusetzen. Die Strategie beurteilt zunächst, ob mehrere technische Indikatoren gleichzeitig Kauf- oder Verkaufssignale geben. Wenn ja, werden entsprechende Kauf- oder Verkaufsoperationen ausgeführt. Inzwischen nimmt die Strategie bewegliche Stop-Profit und Stop-Loss an, um Gewinne zu erzielen und Risiken zu kontrollieren.

Strategie Logik

Die Hauptkomponenten dieser Strategie sind:

  1. Faktorbeurteilung

    • RSI: Berechnen Sie den 14-Perioden-RSI und beurteilen Sie, ob er unter der Kauflinie liegt oder höher als die Verkaufslinie
    • TD-Sequenz: Berechnen Sie die Anzahl der Limit-Up/Down-Tage und beurteilen Sie, ob sie die Kauf-/Verkaufsbedingungen erfüllen
    • MACD: Berechnung des MACD- und MACD-Histogramms zur Beurteilung der Kauf-/Verkaufsbedingungen
    • Bollinger Bands: Berechnen Sie 20-Perioden-BBs und beurteilen Sie, ob der Preis das obere oder untere Band der BBs berührt
  2. Einreise und Ausreise

    • Kaufbedingung: RSI, MACD, TD-Sequenz geben zusammen Kaufsignale
    • Verkaufszustand: RSI, MACD, TD-Sequenz geben zusammen Verkaufssignale
    • Stop-Profit: Festpunkte oder Prozentsätze als nachfolgende Stop-Profit verwenden
    • Stop-Loss: Festlegen von Höchstverlustpunkten für Stop-Loss
  3. Optimierung der Strategie

    • Anpassung der RSI-Parameter: Optimierung des RSI-Periodenparameters
    • Anpassung der MA-Periode: Optimierung des Periodenparameters der gleitenden Durchschnitte
    • Anpassung der Eintrittsbedingungen: Hinzufügen oder Verringern von Eintrittssignalen
    • Hinzufügen weiterer Faktoren: Mehr technische Indikatoren und statistische Faktoren

Analyse der Vorteile

  • Mehrere Faktoren verbessern die Eingabegenauigkeit

    Die Strategie berücksichtigt mehrere Faktoren wie RSI und MACD anstatt nur einen einzelnen Indikator. Dies reduziert falsche Signale und verbessert die Eingabegenauigkeit.

  • Momentum-Karakteristik zeigt Trends auf

    Indikatoren wie RSI und MACD haben offensichtliche Dynamikmerkmale, die Preistrendveränderungen erfassen.

  • Der Stop-Profit-Loss-Mechanismus kontrolliert die Risiken

    Bewegt Stop-Profit kann in Gewinne zu sperren dynamisch nach dem Markt. Stop-Loss-Einstellung steuert Einzelhandel Verlust.

  • Einfache und klare Logik

    Die Strategie vereint gemeinsame technische Indikatoren und ist universell, ihre Regeln sind relativ einfach und klar.

Risikoanalyse

  • Schlechte Entwicklung des Bullenmarktes

    Die Strategie konzentriert sich auf den Handel mit der mittleren Umkehrung, die häufige Stop-Loss in einem Bullenmarkt auslösen kann.

  • Potenziell zu hohe Handelsfrequenz

    Wenn die Parameter zu sensibel festgelegt werden, kann die Handelsfrequenz zu hoch sein, wodurch die Kosten und die Verschiebungen steigen.

  • Divergenzrisiko zwischen den Indikatoren

    Die Strategie stützt sich auf konsistente Signale über Indikatoren hinweg, aber manchmal können Abweichungen auftreten, die zu falschen Signalen führen.

  • Durchdringung von Stop-Loss

    Es können feste Stop-Loss-Punkte erreicht werden, dynamische Stop-Loss-Punkte oder Lagerwechsel können dazu beitragen, dieses Risiko zu vermeiden.

Optimierungsrichtlinien

  • Optimierung der Parameter zur Verringerung der Handelshäufigkeit

    Test RSI-Parameter und MA-Perioden, um Kombinationen mit niedrigerer Handelsfrequenz zu finden.

  • Zusätzliche statistische Faktoren zur Verbesserung der Effizienz

    Einbeziehen Sie aktienbezogene Statistiken wie Volatilität und Liquidität, um Parameter festzulegen und die Effizienz zu verbessern.

  • Kombination von Indikatoren auf Marktebene wie VIX

    Die Strategieparameter anhand von Panikindikatoren wie VIX anpassen, um die Handelsfrequenz während des Marktcrashs zu reduzieren.

  • Versuche verschiedene Aufbewahrungszeiten

    Testen Sie langfristige Holdings gegenüber kurzfristigen Rotationen, um deren Auswirkungen auf die Strategieleistung zu ermitteln.

  • Optimierung und Prüfung von Stop-Profit/Loss

    Untersuchen Sie fortschrittlichere dynamische Stop-Profit-/Loss-Techniken und testen Sie sie.

Zusammenfassung

Diese Strategie kombiniert mehrere technische Indikatoren und verwendet einen beweglichen Stop-Profit/Loss, um Gewinne zu erzielen und Risiken zu kontrollieren und gleichzeitig eine hohe Einstiegsgenauigkeit zu gewährleisten. Die Logik ist einfach und klar. Die Performance kann durch Parameteroptimierung und Indikatorauswahl weiter verbessert werden.


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("RSI, TD Seq, MACD, BB Strategy - Calculation Trailing Profit",overlay=true)


RSIDifference = input(-7, minval=-50, maxval=50, title="RSI Difference") 


TD = close > close[4] ?nz(TD[1])+1:0
TS = close < close[4] ?nz(TS[1])+1:0
TDUp = TD - valuewhen(TD < TD[1], TD , 1 )
TDDn = TS - valuewhen(TS < TS[1], TS , 1 )
TDcheckUP = iff(TD == 2, true, false)
TDCheckDOWN = iff(TS == 2, true, false)

[_, _, histLine] = macd(close, 12, 26, 9)
MACDCheckDown = iff(histLine > 0 and histLine[1] > 0 and histLine[2] > 0 and histLine[3] > 0  and histLine[4] > 0, true, false)
MACDCheckUp = iff(histLine < 0 and histLine[1] < 0 and histLine[2] < 0 and histLine[3] < 0 and histLine[4] < 0, true, false)

RSICal = rsi(close, 14)
RSICalNewUp = 50 + RSIDifference
RSICalNewDown = 50 - RSIDifference
RSICheckUp = iff(RSICal <= RSICalNewUp, true, false)
RSICheckDown = iff(RSICal >= RSICalNewDown, true, false)

basis = sma(close, 20)
dev = 2 * stdev(close, 20)
upperBB = basis + dev
lowerBB = basis - dev
BBCheckUp = iff(close > upperBB, true, false)
BBCheckDown = iff(close < lowerBB, true, false)
//BBCheckUp = false
//BBCheckDown = false


BuyCheck = iff(TDcheckUP == true and MACDCheckUp == true and RSICheckUp == true and BBCheckUp == false, true, false)
SellCheck = iff(TDCheckDOWN == true and MACDCheckDown == true and RSICheckDown == true and BBCheckDown == false, true, false)


ProfitStratA = input(50, minval=0, maxval=10000, title="Profit", step=0.5) 
ProfitTrailingA = input(10, minval=0, maxval=10000, title="Profit", step=0.5) 
useStopLoss = input(false, title="Use Stop Loss?")
LossstratA = input(145, minval=0, maxval=10000, title="Stop Loss", step=0.5) 
colB = input(100, minval=0, maxval=100, title="0-show / 100-hide Strategy", step=100) 

ProfitStrat = ProfitStratA * 10
ProfitTrailing = ProfitTrailingA * 10
Lossstrat = useStopLoss ? LossstratA * 10 : 1000000

if (strategy.position_size > 0)
    strategy.exit("BuyClose", "Buy", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
    
    
if (strategy.position_size < 0)   
    strategy.exit("SellClose", "Sell", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat) 
    

if (BuyCheck == true and strategy.position_size == 0)
    strategy.entry("Buy", strategy.long, comment="Long Entry")
    


if (SellCheck == true and strategy.position_size == 0)
    strategy.entry("Sell", strategy.short, comment="Short Entry")
    


plotshape(BuyCheck, color=blue, transp=colB, style=shape.arrowup, text="Buy\n", location=location.belowbar)
plotshape(SellCheck, color=orange, transp=colB, style=shape.arrowdown, text="Sell\n", location=location.abovebar)













Mehr