Diese Strategie zielt in erster Linie darauf ab, potenzielle Marktumkehrpunkte zu identifizieren, indem ein spezifisches Kerzenmuster namens Pin Bar erkannt wird. Eine Pin Bar ist durch einen langen Schatten und einen kleinen Körper gekennzeichnet, was auf eine signifikante Marktvolatilität auf diesem Preisniveau hinweist, aber letztendlich zieht sich der Preis zurück, was darauf hindeutet, dass das Niveau als Unterstützung oder Widerstand fungieren kann. Die Strategie nutzt einen 50-Perioden-Simple Moving Average (SMA) zur Bestimmung der aktuellen Trendrichtung und einen 20-Perioden-SMA des Volumens als Filter, wobei das Volumen über diesem Durchschnitt liegen muss, damit ein Pin Bar-Signal als gültig angesehen werden kann. Zusätzlich wird der Relative Strength Index (RSI) berechnet, aber nicht direkt in Eintritts/Austrittsbedingungen verwendet, sondern dient stattdessen als optionale weitere Filterbedingungen.
Diese Pin Bar-Umkehrstrategie setzt einen einfachen und effektiven Ansatz ein, bei dem Trendfilterung und Volumenfilterung zur Verbesserung der Signalerkennungsgenauigkeit verwendet werden. Obwohl es Verbesserungsmöglichkeiten gibt, ist das Gesamtkonzept lebensfähig und lohnt sich weiter zu optimieren und zu testen. Als klassisches Preismuster kann die Pin Bar auch mit anderen Indikatoren oder Signalen kombiniert werden, um ein robusteres Handelssystem zu erzielen.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Filtered Pin Bar Strategy with Relaxed Volume", overlay=true) // Define the size of the pin bar's wick and body wickSize = 0.6 bodySize = 0.3 // Calculate the size of the wicks and body upperWick = high - math.max(open, close) lowerWick = math.min(open, close) - low body = math.abs(close - open) // Define a simple moving average to determine the trend smaLength = 50 sma = ta.sma(close, smaLength) // Define a more relaxed volume threshold volumeThreshold = ta.sma(volume, 20) * 1.0 // Define RSI parameters rsiLength = 14 rsiOverbought = 70 rsiOversold = 30 rsi = ta.rsi(close, rsiLength) // Define the conditions for a bullish pin bar bullishPinBar = (lowerWick > (wickSize * (high - low))) and (body < (bodySize * (high - low))) and (close > open) and (close > sma) and (volume > volumeThreshold) // Define the conditions for a bearish pin bar bearishPinBar = (upperWick > (wickSize * (high - low))) and (body < (bodySize * (high - low))) and (close < open) and (close < sma) and (volume > volumeThreshold) // Plot the bullish and bearish pin bars on the chart plotshape(series=bullishPinBar, title="Bullish Pin Bar", location=location.belowbar, color=color.green, style=shape.labelup, text="PB") plotshape(series=bearishPinBar, title="Bearish Pin Bar", location=location.abovebar, color=color.red, style=shape.labeldown, text="PB") // Entry and exit rules if (bullishPinBar) strategy.entry("Bullish Pin Bar", strategy.long) if (bearishPinBar) strategy.entry("Bearish Pin Bar", strategy.short) // Optional: Set stop loss and take profit stopLoss = 2 * body takeProfit = 3 * body strategy.exit("Exit Long", from_entry="Bullish Pin Bar", stop=low - stopLoss, limit=high + takeProfit) strategy.exit("Exit Short", from_entry="Bearish Pin Bar", stop=high + stopLoss, limit=low - takeProfit)