高速RSI反転戦略


作成日: 2023-12-01 13:37:20 最終変更日: 2023-12-01 13:37:20
コピー: 1 クリック数: 645
1
フォロー
1619
フォロワー

高速RSI反転戦略 戦略の名前,概要,戦略原理,優位分析,リスク分析,最適化方向,要約などを含む,あなたの提供したコードと要求に基づいて書いたSEO記事です.

概要

この戦略は,急速RSI反転取引戦略であり,主な考えは,RSI指標がオーバーバイオーバーセールであるとき,短期反転の機会を判断することです. 3日RSIを指標としてオーバーバイオーバーセールを判断し,30日均線と組み合わせて突破シグナルを判断し,オーバーバイオーバーセールが反転したときにポジションを開きます.

戦略原則

この戦略は2つの指標を用いています.

  1. 3日目のRSIは,超買いと超売りを判断した.

  2. 30日平均線は反転信号の強さを判断する。反転K線実体が30日平均線の1/2より大きいとき,入場信号として。

特定の取引規則:

多頭シグナル:RSI指標は低値より小さい ((デフォルト25),そして現在のK線実体は30日平均線の半分より大きい.

空頭シグナル:RSI指標は高値 (デフォルト75) よりも大きく,現在のK線実体は30日平均線の半分以上で空っぽである.

ストップシグナル:多頭持有時にRSI指数で高位を突破するか,空頭持有時にRSI指数で低位を突破し,K線実体が30日平均線の半分以上で平仓する.

優位分析

この戦略の利点は以下の通りです.

  1. 短期RSIは,超買いと超売りを判断し,短期逆転の機会を迅速に捉えるのに役立ちます.

  2. 均線フィルターと組み合わせると,信号の信頼性が高くなり,振動の際には入を避けます.

  3. 撤退は制御可能で,最大撤退はそれほど大きくはない.

  4. ポジション管理のルールは明確で,頻繁にポジションを開くことはできません.

リスク分析

この戦略には以下のリスクもあります.

  1. 逆転が失敗するリスク. 買い過ぎと売り過ぎは必ずしも逆転とは限らない.

  2. トレンド状況での逆操作の損失リスク

  3. 検閲条件が厳しすぎて,入場機会が漏れやすい.

  4. 参数感度が高いため,RSI周期と実体周期は調整が必要である.

最適化の方向

この戦略は以下の点で最適化できます.

  1. RSIパラメータを最適化し,最適な周期を探します.

  2. 平均線パラメータを最適化して,最適な実体フィルタリング周期を探します.

  3. 移動ストップ,曲線ストップなどのストップ戦略を追加し,単一損失を制御する.

  4. 逆操作を避けるためのトレンド判断ルールを追加します.

要約する

この戦略は,全体として,短期反転を中心としたRSI戦略であり,高速RSI判断により超買い超売り捕獲反転,均線実体フィルターで確認され,撤回制御,ポジション制御の明確な利点があり,ショートライン操作に適していますが,反転失敗と逆転操作のリスクを注意する必要があります.最適化パラメータ,ストップ損失およびトレンド判断などの面で改善することができます.

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

//@version=3
strategy(title = "Noro's Fast RSI Strategy v1.0", shorttitle = "Fast RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
limit = input(25, defval = 25, minval = 1, maxval = 100, title = "RSI limit")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
src = close
fastup = rma(max(change(src), 0), 3)
fastdown = rma(-min(change(src), 0), 3)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
uplimit = 100 - limit
dnlimit = limit

//Body
body = abs(close - open)
emabody = ema(body, 30) / 2

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up = bar == -1 and fastrsi < dnlimit and body > emabody
dn = bar == 1 and fastrsi > uplimit and body > emabody
exit = ((strategy.position_size > 0 and fastrsi > dnlimit) or (strategy.position_size < 0 and fastrsi < uplimit)) and body > emabody

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()