資源の読み込みに... 荷物...

3倍相対強度指数 定量的な取引戦略

作者: リン・ハーンチャオチャン,日付: 2024-05-15 10:23:08
タグ:RSISMA

img

概要

この戦略は,主に市場における過買い・過売条件を決定するために,相対強度指数 (RSI) を利用し,トレンドフィルターとして200日間のシンプルムービング・平均値 (SMA) 以上の価格を組み合わせ,取引を決定する.この戦略は3つのRSI指標を通じてエントリー条件を構築する.短期RSIが35を下回り,3期連続で下落傾向を示すとき,第三期RSIが60を下回り,現在の閉値が200日間のSMAを超えると,ロングになる.出口条件は,RSIが50を超えるとである.

戦略原則

  1. 指定された期間のRSI指標を計算する
  2. 次の輸入条件が満たされているかどうかを確認する.
    • 現在のRSIは35以下です
    • 前期RSIは前期RSIより低く,前期RSIは前期RSIより低く,前期RSIは前期RSIより低く,前期RSIは前期RSIより低く
    • 前期3期間のRSIは60未満
    • 現在の閉店価格が200日SMAより高い.
  3. 上記4つの条件が同時に満たされている場合,ロングポジションを開く.
  4. 保持期間中,RSIが50を超えると,ポジションを閉じる.
  5. 次の取引で 2-4 ステップを繰り返す

戦略 の 利点

  1. RSI を用いて,過剰購入と過剰販売の状況と過剰販売領域のポジションを決定し,市場の逆転の機会を把握することができます.
  2. 3つのRSIを組み合わせて入力信号を構成することで,誤った信号の確率を軽減し,信号の信頼性を向上させます
  3. 傾向条件として 200 日移動平均値以上の価格を追加すると,下落傾向での取引を避ける
  4. 脱出条件は単純で明確で, 利益の実現を時間内に可能にします
  5. 戦略の論理は明確で,理解し実行するのが簡単です

戦略リスク

  1. RSIインジケーターは信号遅延があり,最高のエントリータイミングを逃す可能性があります.
  2. 入場条件は比較的厳しいため,取引頻度が低く,市場動向が欠けている可能性があります.
  3. 市場が動揺している場合 市場が動揺している場合 市場が動揺している場合 市場が動揺している場合 市場が動揺している場合
  4. 戦略は一方的な上昇傾向のみを把握し,傾向逆転後の下落傾向を把握することはできません

戦略の最適化方向

  1. 単一の取引リスクを制御するために,トレーリングストップまたは固定ストップ損失を追加することを検討します.
  2. 入口・出口信号の信頼性とタイミングを向上させるために,RSIと他の補助指標の組み合わせを研究する.
  3. 信号の信頼性を確保しながら取引頻度を向上させるためのエントリー条件を最適化
  4. 傾向強度と不安定性に基づいてポジションを動的に調整するためのポジション管理を導入する
  5. 短期と中期を組み合わせて,異なる市場条件に適した戦略のバージョンを開発することを検討する

概要

この戦略は,トレンドフィルターとして長期移動平均値以上の価格と組み合わせて,トリプルRSIを通じてエントリー条件を構築し,過売り逆転セットアップをキャプチャします.戦略論理はシンプルで明確で,実装し最適化することは簡単です.しかし,この戦略には,シグナル遅延,低取引頻度,一方的な市場動きのみをキャプチャできるリスクや欠点もあります.実際の適用で継続的なデバッグと改善が必要です.ストップ損失と利益取得,ポジション管理,他の指標やその他の方法と組み合わせることで,戦略の安定性と収益性がさらに向上することができます.


/*backtest
start: 2023-05-15 00:00:00
end: 2024-05-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@author Honestcowboy
//
strategy("Triple RSI [Honestcowboy]" )

  
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> User Inputs <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

rsiLengthInput = input.int(5, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> VARIABLE CALCULATIONS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> CONDITIONALS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

rule1   = rsi<35
rule2   = rsi<rsi[1] and rsi[1]<rsi[2] and rsi[2]<rsi[3]
rule3   = rsi[3]<60
rule4   = close>ta.sma(close, 200)

longCondition = rule1 and rule2 and rule3 and rule4
closeCondition = rsi>50

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> GRAPHICAL DISPLAY <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

hline(30, title="Long Condition Line")
hline(50, title="Exit Condition Line")
plot(rsi)
plotshape(longCondition ? rsi-3 : na, title="Long Condition", style=shape.triangleup, color=color.lime, location=location.absolute)
plotshape(closeCondition and rsi[1]<50? rsi+3 : na, title="Exit Condition", style=shape.triangledown, color=#e60000, location=location.absolute)

// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> AUTOMATION AND BACKTESTING <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>

if longCondition and strategy.position_size==0
    strategy.entry("LONG", strategy.long)
if closeCondition
    strategy.close("LONG")

関連性

もっと