逆転RSIトレンド追跡ETF取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-01-22 17:15:18
タグ:

img

概要

この戦略は,相対強度指数 (RSI) をベースとした逆転トレンド追跡ETF取引戦略である.逆転エントリーと出口を行うために,RSI指標を通じて短期間の過剰購入および過剰売却状況を判断する.一方,全体的なトレンド方向性を決定するために200日移動平均を使用する.

戦略原則

この戦略の基本論理は,RSI指標の逆転原理に基づいている.RSI指標は,取引品種が過買いまたは過売れているかどうかを判断するために,上昇と減少の平均幅を計算する.70を超えるRSIは過買い状態を表し,30以下のRSIは過売れた状態を表します.この時点で,逆転傾向が発生することがあります.

この戦略は,今日のRSIが調整可能なパラメータを下回るときに購入トリガーを設定することによって,この原則を利用します.TodaysMinRSI3日前のRSIは調整可能なパラメータ以下ですDay3RSIMax価格が短期的な過売れ期間にあり,ブランスする可能性が高いことを示します.また,過去3日間の下向きのRSIトレンド,すなわち偽のブレイクを避けるために購入前に継続的なRSI減少が必要です.

戦略の退出メカニズムは,RSIインジケーターが調整可能なパラメータの限界値を再び超えたときです.Exit RSI復元が終わったと考えられ,その時点でポジションを閉じるべきである.

この戦略は,全体的なトレンド方向を判断するための200日移動平均値も導入している.価格が200日線を超える場合にのみ,ロングエントリーオーダーを行うことができる.これは上向きの段階での購入のみを確保し,反トレンド取引のリスクを回避するのに役立ちます.

利点分析

  • RSI インディケーターを使用して,リバウンドが起こりうる超買い・超売りゾーンを特定します.
  • 主要なトレンド方向を決定するために200日線を組み込む.これは反トレンド取引を避けるのに役立ちます.
  • RSI逆転取引の原則は,高成功率で古典的で信頼性があります.
  • 調整可能なパラメータは,異なる品種に最適化できる柔軟性を提供します.

リスク と 解決策

  • RSIインジケーターは,誤ったブレイクアウトの可能性があり,完全に取引を損なわないことができません.ストップロスは,単一の取引損失を制御するために設定できます.
  • 失敗した逆転は損失を増大させる可能性があります. 保持期間は,間に合ったストップ損失で短縮することができます.
  • 不適切なパラメータ設定は,過剰な攻撃性または過剰な保守性につながり,貿易機会を逃す可能性があります.パラメータはバックテストを通じて各品種に最適化する必要があります.

オプティマイゼーションの方向性

  • KDJ,ボリンジャー帯など他の指標を組み込み,インジケーターの組み合わせを形成し,信号の精度を向上させる.
  • ストップ・ロスのレベルをダイナミックにして損失を減らすために移動ストップ・ロスの戦略を追加します
  • 取引ごとにリスク露出を制御するために,ポジションサイズまたはマネーマネジメントモジュールを追加します.
  • 各品種に合うパラメータセットを出すために 異なる品種のためのパラメータとバックテストを最適化します

概要

この戦略は,逆転取引のための過剰購入および過剰販売ゾーンを判断することによって,クラシックなRSIエントリーと出口ポイントを利用する.一方,主要なトレンドとパラメータ最適化を考えると,非常に信頼性の高い短期逆転ETF戦略です.さらなる最適化により,実践的な効果を持つ量子戦略になり得ます.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 3m
basePeriod: 1m
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/
// @version = 5
// Author = TradeAutomation


strategy(title="R3 ETF Strategy", shorttitle="R3 ETF Strategy", overlay=true)


// Backtest Date Range Inputs // 
StartTime = input(defval=timestamp('01 Jan 2012 05:00 +0000'), title='Start Time')
EndTime = input(defval=timestamp('01 Jan 2099 00:00 +0000'), title='End Time')
InDateRange = true

// Calculations and Inputs //
RSILen = input.int(2, "RSI Length")
RSI = ta.rsi(close, RSILen)
TodaysMinRSI = input.int(10, "Today's Min RSI for Entry", tooltip = "The RSI must be below this number today to qualify for trade entry")
Day3RSIMax = input.int(60, "Max RSI 3 Days Ago for Entry", tooltip = "The RSI must be below this number 3 days ago to qualify for trade entry")
EMA = ta.ema(close, 200)

// Strategy Rules //
Rule1 = close>ta.ema(close, 200)
Rule2 = RSI[3]<Day3RSIMax and RSI<TodaysMinRSI
Rule3 = RSI<RSI[1] and RSI[1]<RSI[2] and RSI[2]<RSI[3] 
Exit = ta.crossover(RSI, input.int(70, "Exit RSI", tooltip = "The strategy will sell when the RSI crosses over this number"))

// Plot //
plot(EMA, "200 Day EMA")

// Entry & Exit Functions //
if (InDateRange)
    strategy.entry("Long", strategy.long, when = Rule1 and Rule2 and Rule3)
//    strategy.close("Long", when = ta.crossunder(close, ATRTrailingStop))
    strategy.close("Long", when = Exit)
if (not InDateRange)
    strategy.close_all()
    

もっと