Diese Strategie ist ein umfassendes Handelssystem, das mehrere technische Analyseinstrumente kombiniert, wobei hauptsächlich doppelte EMAs (20⁄50Die Strategie verwendet eine Kombination aus Trendfolgen und Preisrückführungsmethoden, um die Genauigkeit des Handels durch mehrere Bestätigungen zu verbessern.
Die Kernlogik der Strategie beruht auf folgenden Schlüsselelementen: 1. Verwendet 20- und 50-Perioden-EMA-Crossovers, um die allgemeine Trendrichtung zu bestimmen 2. Verwendet Fibonacci-Retracement-Levels (23,6%, 38,2%, 50%, 61,8%) zur Identifizierung potenzieller Unterstützungs-/Widerstandsniveaus 3. Integriert Pivot Points (PP) und deren Unterstützungs-/Widerstandsniveaus (S1/S2, R1/R2) zur Bestätigung der wichtigsten Preisniveaus 4. Die Einreisebedingungen müssen gleichzeitig folgende Bedingungen erfüllen: - Kurzfristige EMA überschreitet die langfristige EMA (bei Longs) oder untersteigt sie (bei Shorts) - Der Preis liegt über/unter den entsprechenden Fibonacci-Leveln - Der Preis bestätigt die Unterstützung/Widerstandswerte des Drehpunkts 5. Implementiert für das Risikomanagement festgelegte Stop-Loss (30 Pips) und Take-Profit (60 Pips)
Diese Strategie integriert mehrere klassische technische Analyse-Tools, um ein relativ vollständiges Handelssystem aufzubauen. Obwohl es eine gewisse inhärente Verzögerung hat, verbessert der Mehrscheinlichkeitsbestätigungsmechanismus die Handelszuverlässigkeit. Durch die Implementierung von Optimierungsvorschlägen hat die Strategie das Potenzial, die Leistung im Live-Handel zu verbessern. Es wird empfohlen, gründliches Backtesting durchzuführen und die Parameter vor der Live-Einführung entsprechend spezifischen Marktmerkmalen anzupassen.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Forex Strategy with EMA, Pivot, Fibonacci and Signals", overlay=true) // Input for EMAs and Pivot Points emaShortPeriod = input.int(20, title="Short EMA Period", minval=1) emaLongPeriod = input.int(50, title="Long EMA Period", minval=1) fibRetraceLevel1 = input.float(0.236, title="Fibonacci 23.6% Level") fibRetraceLevel2 = input.float(0.382, title="Fibonacci 38.2% Level") fibRetraceLevel3 = input.float(0.5, title="Fibonacci 50% Level") fibRetraceLevel4 = input.float(0.618, title="Fibonacci 61.8% Level") // Function to calculate Pivot Points and Levels pivot(high, low, close) => pp = (high + low + close) / 3 r1 = 2 * pp - low s1 = 2 * pp - high r2 = pp + (high - low) s2 = pp - (high - low) [pp, r1, s1, r2, s2] // Calculate Pivot Points [pp, r1, s1, r2, s2] = pivot(high, low, close) // Calculate 20 EMA and 50 EMA emaShort = ta.ema(close, emaShortPeriod) emaLong = ta.ema(close, emaLongPeriod) // Plot the EMAs plot(emaShort, color=color.blue, title="20 EMA", linewidth=2) plot(emaLong, color=color.red, title="50 EMA", linewidth=2) // Fibonacci Levels (manually drawn between the most recent high and low) var float fibHigh = na var float fibLow = na if (not na(high[1]) and high > high[1]) // Check if new high is formed fibHigh := high if (not na(low[1]) and low < low[1]) // Check if new low is formed fibLow := low fib23_6 = fibLow + (fibHigh - fibLow) * fibRetraceLevel1 fib38_2 = fibLow + (fibHigh - fibLow) * fibRetraceLevel2 fib50 = fibLow + (fibHigh - fibLow) * fibRetraceLevel3 fib61_8 = fibLow + (fibHigh - fibLow) * fibRetraceLevel4 plot(fib23_6, color=color.green, linewidth=1, title="Fibonacci 23.6%") plot(fib38_2, color=color.green, linewidth=1, title="Fibonacci 38.2%") plot(fib50, color=color.green, linewidth=1, title="Fibonacci 50%") plot(fib61_8, color=color.green, linewidth=1, title="Fibonacci 61.8%") // Entry conditions (Crossovers) longCondition = ta.crossover(emaShort, emaLong) and close > fib23_6 and close > s1 shortCondition = ta.crossunder(emaShort, emaLong) and close < fib23_6 and close < r1 // Exit conditions (Stop Loss and Take Profit) stopLossPips = 30 * syminfo.mintick // 30 pips Stop Loss takeProfitPips = 60 * syminfo.mintick // 60 pips Take Profit if (longCondition) strategy.entry("Buy", strategy.long, stop=stopLossPips, limit=takeProfitPips) if (shortCondition) strategy.entry("Sell", strategy.short, stop=stopLossPips, limit=takeProfitPips) // Plot Pivot Points for visual reference plot(pp, color=color.yellow, linewidth=2, title="Pivot Point") plot(r1, color=color.purple, linewidth=1, title="Resistance 1") plot(s1, color=color.purple, linewidth=1, title="Support 1") plot(r2, color=color.purple, linewidth=1, title="Resistance 2") plot(s2, color=color.purple, linewidth=1, title="Support 2") // Adding Buy and Sell Signals plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small) plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)