이 전략은 주로 핀 바라는 특정 촛불 패턴을 인식함으로써 잠재적인 시장 반전 지점을 식별하는 것을 목표로 한다. 핀 바는 긴 그림자와 작은 몸으로 특징이며, 그 가격 수준에서 상당한 시장 변동성을 나타냅니다. 그러나 궁극적으로 가격은 다시 돌아갑니다. 이 수준이 지원 또는 저항으로 작용할 수 있음을 암시합니다. 이 전략은 현재 트렌드 방향을 결정하기 위해 50 기간 간 간단한 이동 평균 (SMA) 과 20 기간 간 볼륨 SMA를 필터로 사용합니다. 핀 바 신호가 유효한 것으로 간주되기 위해서는 볼륨이 이 평균 이상으로 간주되어야합니다. 또한, 상대 강도 지표 (RSI) 는 계산되지만 입출 조건에서 직접 사용되지 않으며 선택적 인 추가 조건 필터링으로 사용됩니다.
이 핀 바 반전 전략은 트렌드 필터링과 볼륨 필터링을 사용하여 신호 인식 정확성을 향상시키기 위해 간단하고 효과적인 접근 방식을 사용합니다. 개선할 여지가 있지만 전반적인 개념은 실현 가능하며 추가 최적화 및 테스트에 가치가 있습니다. 고전적인 가격 패턴으로서, 핀 바는 더 견고한 거래 시스템을 달성하기 위해 다른 지표 또는 신호와 결합 될 수 있습니다.
/*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)