パラボリックSAR RSI逆転戦略は,潜在的な価格逆転を特定するために,
この戦略は主に2つの技術指標を利用しています.
パラボリック SAR: パラボリック SAR 線を動的ストップ・ロスの線としてプロットする.価格がこの線を突破すると,ストップ・ロスのラインの位置と方向がリセットされ,買い・売る信号が生成される.
RSI: 価格の上昇と減少の速度と変化を一段と反映する.70を超えると過買い区,30を下ると過売区である.
具体的には,この戦略は,ユーザー入力に基づいて,まずパラボリックSARの初期値,ステップ,最大値を設定します.その後,価格がSARラインを突破するか否かを判断して,エントリーと出口タイミングを決定します.
この戦略は,RSIが過買い/過売れゾーンにあるかどうかを判断するために,RSIを監視する.RSIが過買いゾーンに入るとロングポジションが閉鎖される.RSIが過売れゾーンに入るとショートポジションが閉鎖される.
SAR逆転信号とRSIフィルター信号を組み合わせることで,価格が逆転したときに,戦略は間に合って逆の動きを行い,低価格で高値で売り上げを達成することができます.
この逆転追跡戦略の主な利点は以下の通りである.
価格逆転をキャプチャする - 価格逆転時に逆転信号を生成し,反対の動きをするためにブレイクアウトを使用します.
ダイナミックストップ・ロス - SARは,利益を保護するためにリアルタイム価格に基づいてストップレベルを調整する移動ストップ・ロスとして動作します.
適応性 - 調整可能なパラメータにより,戦略は異なる市場環境に適応できます.
RSIフィルター - 偽のブレイクをフィルターし,間違った動きを避ける.
簡単に実装できる - コードが少ないシンプルな指標を使用し,簡単に実装されバックテストできます.
リスクには以下が含まれます.
Whipsaw Risk - 偽のブレイクが間違ったストップと逆信号を引き起こし,繰り返し損失を引き起こす.
オーバー最適化 - パラメータを最適化すると,オーバーフィットや強度が低下する可能性があります.
基本的根拠がない - 純粋に技術的指標によって動かされ,基本を無視する.
トランザクションコストを無視する - 頻繁な取引はトランザクションコストを増加させる.
価格ギャップの条件 - ギャップは誤ったストップ・リバース・シグナルを誘発する可能性があります.
戦略は次の側面から強化される:
他の指標と組み合わせる - 誤った信号を避けるために他の指標で信号を確認する. 音量指標を追加するなど.
パラメータチューニング - パラメータをテストし最適化して最適なパラメータの組み合わせを見つける.
ポジションサイズ - リスク制御のために市場状況に基づいてポジションサイズを調整する.
重要なレベルでの取引 - 頻度を減らすために,主要なサポート/レジスタンスレベル周辺での取引のみを行う.
基本要素を考慮する - 主要なトレンドに反して取引を避けるために基本要素を追加する.
逆転追跡戦略は,逆転を捕捉するためにSARとRSIを使用してシグナルを生成する. ブレイクアウトからの短期利益を捕捉するためにストップを動的に調整する.しかし,ノイズに従うリスクにも晒されている.パラメータを最適化し,意思決定品質を改善することで戦略の安定性と収益性が向上する.
/*backtest start: 2023-09-07 00:00:00 end: 2023-10-07 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // strategy("SARSI",overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_type = strategy.commission.percent, commission_value = 0.0675, initial_capital = 10000, currency = currency.USD, calc_on_order_fills = true, calc_on_every_tick = true) //study("SARSI",overlay = true) src = input(close, title="Source") len = input(14, minval=1, title="Length") rob = input(title="RSI Overbought Level", defval=82, minval=1, maxval=100) ros = input(title="RSI Oversold Level", defval=21, minval=1, maxval=100) start = input(title="SAR Start", defval=0.007, minval=0.001, maxval=10) inc = input(title="SAR Increment", defval=0.017, minval=0.001, maxval=100) max = input(title="SAR Maximum", defval=0.24, minval=0.01, maxval=10) asar = sar(start,inc,max) xrsi = rsi(close,len) date = timestamp(2018, 8, 1, 00, 00) up = crossunder(asar,src) dn = crossover(asar,src) //ob = crossunder(xrsi,rob) //os = crossover(xrsi,ros) strategy.entry("long", strategy.long, when=up and time>=date, comment="Long") strategy.entry("short", strategy.short, when=dn and time>=date, comment="Short") //strategy.close("long", when=ob) //strategy.close("short", when=os) alertcondition(up, "Long", "Long Msg") alertcondition(dn, "Short", "Short Msg") //uptrend=plotshape(up,"uptrend",shape.triangleup,color=#48A498,transp=0, size = size.tiny, location = location.belowbar,text="฿") //downtrend=plotshape(dn,"downtrend",shape.triangledown,color=#E25655,transp=0, size = size.tiny, location = location.abovebar,text="$") //plotshape(ob,"overbuy",shape.triangleup,color=#48A498,transp=0, size = size.small, location = location.belowbar,text="0฿") //plotshape(os,"oversell",shape.triangledown,color=#E25655,transp=0, size = size.small, location = location.abovebar,text="0$") plot(asar, style=cross, color=gray, transp=0, linewidth=1, title="SAR")