
Diese Strategie basiert auf der groß angelegten Kerzenidentifizierung und RSI-Divergenzindikatoren als Hauptsignalen, kombiniert mit einem anfänglichen festen Stop-Loss und einem dynamischen Trailing-Stop-Loss, um ein vollständiges Trendverfolgungs-Handelssystem zu bilden. Die Strategie identifiziert großflächige Marktbedingungen, indem sie die Körpergröße der aktuellen Kerze mit den vorherigen fünf Kerzen vergleicht, und nutzt die Divergenz zwischen dem schnellen und langsamen RSI, um Momentumänderungen zu bestätigen. Schließlich wird ein doppelter Stop-Loss-Mechanismus verwendet, um Risiken und Gewinne sichern.
Die Strategie besteht aus vier Kernkomponenten: 1) Identifizierung großer Kerzen - Bestimmen Sie signifikante Preisdynamik durch Vergleich der aktuellen und vorherigen 5 Kerzenkörpergrößen; 2) RSI-Divergenzanalyse - Verwenden Sie den schnellen 5-Perioden-RSI und den langsamen 14-Perioden-RSI 3) Initial Stop-Loss – Legen Sie zum Zeitpunkt des Einstiegs einen festen Stop-Loss von 200 Punkten fest, um das anfängliche Risiko zu kontrollieren; 4) Trailing-Stop-Loss – wird aktiviert, nachdem der Gewinn 200 Punkte erreicht hat, und hält den dynamischen Abstand des Punktes zum Preis von 150 Punkten. Die Strategie nutzt außerdem den 21-Perioden-EMA als Trendfilter, um die allgemeine Marktrichtung zu bestimmen.
Die Strategie baut durch die Kombination einer großen Anzahl von Kerzendiagrammen und RSI-Divergenzen ein komplettes Trendfolgesystem auf und erreicht ein umfassendes Risikomanagement durch einen doppelten Stop-Loss-Mechanismus. Die Strategie eignet sich für den Betrieb in einem Marktumfeld mit klaren Trends und hoher Volatilität, allerdings müssen Händler die Parametereinstellungen entsprechend den spezifischen Markteigenschaften anpassen. Durch die empfohlenen Optimierungsrichtungen sollen die Stabilität und Profitabilität der Strategie weiter verbessert werden.
/*backtest
start: 2024-12-17 00:00:00
end: 2025-01-16 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=6
strategy('[F][IND] - Big Candle Identifier with RSI Divergence and Advanced Stops', shorttitle = '[F][IND] Big Candle RSI Trail', overlay = true)
// Inputs for the trailing stop and stop loss
trail_start_ticks = input.int(200, "Trailing Start Ticks", tooltip="The number of ticks the price must move in the profitable direction before the trailing stop starts.")
trail_distance_ticks = input.int(150, "Trailing Distance Ticks", tooltip="The distance in ticks between the trailing stop and the price once the trailing stop starts.")
initial_stop_loss_points = input.int(200, "Initial Stop Loss Points", tooltip="The fixed stop loss applied immediately after entering a trade.")
// Tick size based on instrument
tick_size = syminfo.mintick
// Calculate trailing start and distance in price
trail_start_price = trail_start_ticks * tick_size
trail_distance_price = trail_distance_ticks * tick_size
initial_stop_loss_price = initial_stop_loss_points * tick_size
// Identify big candles
body0 = math.abs(close[0] - open[0])
body1 = math.abs(close[1] - open[1])
body2 = math.abs(close[2] - open[2])
body3 = math.abs(close[3] - open[3])
body4 = math.abs(close[4] - open[4])
body5 = math.abs(close[5] - open[5])
bullishBigCandle = body0 > body1 and body0 > body2 and body0 > body3 and body0 > body4 and body0 > body5 and open < close
bearishBigCandle = body0 > body1 and body0 > body2 and body0 > body3 and body0 > body4 and body0 > body5 and open > close
// RSI Divergence
rsi_fast = ta.rsi(close, 5)
rsi_slow = ta.rsi(close, 14)
divergence = rsi_fast - rsi_slow
// Trade Entry Logic
if bullishBigCandle
strategy.entry('Long', strategy.long, stop=low - initial_stop_loss_price)
if bearishBigCandle
strategy.entry('Short', strategy.short, stop=high + initial_stop_loss_price)
// Trailing Stop Logic
var float trail_stop = na
if strategy.position_size > 0 // Long Position
entry_price = strategy.position_avg_price
current_profit = close - entry_price
if current_profit >= trail_start_price
trail_stop := math.max(trail_stop, close - trail_distance_price)
strategy.exit("Trailing Stop Long", "Long", stop=trail_stop)
if strategy.position_size < 0 // Short Position
entry_price = strategy.position_avg_price
current_profit = entry_price - close
if current_profit >= trail_start_price
trail_stop := math.min(trail_stop, close + trail_distance_price)
strategy.exit("Trailing Stop Short", "Short", stop=trail_stop)
// Plotting Trailing Stop
plot(strategy.position_size > 0 ? trail_stop : na, color=color.green, title="Trailing Stop (Long)")
plot(strategy.position_size < 0 ? trail_stop : na, color=color.red, title="Trailing Stop (Short)")
// Plotting RSI Divergence
plot(divergence, color=divergence > 0 ? color.lime : color.red, linewidth=2, title="RSI Divergence")
hline(0)
// Plotting EMA
ema21 = ta.ema(close, 21)
plot(ema21, color=color.blue, title="21 EMA")