この戦略は,Pivot Point 逆転戦略と Relative Strength Index (RSI) インジケーターを組み合わせ,RSI信号をチェックすることによって,Pivot レベルでの潜在的なトレンド逆転機会を検出します.
この戦略は,まず,いくつかのバーを左と右に見て,最も高いハイピボットと最も低いローピボットを見つけるために,主要なサポートとレジスタンスレベルを計算します.ピボットレベルが確立されると,RSIが過買いまたは過売条件を満たしているかさらにチェックします.特に,RSIがレジスタンスで過売線以下であれば,ロングエントリーで過売りとみなされます.RSIがサポートで過買いライン以上であれば,ショートエントリーで過買いとみなされます.これはRSIフィルターを使用して,偽ブレイクとトレンド逆転点でのより良いエントリータイミングを特定することができます.
詳細なコードは以下のとおりです.
この戦略の主な利点は以下の通りです.
トレンド確認:RSIは偽のブレイクをフィルタリングし,一時的な引き下げ中に誤ったエントリを回避します.
リスク管理: ストップは,よりよいリスク管理のために,主要なサポートとレジスタンスの近くに置かれます.
汎用性: 異なる製品と時間枠に適用できます.
単純化: 簡単な実施のための最低指標とパラメータ
データ効率:OHLCデータのみが必要で,データの質に敏感ではない.
潜在的なリスクは:
ピボット失敗リスク:大きな市場の変動中にキーレベルが破られ,戦略の失敗を引き起こす可能性があります.これは,ピボット範囲を拡大するために見直し期間を調整することによって軽減できます.
RSIの差異リスク:RSIは差異し,不安定な市場で過買い/過売りには効果的になり得ます.RSIパラメータを調整し,RSI信号の検証に追加のフィルターを追加することができます.
ストップ・ロスのリスク: ストップは,損失の増加につながる強いトレンド中にヒットすることができます.より広いストップ・ロスの距離は役立つかもしれませんが,利益とリスクをバランスする必要があります.
引き下げリスク: 戦略は,すべてのティックで実行され,不利な逆転時に引き下げに直面することができます.引き下げはリスク管理によって制御できます.
この戦略はいくつかの点で改善できる.
異なる左/右回転周期をテストし,精度を向上させるフィルターを追加することで,ピボット計算を最適化します.
RSI パラメータを最適化して過買い/過売りを検出し,異なる長さや
波動性指標などの 波動性のある市場での 波動を避けるために 追加のフィルターを追加します
利益とリスクをバランスするためにストップを最適化します. トレイリングストップやその他のダイナミックメカニズムを検討します.
ストップ損失範囲を決定するために,過去のデータ分析に基づく統計的なストップを使用する.
複数の期間を使って勝利率を上げるため,複数のタイムフレームの確認を追加します.
Go With The Trend RSI戦略は,潜在的なトレンドターニングポイントとRSIを組み合わせて,潜在的なトレンドターニングポイントを特定し,最適なエントリを見つける.ピボットまたはRSIのような単一のテクニックを使用すると比較して,この戦略は強度と一貫性を向上させる.パラメータとフィルターに対するさらなる最適化は,勝利率とリスク調整回帰を向上させる.全体として,短期トレンド逆転を取引するための実用的なシステムです.
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-07 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Pivot Point Reversal + RSI Strategy", shorttitle = 'PP + RSI Strategy', overlay=true) //////////// // Inputs // leftBars = input(3, title = 'PP - Left Bars') rightBars = input(3, title = 'PP - Right Bars') rsi_length = input(14, title = "RSI - Length") rsi_long = input(70, title = "RSI - Overbought level") rsi_short = input(30, title = "RSI - Overold level") ////////////////// // Calculations // // Pivot Points swh = pivothigh(leftBars, rightBars) swl = pivotlow(leftBars, rightBars) // Pivot High 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]) // Pivot Low 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]) // RSI rsi = rsi(close, 14) ////////////// // STRATEGY // if (le and rsi[rightBars] < rsi_long ) strategy.entry("PivRevLE", strategy.long, comment = "PivRSI Long", stop = hprice + syminfo.mintick) if (se and rsi[rightBars] > rsi_short) strategy.entry("PivRevSE", strategy.short, comment = "PivRSI Short", stop = lprice - syminfo.mintick)