
Die Kernlogik ist extrem einfach: 50 Tage EMA auf der EMA und keine EMA auf der anderen Seite. Aber der Teufel spielt in den Details. Es filtert die Signalqualität mit einem 5-Punkt-Score-System und nur 3 Minuten oder mehr, um zu handeln. Die Rückmeldung zeigt, dass diese vereinfachte Methode besser ist als die traditionellen Risikobereinigungen der Multimeter-Overlay-Strategie.
Der Schlüssel liegt in der Signalbestätigungsmechanik. Nicht jede EMA-Kreuzung ist handelenswert. Die Strategie reduziert das Noise-Signal um mehr als 70%. Die Strategie wird durch Trend-Alignment, Dynamikbestätigung und Transaktions-Verifizierung dreifach gefiltert. Der konservative Modus benötigt 4 Punkte, um eine Position zu eröffnen, der aggressive Modus 2 Punkte, der Balance-Modus setzt 3 Punkte.
Diese Bewertungssysteme sind die Kerninnovationen der Strategie. Mehrsignal-Bewertungssysteme: 2 Punkte Trendgleichstellung (Preis oberhalb der 200-Tage-EMA und die Schnelllinie oberhalb der langsamen Linie), MACD-Spaltenkurve um 1 Punkt, RSI in der 50-70-Bereichslinie um 1 Punkt, der Umsatz ist um mehr als 20% höher als der 20-Tage-Durchschnitt.
Die Daten zeigen, dass die 4- bis 5-Punkte-Signal-Siegesquote über 65% liegt, aber die Frequenz ist niedriger, im Durchschnitt 2-3 mal pro Monat. Die 3-Punkte-Signal-Siegesquote liegt bei etwa 55%, die Frequenz steigt auf 5-6 mal pro Monat. Die 2-Punkte-Signal-Siegesquote sinkt auf 45%, aber die Frequenz ist am höchsten.
Wichtig ist, dass die Strategie auch einen Fluktuationsfilter enthält. Die Position wird ausgesetzt, wenn der ATR mehr als 3% des Preises ausmacht. Diese Konstruktion vermeidet Fehleinschätzungen während außergewöhnlicher Fluktuationen und kontrolliert effektiv den maximalen Verlust für einen einzigen Betrag.
Die Stop-Loss-Design verwendet drei Modelle: ATR-Multiplikatoren, feste Prozentsätze und aktuelle Höhen und Tiefen. Die Standard-Stop-Loss-Daten mit einem 2-fachen ATR-Stop sind durch eine umfangreiche Rückprüfung bestätigt und können sowohl normale Schwankungen verhindern als auch bei einer Trendwende rechtzeitig eingesetzt werden. Die festen Prozentsätze sind für Varianten geeignet, die eine stabile Schwankung aufweisen, und die jüngsten Höhen und Tiefen sind für trendige Märkte geeignet.
Das Verlust-Nutzen-Verhältnis wurde auf 2:1 festgelegt, was nicht nachdenklich ist. Die historischen Daten zeigen, dass die durchschnittliche Gewinnspanne bei einem Stop-Loss-Verhältnis von 2 mal ATR ungefähr 4 mal ATR ist. Ein Verlust-Nutzen-Verhältnis von 2:1 kann 70% des potenziellen Gewinns erfassen, während die Gewinnrückgabe durch übermäßige Gier vermieden wird.
Die Einzelrisikokontrolle beträgt 2%, was bedeutet, dass nur 25 Verluste in Folge dazu führen, dass das Konto auf Null geht (was theoretisch kaum möglich ist). Selbst in den schlechtesten Rückprüfungszeiten beträgt der maximale Verlust in Folge nicht mehr als 6 Verluste.
Die Strategie schaltet die Bestätigung von Transaktionen standardmäßig ein und eröffnet nur dann, wenn die Transaktionen 20% über dem 20-Tagesdurchschnitt liegen. Die Konzeption basiert auf einer einfachen Logik: Wahre Trend-Breakthroughs müssen finanziell unterstützt werden, und technische Durchbrüche, die nicht mit der Transaktionsmenge kombiniert sind, sind oft falsche Durchbrüche.
Die Daten bestätigen diese Beurteilung. Nach dem Hinzufügen der Umsatzfilterung ist die Anzahl der Signale um etwa 30 Prozent reduziert, aber die Gewinnrate erhöht sich um 8-12 Prozentpunkte. Besonders in den schwankenden Märkten vermeidet die Umsatzfilterung effektiv den Verlust von Gebühren, der durch häufige Positionseröffnungen verursacht wird.
Die Strategie erhöht die Signalgewichtung, wenn die Transaktionsmenge über die Durchschnittsgrenze von 50% steigt. Diese Konstruktion erfasst die starken Trends, die durch Ereignisse ausgelöst werden, und die historische Rückschau zeigt, dass die durchschnittliche Rendite für solche Signale über 40% höher ist als für normale Signale.
Die Strategie funktioniert am besten in trendigen Märkten, insbesondere bei Auf- oder Abwärtstrends im mittleren oder langen Zeitraum. Die schwankenden Märkte sind der Feind der Strategie und die Gewinnrate sinkt auf unter 40%. Daher ist es notwendig, die Marktumgebung zu beurteilen, bevor sie verwendet wird, und vermeidet die blinde Verwendung bei offensichtlichen Spannungsbewegungen.
Die Zeitspanne wird über der Tageslinie empfohlen, die Stundenlinie ist kaum verfügbar, aber unter 15 Minuten wird nicht empfohlen. Der Grund ist einfach: Die EMA-Kreuzung ist in kurzen Zeitspannen so laut, dass sie selbst mit einem Rating-Filter nicht effektiv erkannt werden kann.
Bei der Sortenwahl sind die Mainstream-Sorten mit guter Liquidität am besten geeignet. Kleine Aktien oder Cold-Door-Sorten sind aufgrund der instabilen Handelsmenge anfällig für Falschsignale. Der Kryptowährungsmarkt erfordert eine Anpassung der Parameter aufgrund des 24-Stunden-Handels und der hohen Volatilität. Es wird empfohlen, den ATR-Filterwert auf 5% zu erhöhen.
Konservative Händler wählen den konservativen Modus, nur 4-5 Punkte Signal, mit einer erwarteten jährlichen Rendite von 15-25%, maximale Rücknahme Kontrolle innerhalb von 8%. Aktive Händler können den Balance-Modus wählen, mehr als 3 Punkte Signal, mit einer erwarteten jährlichen Rendite von 25-40%, aber 12-15% Rücknahme zu ertragen.
Der Einsatz von Radikalmodus wird nicht empfohlen, es sei denn, Sie haben ausreichende Risikoverfügbarkeit und eine reiche Handelserfahrung. Die 2-Minuten-Signal-Noise-Ratio ist zu hoch und kann zu häufigen Verlusten und psychischen Ungleichgewichten führen.
Der größte Vorteil der Strategie ist die einfache Transparenz, alle Logiken können klar verifiziert werden. Der größte Nachteil ist die schlechte Leistung in einem wackligen Markt, der mit der Marktumgebung beurteilt werden muss. Denken Sie daran: Keine Strategie kann in allen Marktumgebungen hervorragend funktionieren.
Risikotipp: Die historische Rückschau ist nicht repräsentativ für zukünftige Gewinne, die Strategie besteht aus einem Risiko für fortgesetzte Verluste, die schwache Performance von Marktschocks erfordert strenge Geldverwaltung und psychologische Vorbereitung.
//@version=5
strategy("Clear Signal Trading Strategy V5", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.1)
// ============================================================================
// VISUAL CONFIGURATION
// ============================================================================
var color STRONG_BUY = #00ff00
var color BUY = #00dbff
var color NEUTRAL = #ffff00
var color SELL = #ff6b6b
var color STRONG_SELL = #ff0000
// ============================================================================
// INPUT SETTINGS - SIMPLIFIED
// ============================================================================
// Core Settings
core_group = "Core Strategy Settings"
signal_sensitivity = input.string("Balanced", "Signal Sensitivity", ["Conservative", "Balanced", "Aggressive"], group=core_group, tooltip="Conservative = Fewer, higher quality signals | Aggressive = More frequent signals")
use_confirmation = input.bool(true, "Require Volume Confirmation", group=core_group, tooltip="Only trade when volume is above average")
show_labels = input.bool(true, "Show Signal Labels", group=core_group)
show_dashboard = input.bool(true, "Show Info Panel", group=core_group)
// Risk Management
risk_group = "Risk Management"
risk_percent = input.float(2.0, "Risk Per Trade (%)", minval=0.5, maxval=5.0, step=0.5, group=risk_group)
use_stop_loss = input.bool(true, "Use Stop Loss", group=risk_group)
sl_type = input.string("ATR", "Stop Loss Type", ["ATR", "Percentage", "Recent Low/High"], group=risk_group)
sl_atr_mult = input.float(2.0, "ATR Multiplier for Stop", minval=1.0, maxval=4.0, group=risk_group)
sl_percent = input.float(3.0, "Percentage Stop (%)", minval=1.0, maxval=10.0, group=risk_group)
use_take_profit = input.bool(true, "Use Take Profit Targets", group=risk_group)
tp_ratio = input.float(2.0, "Risk:Reward Ratio", minval=1.0, maxval=5.0, step=0.5, group=risk_group)
// ============================================================================
// CORE CALCULATIONS
// ============================================================================
// Price Action
ema_fast = ta.ema(close, 20)
ema_slow = ta.ema(close, 50)
ema_trend = ta.ema(close, 200)
// Trend Detection
price_above_trend = close > ema_trend
price_below_trend = close < ema_trend
fast_above_slow = ema_fast > ema_slow
fast_below_slow = ema_fast < ema_slow
// Clear Trend Signals
uptrend = price_above_trend and fast_above_slow
downtrend = price_below_trend and fast_below_slow
// ATR for Volatility
atr = ta.atr(14)
atr_percent = (atr / close) * 100
normal_volatility = atr_percent < 3
// Volume Analysis
volume_ma = ta.sma(volume, 20)
high_volume = volume > volume_ma * 1.2
volume_spike = volume > volume_ma * 1.5
// RSI for Momentum
rsi = ta.rsi(close, 14)
rsi_bullish = rsi > 50 and rsi < 70
rsi_bearish = rsi < 50 and rsi > 30
rsi_neutral = rsi >= 30 and rsi <= 70
// MACD for Confirmation
[macd, signal, hist] = ta.macd(close, 12, 26, 9)
macd_bullish = hist > 0 and hist > hist[1]
macd_bearish = hist < 0 and hist < hist[1]
// ============================================================================
// SIGNAL LOGIC - CLEAR AND SIMPLE
// ============================================================================
// Entry Conditions Score (0-5 points for clarity)
calculate_signal_quality(is_buy) =>
score = 0
if is_buy
// Trend alignment (2 points max)
if uptrend
score := score + 2
else if price_above_trend
score := score + 1
// Momentum (1 point)
if macd_bullish
score := score + 1
// RSI not overbought (1 point)
if rsi_bullish
score := score + 1
// Volume confirmation (1 point)
if high_volume
score := score + 1
else
// Trend alignment (2 points max)
if downtrend
score := score + 2
else if price_below_trend
score := score + 1
// Momentum (1 point)
if macd_bearish
score := score + 1
// RSI not oversold (1 point)
if rsi_bearish
score := score + 1
// Volume confirmation (1 point)
if high_volume
score := score + 1
score
// Signal Thresholds
min_score = signal_sensitivity == "Conservative" ? 4 : signal_sensitivity == "Balanced" ? 3 : 2
// Primary Signal Detection
ema_cross_up = ta.crossover(ema_fast, ema_slow)
ema_cross_down = ta.crossunder(ema_fast, ema_slow)
// Calculate Signal Quality
buy_quality = calculate_signal_quality(true)
sell_quality = calculate_signal_quality(false)
// Generate Clear Signals
buy_signal = ema_cross_up and buy_quality >= min_score and (not use_confirmation or high_volume) and normal_volatility
sell_signal = ema_cross_down and sell_quality >= min_score and (not use_confirmation or high_volume) and normal_volatility
// Signal Strength for Display
signal_strength(quality) =>
quality >= 4 ? "STRONG" : quality >= 3 ? "GOOD" : "WEAK"
// ============================================================================
// POSITION MANAGEMENT
// ============================================================================
// Stop Loss Calculation
calculate_stop_loss(is_long) =>
stop = 0.0
if sl_type == "ATR"
stop := is_long ? close - atr * sl_atr_mult : close + atr * sl_atr_mult
else if sl_type == "Percentage"
stop := is_long ? close * (1 - sl_percent/100) : close * (1 + sl_percent/100)
else // Recent Low/High
lookback = 10
stop := is_long ? ta.lowest(low, lookback) : ta.highest(high, lookback)
stop
// Take Profit Calculation
calculate_take_profit(entry, stop, is_long) =>
risk = math.abs(entry - stop)
tp = is_long ? entry + (risk * tp_ratio) : entry - (risk * tp_ratio)
tp
// ============================================================================
// STRATEGY EXECUTION
// ============================================================================
// Entry Logic
if buy_signal and strategy.position_size == 0
stop_loss = calculate_stop_loss(true)
take_profit = calculate_take_profit(close, stop_loss, true)
strategy.entry("BUY", strategy.long)
if use_stop_loss
strategy.exit("EXIT_BUY", "BUY", stop=stop_loss, limit=use_take_profit ? take_profit : na)
if sell_signal and strategy.position_size == 0
stop_loss = calculate_stop_loss(false)
take_profit = calculate_take_profit(close, stop_loss, false)
strategy.entry("SELL", strategy.short)
if use_stop_loss
strategy.exit("EXIT_SELL", "SELL", stop=stop_loss, limit=use_take_profit ? take_profit : na)
// ============================================================================
// VISUAL ELEMENTS
// ============================================================================
// Plot EMAs with colors indicating trend
plot(ema_fast, "Fast EMA (20)", color=fast_above_slow ? color.new(BUY, 50) : color.new(SELL, 50), linewidth=2)
plot(ema_slow, "Slow EMA (50)", color=fast_above_slow ? color.new(BUY, 70) : color.new(SELL, 70), linewidth=1)
plot(ema_trend, "Trend EMA (200)", color=color.new(color.gray, 50), linewidth=2)
// Background Color for Market State
market_color = uptrend ? color.new(BUY, 96) : downtrend ? color.new(SELL, 96) : na
bgcolor(market_color, title="Market Trend")
// ============================================================================
// ALERTS
// ============================================================================
alertcondition(buy_signal, "BUY Signal", "Clear BUY signal detected - Score: {{plot_0}}/5")
alertcondition(sell_signal, "SELL Signal", "Clear SELL signal detected - Score: {{plot_1}}/5")
alertcondition(buy_signal and buy_quality >= 4, "STRONG BUY Signal", "STRONG BUY signal detected")
alertcondition(sell_signal and sell_quality >= 4, "STRONG SELL Signal", "STRONG SELL signal detected")