RSIに基づく定量取引戦略


作成日: 2023-12-06 17:17:16 最終変更日: 2023-12-06 17:17:16
コピー: 0 クリック数: 543
1
フォロー
1619
フォロワー

RSIに基づく定量取引戦略

概要

この戦略は,双時間軸RSI反転と呼ばれています.これは,相対強度指数 (RSI) に基づく定量取引戦略である.この戦略は,購入と販売の信号として2つの異なる周期のRSIを使用し,低買い高売りを実現し,株価の反転がもたらす取引機会を取得します.

戦略原則

この戦略は,速い周期 (デフォルト55日) のRSIと遅い周期 (デフォルト126日) のRSIを使用して取引信号を構築する.速い周期のRSI上を通過すると買取信号が生成され,逆に,速い周期のRSI下を通過すると売出信号が生成される.このように,二つの異なる時間帯間の価格動力の相対的な強さを比較することによって,短期および長期のトレンド反転の機会を発見する.

シグナルが入った後,戦略はストップ・ストップ・ストラストを設定する. ストップ・ストラストは入った価格の0.9倍で,ストップ・ストラストは入った価格の3%で設定する. また,逆転シグナルが再現されたとき,現在のポジションを平準化する.

戦略的優位性

  • 短期と長期の価格トレンドの変化点を発見し,反転の機会を捉えるために,RSIの双方の比較を使用します.
  • 双RSIは偽の突破による騒音取引を排除する
  • ストップ・ストップ・ポイントを設定して,単一損失を制限します.

戦略リスク

  • RSI信号は,株価が激しく波動している時に頻繁に反転する可能性があります.
  • ストップポイントが小さすぎると,小さな振動の後でストップする可能性があります.
  • 双RSIのパラメータが正しく設定されず,大きな反転を逃している可能性があります.

戦略の最適化

  • RSIパラメータは,より多くの組み合わせをテストし,最適なパラメータを見つける
  • 偽突破信号を他の指標と組み合わせてフィルタリングできる
  • ストップダメージ比を動的に調整し,ストップダメージ比を柔軟に調整します.

要約する

この戦略は,二重時間軸RSI反転を,より速い周期とより遅い周期の2つのRSIの交差を取引信号として利用し,短期価格反転の機会を捉えることを目指しています.同時に,ストップ・ロスのルールを設定し,リスクを回避します.これは,指標の複数の時間軸を比較して価格反転の取引を実現する典型的な戦略です.最適化スペースは,パラメータ調整とリスク管理ルールの最適化にあります.

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

//@version=2
strategy(title="Relative Strength Index", shorttitle="RSI")
slen    = input(55, title="Short length")
llen    = input(126, title="Long length")
sup     = ema(max(change(close), 0), slen)
sdown   = ema(-min(change(close), 0), slen)
rsi1    = sdown == 0 ? 100 : sup == 0 ? 0 : 100 - (100 / (1 + sup / sdown))
lup     = ema(max(change(close), 0), llen)
ldown   = ema(-min(change(close), 0), llen)
rsi2    = ldown == 0 ? 100 : lup == 0 ? 0 : 100 - (100 / (1 + lup / ldown))
ob      = input(55, title="Overbought")
os      = input(45, title="Oversold")
tp      = input(.9, title="Take profit level %")*.01
sl      = input(3, title="Stoploss level %")*.01
mid     = avg(ob,os)
plot    (mid, color=#4f4f4f, transp=0)
hline   (ob, color=#4f4f4f)
hline   (os, color=#4f4f4f)
long    = crossover(rsi1,rsi2)
short   = crossunder(rsi1,rsi2)
vall    = valuewhen(long,close,0)
lexit1  = high>=(vall*tp)+vall
lexit2  = low<=vall-(vall*sl)
vals    = valuewhen(short,close,0)
sexit1  = low<=vals - (vals*tp)
sexit2  = high>=vals + (vals*sl)
bgcolor (color=long?lime:na,transp=50)
bgcolor (color=short?red:na, transp=50)
strategy.entry("Long", strategy.long, when=long)
strategy.close("Long", when=lexit1)
strategy.close("Long", when=lexit2)
strategy.close("Long", when=short)
strategy.entry("Short", strategy.short, when=short)
strategy.close("Short", when=sexit1)
strategy.close("Short", when=sexit2)
strategy.close("Short", when=long)
plot    (rsi1, color=orange, transp=0,linewidth=1, title="Short period RSI")
plot    (rsi2, color=aqua  , transp=0,linewidth=1, title="Long period RSI")