この戦略は主に,ピンバーと呼ばれる特定のキャンドルスタイクパターンを認識することによって潜在的な市場逆転点を特定することを目的としています.ピンバーは,その価格レベルでの市場変動を意味する長い影と小さな体で特徴付けられていますが,最終的には価格が引き戻され,レベルがサポートまたはレジスタンスとして機能することを示唆します.この戦略は,現在のトレンド方向を決定するために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)