
Die Strategie ist eine hochgradig anpassungsfähige Arbitrage-Strategie, die EMAs, Bereiche der Nachfrage und des Handelsvolumens kombiniert. Sie identifiziert Markttrends durch die Kreuzbestätigung mehrerer technischer Indikatoren und handelt in der Nähe von kritischen Bereichen der Nachfrage. Die Strategie verwendet dynamische Stop-Loss- und Gewinnziele und passt sich an die Marktvolatilität an, indem sie ATR-Indikatoren verwendet.
Die Kernlogik der Strategie basiert auf den folgenden Schlüsselelementen:
Wenn ein 9-Zyklus-EMA drei Zyklen in Folge steigt und ein 15-Zyklus-EMA auch einen Aufwärtstrend zeigt und der Preis über der Nachfragezone liegt und die 20-Zyklus-Mittelschicht größer ist als die 50-Zyklus-Mittelschicht, wird ein Mehr-Signal ausgesendet. Die Logik des Fehlsignals ist umgekehrt.
Maßnahmen zur Risikokontrolle:
Es ist ein vollständiges Handelssystem, das mehrere technische Analyse-Tools kombiniert, um die Zuverlässigkeit der Transaktionen durch mehrere Bestätigungsmechanismen zu verbessern. Die Vorteile der Strategie liegen in ihrer Anpassungsfähigkeit und Risikomanagementfähigkeit, aber auch in der Notwendigkeit, die Leistungsunterschiede in verschiedenen Marktumgebungen zu berücksichtigen.
/*backtest
start: 2024-02-08 00:00:00
end: 2025-02-06 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Optimized Scalping Strategy with EMA & Supply/Demand Zones", overlay=true)
// Inputs
ema9_length = input(9, title="EMA 9 Length")
ema15_length = input(15, title="EMA 15 Length")
higher_tf = input.timeframe("15", title="Higher Timeframe for Zones")
atr_mult = input(1.5, title="ATR Multiplier for Stop Loss")
risk_reward = input.float(1.2, title="Risk-Reward Ratio", options=[1.2, 1.3, 1.4])
// Calculating EMAs
ema9 = ta.ema(close, ema9_length)
ema15 = ta.ema(close, ema15_length)
// Function to detect supply & demand zones
get_zone(tf) =>
high_tf_high = request.security(syminfo.tickerid, tf, ta.highest(high, 50))
high_tf_low = request.security(syminfo.tickerid, tf, ta.lowest(low, 50))
[high_tf_high, high_tf_low]
[supply_zone, demand_zone] = get_zone(higher_tf)
// ATR-based Stop Loss and Take Profit
atr = ta.atr(14)
long_sl = close - (atr * atr_mult)
long_tp = close + (atr * atr_mult * risk_reward)
short_sl = close + (atr * atr_mult)
short_tp = close - (atr * atr_mult * risk_reward)
// Entry conditions with volume and trend confirmation
longCondition = ta.rising(ema9, 3) and ta.rising(ema15, 3) and close > demand_zone and ta.sma(volume, 20) > ta.sma(volume, 50)
shortCondition = ta.falling(ema9, 3) and ta.falling(ema15, 3) and close < supply_zone and ta.sma(volume, 20) > ta.sma(volume, 50)
// Exit conditions using ATR-based SL/TP with additional trend confirmation
exitLong = (close >= long_tp or close <= long_sl) and ta.falling(ema9, 2)
exitShort = (close <= short_tp or close >= short_sl) and ta.rising(ema9, 2)
// Executing trades with improved risk management
if longCondition
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", from_entry="Long", stop=long_sl, limit=long_tp)
if shortCondition
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", from_entry="Short", stop=short_sl, limit=short_tp)
// Plotting
plot(ema9, color=color.blue, title="EMA 9")
plot(ema15, color=color.red, title="EMA 15")
plot(supply_zone, color=color.orange, title="Supply Zone")
plot(demand_zone, color=color.green, title="Demand Zone")