Diese Strategie basiert auf den Crossover-Signalen von EMA23 und EMA50 für den Handel. Wenn EMA23 über EMA50 überschreitet, erzeugt sie ein Kaufsignal und wenn sie darunter überschreitet, erzeugt sie ein Verkaufssignal. Die Strategie implementiert auch einen Stop-Loss für Long-Positionen, wenn der Preis unter EMA50 fällt und für Short-Positionen, wenn der Preis über EMA50 steigt. Darüber hinaus tritt die Strategie wieder in den Markt, wenn sich der Preis über EMA50 bewegt.
Diese Strategie ist eine quantitative Handelsstrategie, die auf dem Crossover von zwei gleitenden Durchschnitten, EMA23 und EMA50, basiert. Sie erfasst Trends durch die Crossover-Signale und implementiert Stop-Loss- und Re-Entry-Mechanismen, um das Risiko zu kontrollieren und das Gewinnpotenzial zu erhöhen. Die Strategie ist einfach und leicht zu verstehen und eignet sich für den mittelfristigen bis kurzfristigen Handel im 30-minütigen Zeitrahmen. Die Strategie hat jedoch auch einige Einschränkungen, wie z. B. die Rückstandserkennung, die suboptimale Stop-Loss-Platzierung und die schlechte Performance in den Rangiermärkten. In Zukunft kann die Strategie durch die Einführung mehrer technischer Indikatoren, die Optimierung von Stop-Loss-Positionen, die Kontrolle der Handelsfrequenz, die Unterscheidung zwischen Trending- und Rangiermärkten und die Implementierung dynamischer Take-Profit-Level optimiert werden, um robustere Renditen
/*backtest start: 2023-04-20 00:00:00 end: 2024-04-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy", overlay=true) // EMA 23 ve EMA 50'nin hesaplanması ema23 = ta.ema(close, 23) ema50 = ta.ema(close, 50) // Ana alım kuralı: EMA 23 ve EMA 50'nin yukarı kesilmesi buySignal = ta.crossover(ema23, ema50) // Ana satış kuralı: EMA 23 ve EMA 50'nin aşağı kesilmesi sellSignal = ta.crossunder(ema23, ema50) // Long pozisyon stop seviyesi longStopLoss = low < ema50 and close < ema50[1] // Short pozisyon stop seviyesi shortStopLoss = high > ema50 and close > ema50[1] // Long pozisyon için tekrar giriş kuralı longReEntry = high > ema50 and close > ema50 and close > ema50 and ema23 > ema50 // Short pozisyon için tekrar giriş kuralı shortReEntry = low < ema50 and close < ema50 and close < ema50 and ema23 < ema50 // Long işlemde kar alma seviyesi (%60) longTakeProfit = strategy.position_avg_price * 1.60 // Short işlemde kar alma seviyesi (%25) shortTakeProfit = strategy.position_avg_price * 0.75 // Long işlem için yeniden giriş koşulu longReEntryCondition = strategy.position_size <= 0 and longReEntry // Short işlem için yeniden giriş koşulu shortReEntryCondition = strategy.position_size >= 0 and shortReEntry // Geriye dönük test için başlangıç tarihi (01.01.2022) startDate = timestamp(2022, 01, 01, 00, 00) if (time >= startDate) if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) if (strategy.position_size > 0 and (longStopLoss or close >= longTakeProfit)) strategy.close("Buy") if (strategy.position_size < 0 and (shortStopLoss or close <= shortTakeProfit)) strategy.close("Sell") if (longReEntryCondition) strategy.entry("Buy", strategy.long) if (shortReEntryCondition) strategy.entry("Sell", strategy.short)