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

RSIとMAの組み合わせ戦略

作者: リン・ハーンチャオチャン開催日:2024年5月28日 17:34:11
タグ:RSIマルチエイマSMAHMAWMAストックルシ

img

概要

この戦略は,RSIインジケーターを移動平均値 (MA) と組み合わせて取引シグナルを生成する.RSIは市場がオーバーバイトかオーバーセールなのかを判断するために使用され,MAは価格動向を決定するために使用される.RSIがオーバーバイトで価格がMAを超えると購入シグナルが生成され,RSIがオーバーバイトまたはMAが死亡クロスを発生すると販売シグナルが生成される.さらに,戦略は補助判断としてストコスタスティックRSIインジケーター (StochRSI) を導入し,StockRSIがシグナルを生成するとプロンプトがチャートにマークされる.

戦略原則

  1. RSI指標の値を計算して,市場が過買い (>70) や過売り (<30) しているかどうかを判断します.
  2. カスタム期間のMAを計算し,EMA,SMA,HMA,WMAという4つのタイプを含み,パラメータ設定に基づいてチャートに表示するかどうかを決定します.
  3. RSIが過剰に買い上げられ,閉じる価格がMAより高くなった場合,買い信号が生成され,RSIが過剰に売り上げられた場合,またはMAが死亡クロスを生成した場合,売り信号が生成されます.
  4. 補助判断として StochRSI インディケーターを導入します. StochRSI が買い過ぎ (>70) または売り過ぎ (<30) の場合,チャートにプロンプトが表示されますが,実際の取引信号は生成されません.

戦略 の 利点

  1. 2つの古典的な指標であるRSIとMAの有機的な組み合わせにより,傾向の動きや過買い/過売の機会をよりよく把握できます.
  2. 許可の種類とパラメータは,高度な柔軟性をもって自由に設定され,異なる市場の特徴に応じて調整することができます.
  3. StochRSI指標を補助判断として導入することで,取引決定により多くの参考になる.
  4. コードロジックは明確で読みやすい 分かりやすい 副次開発です

戦略リスク

  1. RSIとMAは,遅れている指標であり,傾向逆転の初期段階では,より誤解を招く信号を生む可能性があります.
  2. パラメータの設定が正しくない場合,信号が早すぎたり遅すぎたりして生成され,全体的な収益に影響を与える可能性があります.
  3. ストップ・ロスの欠如とポジション管理は,市場の急激な変動によりリスクが高まる可能性があります.

戦略の最適化方向

  1. 傾向の変化を事前に予測するために 変動などのより主要な指標を導入します
  2. 信号の精度を高めるため,RSIとMAが同時に特定の条件を満たすように要求するような,買い・売る信号をフィルターする.
  3. ストップ・ロストとポジション管理モジュールを戦略に追加し,単一の取引リスクと全体的なリスクを制御する.
  4. 最適なパラメータの組み合わせを見つけるために戦略のパラメータ最適化を実行する.
  5. 異なるサイクルや複数の品種を追加することで,異なる品種やサイクル間のリンク関係を完全に利用できます.

概要

RSIとMAの2つのクラシック指標を組み合わせることで,この戦略はトレンド動きと過買い/過売りの機会を把握することができます.同時に,補助判断としてStockRSI指標を導入し,全体的な考え方はシンプルで明確です.しかし,戦略にはリスク管理措置の欠如や信号精度を向上させる必要性などのいくつかの欠点もあります.将来的には,より多くの指標を導入し,信号ルールを最適化し,リスク管理モジュールを追加し,より堅牢な収益を得るために戦略を改善することができます.


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

//@version=5
strategy("RSI Strategy with Customizable MA and StochRSI Alert", overlay=true)

// กำหนดค่า RSI สำหรับการเปิดสัญญาณซื้อและขาย
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")

// เลือกชนิดของเส้นค่าเฉลี่ยเคลื่อนที่
maType = input.string("EMA", title="MA Type", options=["EMA", "SMA", "HMA", "WMA"])

// กำหนดค่าเส้นค่าเฉลี่ยเคลื่อนที่
maShortLength = input(12, title="MA Short Length")
maLongLength = input(26, title="MA Long Length")

// เลือกการแสดงผลของเส้นค่าเฉลี่ยเคลื่อนที่
showShortMA = input(true, title="Show Short Moving Average")
showLongMA = input(true, title="Show Long Moving Average")

// ฟังก์ชันสำหรับเลือกชนิดของเส้นค่าเฉลี่ยเคลื่อนที่
f_ma(src, length, type) =>
    switch type
        "SMA" => ta.sma(src, length)
        "EMA" => ta.ema(src, length)
        "HMA" => ta.hma(src, length)
        "WMA" => ta.wma(src, length)

// คำนวณค่าเส้นค่าเฉลี่ยเคลื่อนที่
maShort = showShortMA ? f_ma(close, maShortLength, maType) : na
maLong = showLongMA ? f_ma(close, maLongLength, maType) : na

// คำนวณค่า RSI
rsiValue = ta.rsi(close, 14)

// สร้างสัญญาณซื้อและขาย
buySignal = (rsiValue > rsiOverbought and ((showShortMA and showLongMA and close > maShort and maShort > maLong) or (showShortMA and not showLongMA and close > maShort) or (showLongMA and not showShortMA and close > maLong)))
sellSignal = (showShortMA and showLongMA and ta.crossover(maLong, maShort)) or (showShortMA and not showLongMA and ta.crossover(maShort, close)) or (showLongMA and not showShortMA and ta.crossover(maLong, close))

// แสดงค่าเส้นค่าเฉลี่ยเคลื่อนที่บนกราฟ
plot(maShort, color=color.red, title="MA Short")
plot(maLong, color=color.green, title="MA Long")

// คำนวณค่า Stochastic RSI
smoothK = 3
smoothD = 3
RSIlen = 14
STOlen = 14
SRsrc = close
OSlevel = 30
OBlevel = 70

rsi1 = ta.rsi(SRsrc, RSIlen)
k = ta.sma(ta.stoch(rsi1, rsi1, rsi1, STOlen), smoothK)
d = ta.sma(k, smoothD)

stochRSIOverbought = OBlevel
stochRSIOversold = OSlevel

stochRSIBuyAlert = ta.crossover(k, stochRSIOversold)
stochRSISellAlert = ta.crossunder(k, stochRSIOverbought)

// สร้างคำสั่งซื้อและขายเมื่อมีสัญญาณจาก RSI และ MA เท่านั้น
if (buySignal)
    strategy.entry("Buy", strategy.long)
if (sellSignal)
    strategy.close("Buy")

// แสดงสัญญาณเตือนจาก Stochastic RSI บนกราฟ
plotshape(series=stochRSIBuyAlert, location=location.belowbar, color=color.green, style=shape.labelup, title="StochRSI Buy Alert")
plotshape(series=stochRSISellAlert, location=location.abovebar, color=color.red, style=shape.labeldown, title="StochRSI Sell Alert")

// แสดงสัญญาณซื้อและขายจาก RSI และ MA บนกราฟ
plotshape(series=buySignal, location=location.top, color=color.green, style=shape.triangleup, title="RSI>70")
plotshape(series=sellSignal, location=location.top, color=color.red, style=shape.triangledown, title="MA crossoverDown")


関連性

もっと