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.
Die Hauptkomponenten dieser Strategie sind:
Faktorbeurteilung
Einreise und Ausreise
Optimierung der Strategie
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.
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.
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.
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)