RSI インディケーターと200日SMAフィルターに基づく間接的な強度指数戦略

作者: リン・ハーンチャオチャン開催日:2023年12月12日 15:26:06
タグ:

img

概要

この戦略は,主に相対強度指数 (RSI) を用いて過買い・過売状況を判断し,200日単動平均 (200日SMA) を主要価格トレンドフィルターとして使用する.トレンド方向を決定する根拠として,RSI指標を使用して収益性を達成するためのより良いエントリー・エグジットタイミングを見つけます.RSI指標単独を使用すると比較して,この戦略はトレンド判断を高め,市場のトレンドをより正確に把握し,牛市で上昇と減少を追いかけて,熊市で逆のことをして,より高い戦略リターンを得ることができます.

戦略原則

この戦略は主に2つの部分で構成されています.RSI指標と200日SMAフィルターです.

RSI指標のセクションは,価格が過剰購入または過剰販売ゾーンに入ったかどうかを主に判断します.その計算式は:

RSI = 100 - 100 / (1 + RSI の上昇日の平均利益 / RSI のダウン日の平均損失)

経験的なパラメータによると,RSI < 30の場合,過剰販売, > 70の場合,過剰購入です.

200日SMAフィルターは主に市場の全体的な傾向方向を判断する.価格が200日SMAを超えると,それは牛市場であり,そうでなければそれは熊市場である.

上記の2つの判断に基づいて,戦略は次のエントリー&アウトリース論理を持っています.

ロングエントリー:RSI < 45 と閉じる価格 > 200 日SMA

長期出口:RSI > 75 閉じる価格 > 200 日SMA

短期入場:RSI > 65と閉じる価格 < 200日SMA

ショートアウト:RSI < 25 と Close 価格 < 200 日 SMA

したがって,戦略は,RSI指標の正確な判断を使用して,全体的なトレンドのより良いエントリーとアウトプットを見つけ,それによってより高い収益を達成します.

利点分析

この戦略の最大の利点は,RSIインジケーターと200日SMAフィルターの組み合わせを使用して,戦略をより安定して正確にすることです.

  1. 200日SMAは,市場全体の動向を効果的に判断し,単一のRSI指標の誤った判断を避ける.
  2. RSI インディケーターは,市場全体のトレンドの中でより良いエントリーと出口点を見つけることができます.
  3. 戦略操作は単純で実行が簡単です

さらに,この戦略には以下の利点があります.

  1. 株式指数,暗号通貨,貴金属を含む様々な製品に適用される
  2. 資本利用の効率が高い
  3. 単一の損失を効果的に制御するために,慎重にストップロスを追加することができます.

リスク分析

この戦略にはいくつかのリスクもあります:

  1. 市場全体における突然の調整は,より大きな損失につながる可能性があります
  2. RSI と SMA インディケーターには一定の遅れがある.
  3. 高い取引頻度は,より高い取引コストにつながります

これらのリスクを制御するために,次の措置が講じられます.

  1. 予期せぬ出来事の影響から守るため,位置サイズを適切に調整する
  2. RSI と SMA パラメータを最適化して遅延確率を減らす
  3. 取引の頻度を適切に調整し,取引コストを削減する

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

戦略は以下の側面で最適化できます.

  1. RSI パラメータを市場の変動に基づいて動的に調整する
  2. EMA のような他の移動平均指標がより良い結果をもたらすかどうかをテストする
  3. 自動ストップ損失メカニズムを増強
  4. ポジションサイズ化モジュールを追加し,資本に基づいてポジションを動的に調整します.
  5. より良いリターンを達成できるかどうかをテストするためにエントリーと出口ロジックを最適化します

結論

この戦略の全体的な性能は良好であり,正確な判断,単純な操作,幅広い適用性の利点があります.ストップ損失とポジションサイズを追加した後,ライブ取引で慎重に実行できます.パラメータ最適化,ストップ損失最適化,ポジションサイズなどのフォローアップ側面は戦略をさらに強化することができます.


/*backtest
start: 2023-12-04 00:00:00
end: 2023-12-11 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) https://creativecommons.org/licenses/by-nc-sa/4.0/
// © LuxAlgo

//@version=5

strategy('Relative Strength Index Extremes with 200-Day Moving Average Filte', overlay=true, pyramiding=1, initial_capital=10000, default_qty_type=strategy.cash, default_qty_value=36000, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.01)

// Rsi
rsi_lenght = input.int(14, title='RSI lenght', minval=0)
rsi_up = ta.rma(math.max(ta.change(close), 0), rsi_lenght)
rsi_down = ta.rma(-math.min(ta.change(close), 0), rsi_lenght)
rsi_value = rsi_down == 0 ? 100 : rsi_up == 0 ? 0 : 100 - 100 / (1 + rsi_up / rsi_down)


//Sma
Length1 = input.int(200, title='  SMA Lenght', minval=1)
SMA1 = ta.sma(close, Length1)

//Strategy Logic

Long = rsi_value < 45 and close > SMA1
Long_exit = rsi_value > 75 and close > SMA1

Short = rsi_value > 65 and close < SMA1
Short_exit = rsi_value < 25 and close < SMA1


if Long
    strategy.entry('Long', strategy.long)

if Short
    strategy.entry('Short', strategy.short)

strategy.close_all(Long_exit or Short_exit)

pera(pcnt) =>
    strategy.position_size != 0 ? math.round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss = input.float(title=' stop loss', defval=5, minval=0.5)
los = pera(stoploss)

strategy.exit('SL', loss=los)



//by wielkieef



もっと