Dies ist eine Trend-Nachstrategie, die auf mehreren Zeitrahmen-EMA-Crossovers basiert. Die Strategie stützt sich hauptsächlich auf die Crossover-Beziehungen zwischen 20, 50 und 200-Perioden-Exponential Moving Averages (EMA) und Preis-EMA-Beziehungen, um Einstiegspunkte zu bestimmen, während prozentual basierte Take-Profit- und Stop-Loss-Level für das Risikomanagement berücksichtigt werden. Diese Strategie ist besonders effektiv auf größeren Zeitrahmen wie 1-Stunden-, Tages- und Wochencharts.
Die Kernlogik basiert auf einem mehrfachen gleitenden Durchschnittssystem und einer Preisbewegungsanalyse:
Das ist ein gut konzipierter Trend, der einer Strategie mit klarer Logik folgt. Durch die Kombination mehrerer technischer Indikatoren gewährleistet er sowohl die Zuverlässigkeit der Strategie als auch klare Risikomanagementlösungen. Die Strategie eignet sich besonders für größere Zeitrahmencharts und bietet einzigartige Vorteile bei der Erfassung mittelfristiger bis langfristiger Trends. Durch die vorgeschlagenen Optimierungsrichtungen besteht Raum für weitere Verbesserungen.
/*backtest start: 2024-10-28 00:00:00 end: 2024-11-27 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Cross Strategy with Targets and Fill", overlay=true) // Define EMAs ema20 = ta.ema(close, 20) ema50 = ta.ema(close, 50) ema200 = ta.ema(close, 200) // Plot EMAs (hidden) plot(ema20, color=color.blue, title="EMA 20", display=display.none) plot(ema50, color=color.red, title="EMA 50", display=display.none) plot(ema200, color=color.green, title="EMA 200", display=display.none) // Define the conditions priceCrossAboveEMA20 = ta.crossover(close, ema20) priceCloseAboveEMA20 = close > ema20 ema20AboveEMA50 = ema20 > ema50 ema50AboveEMA200 = ema50 > ema200 // Buy condition buyCondition = priceCrossAboveEMA20 and priceCloseAboveEMA20 and ema20AboveEMA50 and ema50AboveEMA200 // Plot buy signals plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") // Declare and initialize variables for take profit and stop loss levels var float longTakeProfit = na var float longStopLoss = na var float buyPrice = na // Update levels and variables on buy condition if (buyCondition) // Enter a new buy position strategy.entry("Buy", strategy.long) // Set new take profit and stop loss levels longTakeProfit := strategy.position_avg_price * 1.10 // Target is 10% above the buy price longStopLoss := strategy.position_avg_price * 0.95 // Stop loss is 5% below the buy price buyPrice := strategy.position_avg_price // Plot levels for the new trade plotTakeProfit = plot(longTakeProfit, color=color.green, title="Take Profit", linewidth=1, offset=-1) plotStopLoss = plot(longStopLoss, color=color.red, title="Stop Loss", linewidth=1, offset=-1) plotBuyPrice = plot(buyPrice, color=color.blue, title="Buy Price", linewidth=1, offset=-1) // Fill areas between buy price and take profit/stop loss levels fill(plotBuyPrice, plotTakeProfit, color=color.new(color.green, 90), title="Fill to Take Profit") // Light green fill to target fill(plotBuyPrice, plotStopLoss, color=color.new(color.red, 90), title="Fill to Stop Loss") // Light red fill to stop loss // Exit conditions strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=longTakeProfit, stop=longStopLoss)