Diese Strategie ist ein Trend-Nachhandelssystem, das EMA-Crossover-Signale mit dynamischem Risikomanagement kombiniert. Es verwendet schnelle und langsame exponentielle gleitende Durchschnitte (EMA) zur Identifizierung von Markttrends und enthält den Indikator Average True Range (ATR) zur Optimierung des Einstiegszeitpunkts. Die Strategie integriert auch drei Schutzschichten: prozentual basierenden Stop-Loss, Take-Profit und Trailing-Stop.
Die Kernlogik beruht auf folgenden Schlüsselelementen:
Dies ist ein gut konzipierter Trend nach Strategie mit klarer Logik. Er erfasst Trends durch EMA-Crossovers, verwaltet Risiken mithilfe von ATR und enthält mehrere Stop-Loss-Mechanismen, um ein komplettes Handelssystem zu bilden. Die Hauptvorteile der Strategie liegen in ihrer umfassenden Risikokontrolle und hoher Anpassbarkeit, aber es muss auf falsche Signale und Transaktionskosten im Live-Handel geachtet werden. Durch die vorgeschlagenen Optimierungsrichtungen besteht Raum für eine weitere Verbesserung der Strategie.
/*backtest start: 2024-12-29 00:00:00 end: 2025-01-05 00:00:00 period: 2m basePeriod: 2m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © jesusperezguitarra89 //@version=6 strategy("High Profit Buy/Sell Signals", overlay=true) // Parámetros ajustables fastLength = input.int(5, title="Fast EMA Length") slowLength = input.int(20, title="Slow EMA Length") atrLength = input.int(10, title="ATR Length") atrMultiplier = input.float(2.5, title="ATR Multiplier") stopLossPercent = input.float(1.0, title="Stop Loss %") takeProfitPercent = input.float(5.0, title="Take Profit %") trailingStop = input.float(2.0, title="Trailing Stop %") // Cálculo de EMAs fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) // Cálculo del ATR atr = ta.atr(atrLength) // Señales de compra y venta longCondition = ta.crossover(fastEMA, slowEMA) and close > slowEMA + atrMultiplier * atr shortCondition = ta.crossunder(fastEMA, slowEMA) and close < slowEMA - atrMultiplier * atr // Dibujar señales en el gráfico plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Estrategia de backtesting para marcos de tiempo en minutos if longCondition strategy.entry("Buy", strategy.long) strategy.exit("Take Profit", from_entry="Buy", limit=close * (1 + takeProfitPercent / 100), stop=close * (1 - stopLossPercent / 100), trail_points=atr * trailingStop) if shortCondition strategy.entry("Sell", strategy.short) strategy.exit("Take Profit", from_entry="Sell", limit=close * (1 - takeProfitPercent / 100), stop=close * (1 + stopLossPercent / 100), trail_points=atr * trailingStop) // Mostrar EMAs plot(fastEMA, color=color.blue, title="Fast EMA") plot(slowEMA, color=color.orange, title="Slow EMA")