
Die Strategie beurteilt potenzielle Marktwendepunkte hauptsächlich durch die Identifizierung einer bestimmten K-Linie-Form - der Pin Bar. Die Pin Bar ist eine K-Linie-Form, die aus langen Schattenlinien und kleinen Entitäten besteht, die darauf hindeutet, dass der Markt an diesem Punkt stark schwankt, aber letztendlich einen Preisrückzug aufweist, der zeigt, dass dieser Punkt möglicherweise ein Unterstützungs- oder Widerstandspunkt ist. Die Strategie verwendet einen 50-Zyklus-SMA (einfacher gleitender Durchschnitt) zur Beurteilung der aktuellen Trendrichtung und verwendet einen 20-Zyklus-SMA als Filterbedingungen für die Transaktionsmenge, die nur dann als ein wirksames Signal gelten, wenn der Pin Bar auftritt. Außerdem berechnet die Strategie einen relativ starken und schwachen Index (RSI), der jedoch nicht direkt für die Einstiegs- und Ausstiegsbedingungen verwendet wird, sondern als ein weiteres Filtermittel.
Die Pin-Bar-Umkehrstrategie verwendet eine einfache und effektive Idee, um die Genauigkeit der Signalerkennung durch Trend-Filterung, Transaktionsvolumen-Filterung usw. zu verbessern. Obwohl es derzeit noch einige Verbesserungsmöglichkeiten gibt, ist die Gesamtidee praktikabel und lohnt es sich, weiter zu optimieren. Die Pin-Bar selbst ist eine klassische Preisform und kann auch in Kombination mit anderen Indikatoren oder Signalen verwendet werden, um ein stabileres Handelssystem zu erhalten.
/*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)