RSI 反転ブレイクアウト戦略


作成日: 2023-10-08 14:16:57 最終変更日: 2023-10-08 14:16:57
コピー: 1 クリック数: 645
1
フォロー
1617
フォロワー

概要

RSI逆転突破策は,RSI指標を用いて,超買超売状況を識別し,価格が平均線を突破したときに逆転操作を行う策である.この策は,トレンドと超買超売指標を組み合わせて,株価が逆転シグナルが発生したときに操作し,株価の短期逆転の機会を捕捉することを目的としている.

戦略原則

この戦略は以下の原則に基づいています.

  1. RSIを用いて ((2) 株価がオーバーバイまたはオーバーセール状態にあるかどうかを判断する。RSIが25より小さいときはオーバーセールとみなされ,RSIが80より大きいときはオーバーバイとみなされる。

  2. 株価の長期トレンド方向を判断するために200日EMAを使用する.価格の上越しEMAは看板信号とみなされ,下越しEMAは下落信号とみなされる.

  3. RSIがオーバーソール信号を表示し,価格がEMAを突破すると,看板操作を行って,多額を行う.これは典型的な反転信号であり,株式価格がオーバーソール区域から脱却し,上昇を反発し始めることを示している.

  4. RSIがオーバーバイのシグナルを示し,価格がEMAを下回ったとき,下落操作を行い,空白を行う.これはまた,反転シグナルであり,株価がオーバーバイ領域から脱却し,下落を開始することを示す.

  5. この逆転操作により,株価が新たなトレンドに突入する前に,逆転の機会を捉えることができることを期待しています.

具体的には,策略の入場条件は,RSIが25未満で価格が上線を突破するときに多めにすること;RSIが80以上で価格が下線を突破するときに空きすることである.平仓条件は,当日の最高価格の下,取引日の最高価格の平仓である.

戦略的優位性

RSI反転の突破策は,トレンドと反転の要素を組み合わせ,以下の利点があります.

  1. 逆転の機会を捉える: RSIの判断により,過剰買いや過剰売りを判断することで,株価が逆転するタイミングを捉えることができます.これは,余剰利益を実現する鍵です.

  2. 順位はこうである:同時にEMAと組み合わせて大トレンドの方向を判断し,逆転操作を避ける。大トレンドの方向が一致する時にのみ反転信号を考慮する。

  3. リスク管理:逆転操作モードを採用し,各方向のポジション保持時間は長くはなく,リスクを管理することができる.

  4. パラメータの柔軟性:RSI周期とEMA周期は,市場の状況に応じて調整して最適化され,戦略をより適応的にすることができる.

  5. 取引頻度は適度:反転信号の出現頻度は適度で,過度に頻繁に取引したり,長時間無操作したりしない.

  6. シンプルで明快な: 戦略のルールが明確で,複雑ではない. リアルディスクで操作しやすい.

リスクと解決

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

  1. 逆転失敗リスク:逆転シグナルが発生した後に,株価は再び元の傾向に戻り,逆転失敗し,このとき戦略は損失を負う. ストップを採ることでリスクを制御することができます.

  2. 傾向がはっきりしないリスク:株価が明確な傾向がない場合,EMAは大きな方向をよく指図することができない.戦略は,より多くの不確実性を生み出す.

  3. パラメータ最適化リスク:RSIパラメータとEMA周期の選択は,戦略の効果に大きな影響を与える. optimize については,歴史データに基づいて繰り返しテストし,最適なパラメータを選択する必要があります.

  4. 過度最適化リスク:最適なパラメータの組み合わせを探しているときに,過度最適化され過度に適合する可能性がある.テスト中に効果が良いが,実盤で失敗するのを避けるために,安定性検査を行う必要があります.

  5. 取引頻度リスク:反転シグナルが頻度が高い場合,取引回数が多すぎます.取引頻度を制御するためにRSI周期パラメータを適切に調整できます.

戦略の最適化

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

  1. 株の質を評価する:株の基本指標を組み合わせて,質の良い株のみを選択して戦略操作を行う.

  2. 他の指標と組み合わせる:MACD,KDなどの他の指標を導入して,逆転信号を検証し,戦略の信頼性を高める.

  3. 動的調整パラメータ:市場環境の変化に応じてRSIパラメータとEMA周期を動的に調整することができ,戦略の適応性を向上させる.

  4. 入学タイミングの最適化: 特定の入学タイミングをさらに最適化します. 例えば,再入学のための反転確認を待つことです.

  5. ストップ・ストップ・戦略:合理的なストップ・レベルを設定し,利益への還元を避ける.

  6. 取引コストを考慮する: 取引の滑り点および他の取引コストが戦略に与える影響を評価する.

  7. 株価の変動率を考慮する: 戦略的目標として大きな変動株のみを考慮し,戦略をより信頼性のあるものにする.

要約する

RSI反転突破戦略は,トレンドと反転信号を統合し,株価が反転する前に場内に入り,大きなチャンスを捕まえます.戦略の取引頻度は適度で,リスクを効果的に制御できます.同時に,反転の失敗,過度の最適化などのリスクにも注意する必要があります.入場タイミングとストップストップ戦略を最適化することも,戦略の効果をさらに改善することができます.パラメータが適切に調整された場合,この戦略は,量化取引の有効な戦略の選択肢になることができます.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jocker.soad

//@version=4
// strategy("My Script", overlay=true, initial_capital=10000, default_qty_value=100)
min = input(title="Valor minimo de entrada", defval=25)
qtdAtivos = input(title="Quantidade de ações", defval=1)

// overBuyLine = hline(80)
// overSellLine = hline(min)

var comprado = false
var valorComprado = 0.0
var qtdDiasComprado = 0
var valorLucro = 0.0

valueRsi = rsi(close, 2)
valueSma = sma(close, 200)
valueEma = ema(close, 200)
lastHighPrice = high[2]

buyValidation = valueRsi <= min
sellValidation = close >= lastHighPrice



// plot(lastHighPrice, trackprice=true, offset=-99999, color=color.olive, linewidth=3, style=plot.style_area)
// plot(valueRsi)
// plot(valueSma)
// plot(valueEma)
// plotshape(sellValidation, style=shape.triangledown, color=color.blue)
// plotshape(comprado, style=shape.triangledown, color=color.blue)

startDate = input(title="Inicio Dia", type=input.integer, defval=1, minval=1, maxval=31)
startMonth = input(title="Inicio Mes", type=input.integer, defval=1, minval=1, maxval=12)
startYear = input(title="Inicio Ano", type=input.integer, defval=2018, minval=1800, maxval=2100)

endDate = input(title="Final Dia", type=input.integer, defval=1, minval=1, maxval=31)
endMonth = input(title="Final Mes", type=input.integer, defval=12, minval=1, maxval=12)
endYear = input(title="Final Ano", type=input.integer,  defval=2020, minval=1800, maxval=2100)

inDateRange = true

if inDateRange

    if close >= valueEma
    
        if comprado == false and buyValidation
            qtdDiasComprado := 0
            comprado := true
            valorComprado := close
            strategy.order("buy", true, qtdAtivos, when=buyValidation)
        
        if sellValidation and comprado == true
            comprado := false
            valorLucro := valorLucro + (close - valorComprado)
            valorComprado := 0
            strategy.order("sell", false, qtdAtivos, when=sellValidation)
        
        if comprado == true and sellValidation == false
            qtdDiasComprado := qtdDiasComprado + 1

// plot(valorLucro, color=color.lime)