Diese Strategie kombiniert die Ichimoku Cloud, kurzfristige (55) und langfristige (200) einfache gleitende Durchschnitte (SMA), um potenzielle Kauf- und Verkaufssignale zu identifizieren. Kaufsignale erfordern, dass der Preis über der Wolke und der langfristigen SMA liegt und den kurzfristigen SMA nach dem Überschreiten darüber erneut testet. Verkaufssignale erfordern, dass der Preis unter der Wolke und der langfristigen SMA liegt und den kurzfristigen SMA nach dem Überschreiten darunter erneut testet. Die Strategie vermeidet die Erzeugung von Signalen während von Rangiermärkten oder High-News-Ereignissen, da diese Perioden tendenziell mehr Fake-Outs haben.
Die Strategie beruht auf folgenden Grundsätzen:
Der Code berechnet zunächst die erforderlichen Ichimoku Cloud-Komponenten (Conversion Line, Base Line, Leading Span A und B), sowie die kurz- und langfristigen SMAs. Er definiert dann mehrere Bedingungen, um die Preisposition in Bezug auf die Cloud und gleitende Durchschnitte zu identifizieren. Wenn alle Kauf-/Verkaufsbedingungen erfüllt sind, generiert der Code Kauf- und Verkaufssignale.
Die
/*backtest start: 2023-05-11 00:00:00 end: 2024-05-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Ichimoku Cloud and Moving Average Strategy", shorttitle="ICMA", overlay=true) // Input parameters shortMA = input.int(55, title="Short-term Moving Average Length") longMA = input.int(200, title="Long-term Moving Average Length") // Calculate moving averages shortSMA = ta.sma(close, shortMA) longSMA = ta.sma(close, longMA) // Ichimoku Cloud settings conversionPeriod = input.int(9, title="Conversion Line Period") basePeriod = input.int(26, title="Base Line Period") spanBPeriod = input.int(52, title="Span B Period") displacement = input.int(26, title="Displacement") // Calculate Ichimoku Cloud components conversionLine = ta.sma(high + low, conversionPeriod) / 2 baseLine = ta.sma(high + low, basePeriod) / 2 leadSpanA = (conversionLine + baseLine) / 2 leadSpanB = ta.sma(high + low, spanBPeriod) / 2 // Plot Ichimoku Cloud components plot(leadSpanA, color=color.blue, title="Leading Span A") plot(leadSpanB, color=color.red, title="Leading Span B") // Entry conditions aboveCloud = close > leadSpanA and close > leadSpanB belowCloud = close < leadSpanA and close < leadSpanB aboveShortMA = close > shortSMA aboveLongMA = close > longSMA belowShortMA = close < shortSMA belowLongMA = close < longSMA // Buy condition (Price retests 55 moving average after being above it) buyCondition = aboveCloud and aboveLongMA and close[1] < shortSMA and close > shortSMA // Sell condition (Price retests 55 moving average after being below it) sellCondition = belowCloud and belowLongMA and close[1] > shortSMA and close < shortSMA // Strategy entry and exit strategy.entry("Buy", strategy.long, when = buyCondition) strategy.entry("Sell", strategy.short, when = sellCondition) // Plot moving averages plot(shortSMA, color=color.green, title="Short-term SMA") plot(longSMA, color=color.red, title="Long-term SMA") // Plot buy and sell signals plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")