二方向ブレイクアウト逆転戦略 (Bidirectional Breakout Reversal Strategy) は,ピボットポイントに基づく価格アクション戦略である.潜在的な逆転機会を特定するために,いくつかのバー内の極端な価格レベルを検出する.価格がピボットを破ったときに逆転取引に入る.この戦略は,高波動性の市場に適しており,短期的な逆転を捕捉することができる.
双方向ブレイクアウト逆転戦略の基本論理は
使用pivothigh()
そしてpivotlow()
最新のnバー内の最高高と最低低をピボットとして計算します.ここでnは4に設定されています.
ストップ・ロスはピボットの高値を超えると,ストップ・ロスはピボットの高値以上に置かれます.
最低値がピホット・ローブを突破すると,ストップ・ロスはピホット・ローブ以下に置かれます.
価格がピボットを超えて逆転すると 前回の信号は無効になり 次の取引機会を待つ.
ストップ・ロスはリスクを制御します ストップ・ロスはリスクを制御します
双方向ブレイクアウト逆転戦略には以下の利点があります
シンプルで直感的な論理です
短期的な逆転を捉えるため,不安定な暗号市場に適しています.
分かりやすく 習得できます
10%の引き上げが低く リスクはコントロールされています
高い350%回帰率 シャープ比率は1以上
双方向ブレイクアウト逆転戦略には次のリスクもあります
持続的なトレンドでは,複数の小さなストップ損失が発生する可能性があります.
ピボットは逆転点ではないので,逆転が欠けているか不足する危険性がある.
価格がピボットを突破した直後に逆転しない可能性があります 損失を追いかけるリスクです
最近の4バーのピボットのみが必要で,サンプルサイズは小さすぎるかもしれません.
市場の流動性が無視され 大量の注文が価格に影響する
短いバックテスト期間で 長期的なパフォーマンスが不確実になります
双方向ブレイクアウト逆転戦略は,次の側面で最適化することができます:
十分なサンプルを避けるためにピホット期間を増加させ ダイナミック期間を考慮してください.
円盤を突破した後に追加的な確認信号を待って,誤った突破を避けます.例えば,より大きなボリューム,MACD偏差などです.
流動性条件に基づいてポジションサイズを動的に調整する.
傾向の指標を組み込むことで 傾向の変化を避けます
ストップ・ロスト・ムーブメントの戦略を 利益を追跡するために追加します
異なる製品に対して最適なパラメータを個別に試験する.
バックテスト期間を拡大し 信頼性を検証するために先物データを使用します
バイダイレクトブレイクアウトリバーサル戦略は,価格ピボットでリバーサルポイントを特定することによって短期的な機会を捉える.利点はシンプルなルール,低引き下げ,高いリターンである.しかし,見逃したリバーサルや損失を追いかけるようなリスクは存在する.サンプル期間を拡大し,リバーサル確認,ダイナミックストップなどを追加することで最適化することができます.長期的有効性を確保するために,より広範な検証が必要です.全体として,短期取引に熟練した定量トレーダーに適しています.
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("QuantNomad - Pivot Reversal Strategy - XBTUSD - 1h", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50) // // author: QuantNomad // date: 2019-06-01 // Pivot Reversal Strategy - XBTUSD - 1h // https://www.tradingview.com/u/QuantNomad/ // https://t.me/quantnomad // leftBars = input(4) rightBars = input(4) swh = pivothigh(leftBars, rightBars) swl = pivotlow(leftBars, rightBars) swh_cond = not na(swh) hprice = 0.0 hprice := swh_cond ? swh : hprice[1] le = false le := swh_cond ? true : (le[1] and high > hprice ? false : le[1]) if (le) strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", stop=hprice + syminfo.mintick) swl_cond = not na(swl) lprice = 0.0 lprice := swl_cond ? swl : lprice[1] se = false se := swl_cond ? true : (se[1] and low < lprice ? false : se[1]) if (se) strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)