RSIレンジ取引戦略


作成日: 2023-11-06 16:12:23 最終変更日: 2023-11-06 16:12:23
コピー: 0 クリック数: 655
1
フォロー
1617
フォロワー

RSIレンジ取引戦略

概要

RSI区間振動トレード戦略は,RSIが超買い超売り区間に達する時に反転トレードを行い,価格の振動区間から利益を得る.この戦略は,価格が永遠に単一上下しないという仮定に基づいて,RSIが超買い超売りに達する時に価格の回調の機会をキャプチャすることによって利益を得る.

戦略原則

この戦略は,RSIの指標を計算して,価格が超買または超売区間に到達したかどうかを判断する.具体的には,戦略は,まずRSIの指標の長さを2サイクルで計算する.それから,RSIの超買線を91に設定し,超売線を11に設定する.RSI上の超売区間を突破すると空き,RSIの下の超売区間を突破すると多めにします.各取引のポジションは,最大ポジション比率パラメータに基づいて設定され,現在の固定値は5%です.

リスクを制御するために,戦略は,ストップ・ロスの技法も設定している.具体的には,オーバーの後に,価格が長引値の0.5%以上下方に移動した場合,平準ポジションをストップする.空白の後に,価格が0.5%以上上方に移動した場合,平準ポジションをストップする.これは,価格が急激に一方的な突破が発生した場合に伴う損失を回避する.

総じて,この戦略の核心的な論理は,RSI指標を監視し,価格を超買い超売りする状況を判断し,配置されたRSIパラメータに基づいて反転取引を行い,同時にリスクを制御するためにストップを設定することです.

優位分析

  • RSIは,超買いと超売りを判断する,より古典的で信頼性の高い取引シグナルです.

  • 反転取引は,価格が常に一方的に上昇または下落しないという仮定に適合する超買い超売,価格区間の振動から利益を得ることができる.

  • 単一取引の損失をコントロールするために,ストップ・ロスを設定します.

  • 戦略的フィードバックの枠組みはシンプルで明快で,理解し,修正しやすい.

  • RSIパラメータとストップ幅は,市場の変化に合わせて柔軟に設定できます.

リスク分析

  • RSIはトレンド指標として,揺れではなく継続的な価格トレンドが起こると,この戦略は連続的な損失を生む可能性があります.

  • RSIパラメータの設定が不適切であるため,取引信号が増加するが,勝利率は低い可能性があります.

  • ストップレスの設定が不適切であるため,ストップレスは価格が小さいか,単一の損失が大きすぎると触発される可能性があります.

  • この戦略は,反発する市場の状況に適しており,顕著なトレンドの市場では効果が悪くなることがあります.

  • ポジションの設定が大きすぎると,単一損失が拡大する可能性があります.

最適化の方向

  • 他の指標であるMACDなどとRSIとの組み合わせ信号を考慮して,取引決定の正確性を向上させることができます.

  • 異なるパラメータの下でRSIの統計的特性を研究して,その中で最適なパラメータの組み合わせを見つけることができます.

  • ポジション比率の動的調整機構を設定し,反測でその効果をテストすることができる.

  • ATRなどの指標で止損幅を計算することを考慮して,止損をより適応的にすることができる.

  • 機械学習などの手法と組み合わせて最適なパラメータの組み合わせを探します.

  • RSIと組み合わせた他の反転取引戦略を研究して,より安定した取引システムを作ることができます.

要約する

RSI区間振動トレード戦略は,価格超買い超売りを判断する簡単なRSI指標を使用して逆転取引を行い,損失制御リスクを設定する.この戦略は,振動反発の市場環境に適しており,区間価格変動を捕獲して利益を得る.しかし,RSIがトレンド指標としての限界もあります.この戦略は,傾向が明らかな市場には適していない可能性があります.パラメータ最適化,止損ルール改善,その他の指標と戦略の組み合わせなどの方法によって,この戦略の安定性と適応性を向上させることができます.全体的に,RSI区間振動トレード戦略は,参考に価値がありますが,実際の取引では,タイミングと最適化の使用が必要です.

ストラテジーソースコード
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple RSI Strategy", overlay=true)

var rsiLength = input(2, title = "rsi Length")
var float rsiBuyLevel = input(11, title = "What rsi level triggers a long")
var float rsiShortLevel = input(91, title = "What rsi level triggers a short")
var float maxRisk =  input(.05, title="Maximum risk/ trade")
var chartEntryStop = input(.005, title="Max Movment in the opposite direction / trade")
var float longEntryPrice = na
var float shortEntryPrice = na 
rsiValue = ta.rsi(close, rsiLength)

var float maxRiskValue = (strategy.equity * maxRisk) / chartEntryStop
var float maxRsi = 0

//Conditions


// Strategy Execution
if( close <= longEntryPrice-(longEntryPrice*chartEntryStop ))
    strategy.close("Long")

if( close >= shortEntryPrice+(shortEntryPrice*chartEntryStop ))
    strategy.close("Short")

if (rsiValue <= rsiBuyLevel and maxRsi == rsiShortLevel)
    maxRsi := rsiBuyLevel 
    strategy.close("Short")
    strategy.entry("Long", strategy.long)
    longEntryPrice := close
    
   
else if (rsiValue >= rsiShortLevel and maxRsi == rsiBuyLevel)
    maxRsi := rsiShortLevel
    strategy.close("Long")
    strategy.entry("Short", strategy.short)
    shortEntryPrice := close

else if (rsiValue >= rsiShortLevel )
    maxRsi := rsiShortLevel
    strategy.close("Long")

else if (rsiValue <= rsiBuyLevel )
    maxRsi := rsiBuyLevel
    strategy.close("Short")