
Die Strategie ist ein automatisiertes Handelssystem, basierend auf der Theorie der doppelten Gleichgewichtsbrechung, kombiniert mit Risikomanagementfunktionen. Der Kern der Strategie verwendet einen Index-Moving Average (EMA) mit 21 und 50 Perioden als Signalindikator, um Markttrendänderungen durch Gleichgewichtskreuzung zu beurteilen und automatisch zu handeln. Das System integriert Stop-Loss- und Stop-Take-Profit-Funktionen, um das Risiko und die Gewinnziele für jeden Handel effektiv zu kontrollieren.
Die Kernlogik der Strategie basiert auf der klassischen Theorie der Gleichgewichtskreuzung in der technischen Analyse. Wenn die kurze Periode (die 21-Tage-EMA) nach oben über die lange Periode (die 50-Tage-EMA) geht, erkennt das System das als bullish Signal und nimmt eine Position ein. Wenn die kurze Periode (die 21-Tage-EMA) nach unten über die lange Periode (die 50-Tage-EMA) geht, erkennt das System das als bullish Signal und nimmt eine Position ein.
Es handelt sich um eine automatisierte Handelsstrategie, die durch eine Kombination aus linearer Kreuzung und strengem Risikomanagement vernünftig und logisch konzipiert ist. Die Strategie bietet einen zuverlässigen technischen Rahmen, um Markttrendchancen zu erfassen, während sie die Sicherheit des Handels gewährleistet. Obwohl ein gewisser Optimierungsraum besteht, ist die Infrastruktur der Strategie vollständig und geeignet für die Weiterentwicklung und Verbesserung der Grundmodule eines quantitativen Handelssystems.
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with SL & TP", overlay=true, default_qty_type=strategy.percent_of_equity)
// Input settings for SL and TP (ticks)
slTicks = input.int(40, title="Stop Loss (ticks)", minval=1)
tpTicks = input.int(80, title="Take Profit (ticks)", minval=1)
// Define EMA periods
ema21 = ta.ema(close, 21)
ema50 = ta.ema(close, 50)
// Detect crossovers
bullishCross = ta.crossover(ema21, ema50)
bearishCross = ta.crossunder(ema21, ema50)
// Plot the EMAs
plot(ema21, color=color.green, linewidth=2, title="EMA 21")
plot(ema50, color=color.red, linewidth=2, title="EMA 50")
// Calculate tick size in points
var float tickSize = syminfo.mintick
// Calculate stop loss and take profit prices for long and short positions
longSL = close - slTicks * tickSize
longTP = close + tpTicks * tickSize
shortSL = close + slTicks * tickSize
shortTP = close - tpTicks * tickSize
// Execute trades on crossover signals
if (bullishCross)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=longSL, limit=longTP)
if (bearishCross)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=shortSL, limit=shortTP)
// Plot arrows on crossovers
plotshape(series=bullishCross, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=bearishCross, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
// Optional: Background coloring
bgcolor(bullishCross ? color.new(color.green, 90) : na, title="Bullish Background")
bgcolor(bearishCross ? color.new(color.red, 90) : na, title="Bearish Background")