資源の読み込みに... 荷物...

トレンドフィルタピンのバー逆転戦略

作者: リン・ハーンチャオチャン,日付: 2024-06-07 16:48:23
タグ:SMARSIPB

img

概要

この戦略は主に,ピンバーと呼ばれる特定のキャンドルスタイクパターンを認識することによって潜在的な市場逆転点を特定することを目的としています.ピンバーは,その価格レベルでの市場変動を意味する長い影と小さな体で特徴付けられていますが,最終的には価格が引き戻され,レベルがサポートまたはレジスタンスとして機能することを示唆します.この戦略は,現在のトレンド方向を決定するために50期シンプル・ムービング・平均値 (SMA) とフィルターとして20期SMAを活用し,ピンバー信号が有効とみなされるためには,ボリュームがこの平均値以上である必要があります.さらに,相対強度指数 (RSI) は計算されますが,直接入口/出口条件で使用されません.代わりにオプションのさらなる条件フィルタリングとして機能します.

戦略の原則

  1. まず,ピンバーの上下の影とボディの相対サイズを決定し,上下の影がキャンドルスタイルの全高低範囲の少なくとも60%で,ボディは30%を超えないようにする必要があります.
  2. ピンバーが上昇するか下落するか判断するために 閉店価格と開店価格を比較します
  3. 50 期間の SMA を使って,現在の傾向を特定し,閉じる価格が SMA を上回る場合,上昇傾向,下落傾向と考えます.
  4. 音量フィルターの限界値として20周期音量SMAを設定し,音量発生時の音量がこの値を超えると有効なPin Bar信号のみを考慮します.
  5. 特定された上昇と下落のピンバーをグラフ化します.
  6. 上昇するPin Barが現れるとロングポジションと下落するPin Barが現れるとショートポジションを入力します.
  7. ストップ・ロスはPin Barのボディの2倍に設定し,利益は3倍に設定します.ロングポジションでは,ストップ・ロスはPin Barの低値以下,利益は高値以上に設定します.ショートポジションでは逆です.

利点分析

  1. ピンバーは非常に直感的で効果的な価格逆転パターンで 市場の感情の突然の変化を正確に把握できます
  2. トレンドフィルターは,Pin Barの信号が現在のトレンド方向に一致することを保証し,信号の勝利率を大幅に改善します.
  3. ボリューム条件は,十分な流動性がない市場騒音をフィルタリングし,Pin Bar信号が十分な市場参加を保証します.
  4. ストップ・ロストとテイク・プロフィートのポジションは,ピンの特徴に基づいて設定され,合理的なリスク・リターン比を提供します.
  5. コードの論理とルールは 明確で分かりやすく 実行できます

リスク分析

  1. トレンドフィルタが効果が低い不安定な市場では,ピンバー信号の信頼性が大きく低下する可能性があります.
  2. ピンバーは,非常に強い下落または上昇のイベントに直面して失敗する可能性があります.
  3. 取引頻度は比較的低く,バックテストサンプルが不足する可能性があります.
  4. デフォルトパラメータは,特定の楽器や時間枠のためにさらなる最適化が必要になる可能性があります.
  5. 単一信号システムとして,全体的なリスクは比較的高い.

オプティマイゼーションの方向性

  1. 信号源を豊かにするためにインサイドバーなどの他の逆転パターンを導入することを検討します.
  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)


関連性

もっと