Strategi ini terutama bertujuan untuk mengidentifikasi titik pembalikan pasar potensial dengan mengenali pola candlestick tertentu yang disebut Pin Bar. Pin Bar ditandai dengan bayangan panjang dan tubuh kecil, yang menunjukkan volatilitas pasar yang signifikan pada tingkat harga itu, tetapi pada akhirnya harga mundur, menunjukkan bahwa level tersebut dapat bertindak sebagai dukungan atau resistensi. Strategi ini menggunakan 50-periode Simple Moving Average (SMA) untuk menentukan arah tren saat ini dan 20-periode SMA volume sebagai filter, yang mengharuskan volume berada di atas rata-rata ini agar sinyal Pin Bar dianggap valid. Selain itu, Relative Strength Index (RSI) dihitung tetapi tidak langsung digunakan dalam kondisi masuk/keluar, melainkan berfungsi sebagai kondisi penyaringan tambahan opsional.
Strategi pembalikan Pin Bar ini menggunakan pendekatan yang sederhana dan efektif, menggunakan penyaringan tren dan penyaringan volume untuk meningkatkan akurasi pengenalan sinyal. Meskipun ada ruang untuk perbaikan, konsep keseluruhan layak dan layak dioptimalkan dan diuji lebih lanjut. Sebagai pola harga klasik, Pin Bar juga dapat dikombinasikan dengan indikator atau sinyal lain untuk mencapai sistem perdagangan yang lebih kuat.
/*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)