
Vergessen Sie den 14-Zyklus-RSI. Diese Strategie komprimiert den RSI-Zyklus direkt auf 8, kombiniert mit 14-Punkt-Dynamik-Trench, um speziell kurze Linie-Ausbrüche zu fangen. Die traditionelle RSI-Strategie trifft sich wiederholt in einem schwankenden Markt, während diese Kombination in hochfrequenten Schwankungen stabiler ist.
Die Kernlogik ist sehr einfach: Der RSI löst ein Mehrkopfsignal aus, wenn die Dynamik > 14 und ein Leerkopfsignal aus, wenn <-14. Gleichzeitig wird ein Durchschnittswert von mehr als 13 Zyklen verlangt, um sicherzustellen, dass es keine falschen Durchbrüche gibt. Diese Konstruktion ist 1-2 Zyklen vor dem einfachen RSI-Überkauf-Überverkaufssignal konzipiert, um den goldenen Moment des Trendstartes zu erfassen.
Stop-Loss 4,15%, Stop-Loss 1,85% und RRK 2,24:1 │ Dieses Verhältnis ist in der Scalping-Strategie radikal, aber mit 2,55 │ mobile Stop-Loss, die tatsächliche Risikokontrolle ist strenger │
Der Schlüssel liegt in der Gestaltung des beweglichen Stopps: Sobald sich der Preis in eine günstige Richtung bewegt, folgt die Stop-Line der dynamischen Anpassung der Höchst-/Tiefpunkte. Dies bedeutet, dass der Großteil der Gewinne gesperrt werden kann, auch wenn das Ziel von 4.15% nicht erreicht wird. In der Praxis werden viele Geschäfte von einem beweglichen Stop-Loss in 2-3% der Position ausgelöst, um eine Gewinnrückgabe zu vermeiden.
Um eine Position zu eröffnen, muss der Umsatz über den Durchschnitt von 13 Zyklen liegen. Diese Designfilter filtern 90% der Falschsignale. Viele RSI-Strategien eröffnen häufig Positionen in niedrigen Umgebungen und werden als Folge zurückgeschlagen.
Die 13-Zyklus-Durchschnittswertlinie ist empfindlicher als die üblichen 20-Zyklen und kann die Geldströme schneller erkennen. Die 1-fache Zahl sieht nicht hoch aus, aber in Kombination mit der schnellen Reaktion des 8-Zyklus-RSI ist es ausreichend, um echte Durchbruchsmöglichkeiten auszuwählen.
Mehrköpfige Eintritte erfordern die Erfüllung einer von drei Bedingungen: RSI-Dynamik > 14, RSI-Reball aus Überverkaufszonen, RSI-Überverkaufsgrenze. Diese Konstruktion ist flexibler als die einzelne Bedingung und passt sich den unterschiedlichen Marktbedingungen an.
Die Überverkaufslinie ist auf 10 festgelegt, die Überkauflinie auf 90 und ist extremer als die traditionelle 30⁄70. Der Vorteil ist, falsche Signale zu reduzieren, der Nachteil ist, dass einige Gelegenheiten verpasst werden können.
Diese Strategie eignet sich am besten für hochvolatile Varianten wie Kryptowährungen, Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex-Forex.
Die optimale Zeitfenster ist die Überschneidung der europäischen und amerikanischen Handelszeiten, wenn die Liquidität am besten ist und die Transaktionsmengenfilter am effektivsten sind. In der asiatischen Zeit wird die Signalqualität aufgrund der geringen Transaktionsmengen gesenkt.
Die Rücklaufdaten zeigen, dass die Strategie das Risiko von fortgesetzten Verlusten hat, insbesondere in schwankenden Märkten. Der 8-Zyklus-RSI ist zu empfindlich und kann leicht bei Zwischenbewegungen wiederholt unterbrochen werden.
Es wird empfohlen, dass die einmalige Risikobereitschaft nicht mehr als 2% des Kontos beträgt und nach 3 aufeinanderfolgenden Stop-Losses den Handel ausgesetzt wird. Die historische Rückschau ist kein Vorbild für zukünftige Gewinne, und der Handel mit dem Live-Stock erfordert strenge Geldmanagement und psychologische Kontrolle.
/*backtest
start: 2024-09-29 00:00:00
end: 2025-09-26 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Bybit","currency":"ETH_USDT","balance":500000}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © MonkeyPhone
//@version=5
strategy("RSI Momentum Scalper", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, calc_on_order_fills=true)
// Trading Mode Selection
tradeMode = input.string("Both", title="Trade Mode", options=["Both", "Long Only", "Short Only"])
// RSI Settings
rsiLength = input.int(8, title="RSI Length", minval=2, maxval=30)
rsiOverbought = input.int(90, title="RSI Overbought", minval=60, maxval=99)
rsiOversold = input.int(10, title="RSI Oversold", minval=1, maxval=40)
rsiMomentumThreshold = input.float(14, title="RSI Momentum Threshold", minval=1, maxval=15, step=0.5)
// Volume Settings
volMultiplier = input.float(1, title="Volume Multiplier", minval=1.0, maxval=3.0, step=0.1)
volLookback = input.int(13, title="Volume MA Length", minval=5, maxval=50)
// Exit Settings
takeProfitPercent = input.float(4.15, title="Take Profit %", minval=0.1, maxval=10.0, step=0.1)
stopLossPercent = input.float(1.85, title="Stop Loss %", minval=0.1, maxval=6.0, step=0.1)
trailingStopPercent = input.float(2.55, title="Trailing Stop %", minval=0.1, maxval=4.0, step=0.05)
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
rsiMA = ta.sma(rsi, 3)
// Calculate RSI Momentum
rsiMomentum = rsi - rsi[1]
// Volume Analysis
volMA = ta.sma(volume, volLookback)
highVolume = volume > volMA * volMultiplier
// Entry Conditions - Long
bullishMomentum = rsiMomentum > rsiMomentumThreshold
oversoldBounce = rsi < rsiOversold and rsi > rsi[1]
bullishCross = ta.crossover(rsi, rsiOversold)
longCondition = (bullishMomentum or oversoldBounce or bullishCross) and highVolume and close > close[1]
// Entry Conditions - Short
bearishMomentum = rsiMomentum < -rsiMomentumThreshold
overboughtReversal = rsi > rsiOverbought and rsi < rsi[1]
bearishCross = ta.crossunder(rsi, rsiOverbought)
shortCondition = (bearishMomentum or overboughtReversal or bearishCross) and highVolume and close < close[1]
// Apply trade mode filter
longEntry = longCondition and (tradeMode == "Both" or tradeMode == "Long Only")
shortEntry = shortCondition and (tradeMode == "Both" or tradeMode == "Short Only")
// Entry Logic
strategy.entry("Long", strategy.long, when=longEntry and strategy.position_size == 0)
strategy.entry("Short", strategy.short, when=shortEntry and strategy.position_size == 0)
// Declare and initialize trailing variables
var float highest_since_long = na
var float lowest_since_short = na
var float long_trailing_level = na
var float short_trailing_level = na
var float long_fixed_sl = na
var float long_tp = na
var float short_fixed_sl = na
var float short_tp = na
// Update trailing levels using ternary operators with math.max/min
highest_since_long := strategy.position_size > 0 ? math.max(na(highest_since_long[1]) ? math.max(high, strategy.position_avg_price) : highest_since_long[1], high) : na
lowest_since_short := strategy.position_size < 0 ? math.min(na(lowest_since_short[1]) ? math.min(low, strategy.position_avg_price) : lowest_since_short[1], low) : na
// Calculate exit levels
long_fixed_sl := strategy.position_size > 0 ? strategy.position_avg_price * (1 - stopLossPercent / 100) : na
long_tp := strategy.position_size > 0 ? strategy.position_avg_price * (1 + takeProfitPercent / 100) : na
long_trailing_level := strategy.position_size > 0 ? highest_since_long * (1 - trailingStopPercent / 100) : na
short_fixed_sl := strategy.position_size < 0 ? strategy.position_avg_price * (1 + stopLossPercent / 100) : na
short_tp := strategy.position_size < 0 ? strategy.position_avg_price * (1 - takeProfitPercent / 100) : na
short_trailing_level := strategy.position_size < 0 ? lowest_since_short * (1 + trailingStopPercent / 100) : na
// Effective stop loss levels
effective_long_sl = strategy.position_size > 0 ? math.max(long_fixed_sl, long_trailing_level) : na
effective_short_sl = strategy.position_size < 0 ? math.min(short_fixed_sl, short_trailing_level) : na
// Exit Logic
strategy.exit("Long Exit", "Long", limit=long_tp, stop=effective_long_sl, when=strategy.position_size > 0)
strategy.exit("Short Exit", "Short", limit=short_tp, stop=effective_short_sl, when=strategy.position_size < 0)
// Plot TP, fixed SL, and trailing SL levels on chart when in position
plot(strategy.position_size > 0 ? long_tp : na, title="Long TP", color=color.green, style=plot.style_linebr)
plot(strategy.position_size > 0 ? long_fixed_sl : na, title="Long Fixed SL", color=color.red, style=plot.style_linebr)
plot(strategy.position_size > 0 ? long_trailing_level : na, title="Long Trailing SL", color=color.orange, style=plot.style_linebr)
plot(strategy.position_size < 0 ? short_tp : na, title="Short TP", color=color.green, style=plot.style_linebr)
plot(strategy.position_size < 0 ? short_fixed_sl : na, title="Short Fixed SL", color=color.red, style=plot.style_linebr)
plot(strategy.position_size < 0 ? short_trailing_level : na, title="Short Trailing SL", color=color.orange, style=plot.style_linebr)
// Alerts
alertcondition(longEntry, title="Long Entry Alert", message="RSI Momentum Long Signal")
alertcondition(shortEntry, title="Short Entry Alert", message="RSI Momentum Short Signal")