
Bei der Strategie handelt es sich um ein Hochfrequenz-Handelssystem, das auf kurzfristigen EMA-Crossover-Signalen (Exponential Moving Average) basiert. Es kombiniert einen adaptiven Volatilitätsverfolgungsmechanismus mit dynamischem Positionsmanagement und strenger Risikokontrolle, um kurzfristige Marktschwankungen schnell zu erfassen. Die Strategie läuft in kürzeren Zeitrahmen wie 1 Minute oder 5 Minuten und ist für aktive Händler geeignet, die häufig nach Handelsmöglichkeiten suchen.
Die Kernlogik der Strategie basiert auf den Kreuzungssignalen der schnellen EMA (3 Perioden) und der langsamen EMA (8 Perioden). Wenn die schnelle Linie die langsame Linie unterschreitet, wird ein Long-Signal generiert; wenn die schnelle Linie die langsame Linie unterschreitet, wird ein Short-Signal generiert. Die Strategie verwendet den ATR-Indikator zur Messung der Marktvolatilität und legt Stop-Loss- und Gewinnziele entsprechend dynamisch fest. Das System unterstützt zwei Modi: Handel mit fester Kontraktmenge und dynamisches Positionsmanagement basierend auf dem Kontokapital. Im dynamischen Positionsmodus wird das Risiko jeder Transaktion auf 0,5 % des Kontokapitals begrenzt. Die Strategie verwendet ein Risiko-Ertrags-Verhältnis von 1,2 und kombiniert das 1,5-fache des ATR als Tracking-Distanz für den gleitenden Stop-Loss.
Diese Strategie baut durch die Kombination von kurzfristigen EMA-Crossover-Signalen und dynamischem Risikomanagement ein komplettes Hochfrequenzhandelssystem auf. Die Vorteile dieser Strategie liegen in einer schnellen Reaktion und einer strikten Risikokontrolle, allerdings muss auch auf Probleme wie Fehlsignale und Transaktionskosten geachtet werden. Durch kontinuierliche Optimierung und Parameteranpassung können Strategien besser an unterschiedliche Marktumgebungen angepasst werden und die Handelseffizienz und -stabilität verbessern.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("High-Frequency EMA Scalping Strategy - Adjustable Contracts", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)
// Input parameters
fastEmaLength = input.int(3, title="Fast EMA Length", minval=1)
slowEmaLength = input.int(8, title="Slow EMA Length", minval=1)
atrLength = input.int(10, title="ATR Length", minval=1)
riskRewardRatio = input.float(1.2, title="Risk/Reward Ratio", minval=1)
useDynamicPositionSizing = input.bool(false, title="Use Dynamic Position Sizing?")
fixedContracts = input.int(1, title="Number of Contracts (if Fixed)", minval=1) // Fixed number of contracts
// Calculate EMA values
fastEma = ta.ema(close, fastEmaLength)
slowEma = ta.ema(close, slowEmaLength)
// Calculate ATR for dynamic stop-loss and take-profit
atr = ta.atr(atrLength)
// Dynamic position sizing (if enabled)
capital = strategy.equity
riskPerTrade = capital * 0.005 // Risk 0.5% per trade
dynamicTradeQty = riskPerTrade / (atr * 1.5)
// Use fixed or dynamic position sizing
tradeQty = useDynamicPositionSizing ? dynamicTradeQty : fixedContracts
// Entry conditions
longCondition = ta.crossover(fastEma, slowEma)
shortCondition = ta.crossunder(fastEma, slowEma)
// Long trade execution
if longCondition
risk = atr * 1.0
reward = risk * riskRewardRatio
strategy.entry("Long", strategy.long, qty=tradeQty)
strategy.exit("Trailing Stop Long", from_entry="Long", trail_points=atr * 1.5, trail_offset=atr * 1.0)
strategy.exit("Take Profit", from_entry="Long", limit=close + reward, stop=close - risk)
// Short trade execution
if shortCondition
risk = atr * 1.0
reward = risk * riskRewardRatio
strategy.entry("Short", strategy.short, qty=tradeQty)
strategy.exit("Trailing Stop Short", from_entry="Short", trail_points=atr * 1.5, trail_offset=atr * 1.0)
strategy.exit("Take Profit", from_entry="Short", limit=close - reward, stop=close + risk)
// Plot EMA lines for reference
plot(fastEma, color=color.blue, title="Fast EMA")
plot(slowEma, color=color.red, title="Slow EMA")