トレンドフィルター付きピンバー反転戦略

SMA RSI PB
作成日: 2024-06-07 16:48:23 最終変更日: 2024-06-07 16:48:23
コピー: 2 クリック数: 631
1
フォロー
1617
フォロワー

トレンドフィルター付きピンバー反転戦略

概要

この戦略は,主に特定のK線形状であるピンバーを識別することによって,潜在的な市場逆転点を判断する.ピンバーは,長影線と小さな実体で構成されるK線形状であり,市場が大きな波動を起こすが,最終的に価格が引き戻し,そのポイントがサポートまたはレジスタンスポイントである可能性があることを示している.この戦略は,50周期の簡易移動平均 ((SMA)) を利用して,現在のトレンドの方向性を判断し,20周期のSMAを取引量フィルタリング条件として使用し,取引量がこの平均線よりも大きい場合のみ,取引量が有効な信号とみなされる.

戦略原則

  1. まず,Pin Barの上下影線と実体の相対的な大きさを判断し,上下影線または下影線がK線全体の高低点範囲の少なくとも60%であり,実体部分は30%を超えないように要求する.
  2. ピンバーは,閉盘価格と開盤価格の大きさを比較して,看板か看板かを判断する.
  3. 50サイクルSMAを使用して現在のトレンドを判断し,閉盤価格がSMA上にあるときは上昇トレンドとみなされ,逆に下降トレンドとみなされる.
  4. 20サイクル取引量SMAを取引量フィルター条件の値として,Pin Barの実現時にその値を超える取引量だけが有効な信号とみなされる.
  5. ピンバー (Pin Bar) について
  6. ピンバーが現れたときに多頭ポジションを開く. ピンバーが現れたときに空頭ポジションを開く.
  7. 止損設定はPin Barの実体サイズの2倍,止止は3倍である.多頭止損はPin Barの最低点の下にあり,止止は最高点上にある.空頭はその逆である.

優位分析

  1. ピンバーは,市場情緒の変化をより正確に捉えるための,非常に直感的で効果的な価格逆転形態である.
  2. トレンドフィルタリング条件は,Pin Bar信号と現在のトレンドの方向を一致させ,信号の勝利率を大幅に高めます.
  3. 取引量条件は,流動性の不足による市場騒音をフィルターし,ピンバー信号が十分な市場参加率を持つことを保証します.
  4. 止損と停止位置の設定は,Pin Bar自身の特性に基づいて,リスクと利益の相場が合理的である.
  5. コードロジックやルールは明確で,理解し,実行しやすい.

リスク分析

  1. ピンバーの信号の信頼性は,トレンドフィルタがあまり機能しないような,揺るぎない市場では,大きく下落する.
  2. このPin Barの機能は,テタリア空中やリドー事件の際に機能しなくなる可能性があります.
  3. 取引頻度が低いため,検査サンプルが不足している可能性があります.
  4. 特定の品種と周期では,デフォルトのパラメータをさらに最適化する必要があります.
  5. 単一の信号システムは全体的にリスクが高い.

最適化の方向

  1. 信号源を豊かにするために,内部Barなどの他の反転形状を同時に導入することも考えられます.
  2. ストップとストップの位置は,ATRなどの波動率指標を使用して,異なる市場状況に対応するために動的に調整できます.
  3. パーセンテージ・トラッキング・ストップ・ロスの方法によって,大を放つことができます.
  4. 経済カレンダーや重大事件などの基本的なデータを追加することで, 効果のない信号をフィルタリングできます.
  5. 資金管理モジュールを導入し,取引毎のリスクエッジを制御することを検討する.

要約する

このピンバー反転戦略は,シンプルで効果的な考え方を採用し,トレンドフィルター,取引量フィルターなどの方法によって信号識別の正確性を向上させています.現在,改善可能ないくつかの場所があるが,全体的な考え方は実行可能であり,さらなる最適化テストに値します.ピンバー自体は,クラシックな価格形態であり,他の指標または信号と組み合わせて,より安定した取引システムを得るために使用できます.

ストラテジーソースコード
/*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)