Multi-Faktor-Momentum-Rotationsstrategie


Erstellungsdatum: 2023-10-25 11:52:19 zuletzt geändert: 2023-10-25 11:52:19
Kopie: 0 Klicks: 754
1
konzentrieren Sie sich auf
1617
Anhänger

Multi-Faktor-Momentum-Rotationsstrategie

Überblick

Die Strategie nutzt RSI, MACD, Bollinger Bands und Stopps, um einen dynamischen Dreh- und Angelhandel zu ermöglichen. Die Strategie beurteilt zunächst, ob mehrere technische Indikatoren gleichzeitig ein Kauf- oder Verkaufssignal senden, und wenn ja, wird ein entsprechender Kauf- oder Verkaufsvorgang durchgeführt. Die Strategie nutzt gleichzeitig bewegliche Stopps und Verluste, um Profit zu sperren und Risiken zu kontrollieren.

Strategieprinzip

Die Strategie besteht aus den folgenden Teilen:

  1. Urteilsfaktor

    • RSI: Berechnung des 14-Zyklus-RSI, um zu beurteilen, ob er unter der eingestellten Kauflinie oder über der eingestellten Verkaufslinie liegt
    • TD-Sequenz: Berechnung der Tage, an denen die Kurse aufhören, um zu beurteilen, ob die Kauf- und Verkaufskonditionen erfüllt sind
    • MACD: Berechnung der MACD und der MACD-Historie, um zu beurteilen, ob die Kauf- und Verkaufskonditionen erfüllt sind
    • Brin-Band: Berechnung der 20-Tage-Brin-Band, um zu beurteilen, ob der Preis den Brin-Band berührt hat
  2. Ein- und Ausreise

    • Kaufbedingungen: Ein Kauf erfolgt, wenn die RSI-, MACD- und TD-Sequenzen gleichzeitig ein Kaufsignal senden
    • Verkaufsbedingungen: Ein Verkauf erfolgt, wenn die RSI-, MACD- und TD-Sequenzen gleichzeitig ein Verkaufssignal senden
    • Stopp: Beweglicher Stopp mit festen Punkten oder Prozentzahlen
    • Stop-Loss: Setzen Sie die maximal zulässigen Verlustpunkte und machen Sie einen Stop-Loss
  3. Strategieoptimierung

    • Anpassung der RSI-Parameter: Periodische Parameter zur Optimierung des RSI
    • Anpassung der MA-Periode: Periodenparameter für die Optimierung der Mittellinie
    • Anpassung der Eintrittsbedingungen: Erhöhung oder Verringerung des Eintrittssignals
    • Hinzufügen von anderen Faktoren: Kombination von mehr technischen Indikatoren und statistischen Faktoren

Strategische Stärkenanalyse

  • Eine Kombination aus mehreren Faktoren, um die Genauigkeit der Zulassung zu gewährleisten

Diese Strategie berücksichtigt nicht nur einen einzelnen technischen Indikator, sondern kombiniert mehrere Faktoren wie die RSI-, MACD- und TD-Sequenzen, um die Falschsignale durch einen einzelnen Indikator zu reduzieren und die Genauigkeit der Eintrittsprüfung zu verbessern.

  • Dynamik und Trends

Indikatoren wie der RSI und der MACD weisen deutlich dynamische Eigenschaften auf und können Trendänderungen in den Aktienkursen erfassen. Diese Indikatoren sind im Vergleich zu Trend-Tracking-Indikatoren wie der Durchschnittsequenz empfindlicher auf Umkehrungen.

  • Stopp-Loss-Mechanismen und Risikokontrollen

Der mobile Stopp kann mit dem laufenden Geschäftsmodus gestoppt werden, um die Gewinne besser zu sperren. Die Stop-Loss-Einstellung kann die Einzelschäden kontrollieren.

  • Strategie ist klar und einfach

Die Strategie ist in Kombination mit gängigen technischen Indikatoren einigermaßen universell. Die Regeln sind relativ einfach, klar und leicht zu verstehen und zu bedienen.

Strategische Risikoanalyse

  • Mehrheit wirkt weniger

Diese Strategie basiert auf der Rückwärtsbewegung und ist eine Umkehrstrategie. In einem Bullenmarkt kann die Anwendung dieser Strategie häufig zu Verlusten führen und nicht wirksam sein.

  • Die Handelsfrequenz könnte zu hoch sein.

Wenn die Parameter zu empfindlich eingestellt werden, kann die Frequenz des Handels zu hoch sein, was zu höheren Transaktionskosten und Verlusten von Gleitpunkten führt.

  • Indikator für die Risikoverteilung

Diese Strategie beruht auf mehreren Indicatoren, die in die gleiche Richtung signalisieren, aber manchmal können die Indicatoren auch voneinander abweichen, was zu falschen Signalen führt.

  • Verlustbewältigung durch Risiken

Die Einstellung eines festen Stop-Loss-Punktes kann durchbrochen werden. Um dieses Risiko zu vermeiden, können Sie einen dynamischen Stop-Loss einrichten oder einen Wechsel in Betracht ziehen.

Richtung der Strategieoptimierung

  • Optimierung der Parameter und Verringerung der Handelsfrequenz

Die Parameter des RSI und die Periodiparameter der Durchschnittslinie können getestet werden, um eine Kombination von niedrigerer Handelsfrequenz zu finden.

  • Erhöhung der statistischen Faktoren und Effizienz

Die Parameter können in Kombination mit den eigenen statistischen Eigenschaften der Aktien, wie Volatilität, Liquidität usw., eingestellt werden, um die Effizienz der Strategie zu verbessern.

  • In Kombination mit Marktindikatoren wie VIX

Die Parameter der Strategie können an den Panikindex der gesamten Markte wie VIX angepasst werden, um die Handelsfrequenz zu verringern, wenn der Markt in Panik gerät.

  • Verschiedene Testzeiten

Verschiedene Positionszyklus können getestet werden, um zu beurteilen, wie sich langfristige Haltungen oder kurzfristige Wechselwirkungen auf die Effektivität der Strategie auswirken.

  • Optimierung und Prüfung von Stop-Loss-Strategien

Es ist möglich, die Wirksamkeit von dynamischen Stopp-Stopp-Methoden zu erforschen.

Zusammenfassen

Die Strategie berücksichtigt mehrere technische Indikatoren und nutzt mobile Stop-Loss-Strategien, um Gewinne zu sichern und Risiken zu kontrollieren, um eine hohe Einstiegsgenauigkeit zu gewährleisten. Die Strategie ist einfach, klar und leicht zu verstehen. Die Operation kann durch Parameteroptimierung und Indikatoroptimierung weiter verbessert werden.

Strategiequellcode
/*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)