RSI トレーディング戦略のMACD

作者: リン・ハーンチャオチャン開催日:2023年9月21日 20:48:50
タグ:

概要

この戦略は,RSI指標のトレンドを決定するためにMACD指標を使用し,取引シグナルを生成します.これは指標コンボフィルター戦略タイプに属します.

戦略の論理

この戦略は2つの主要指標に基づいています.

  1. RSI 定期的な14期RSIを計算します

  2. RSIのMACD RSIのMACD値を計算します.デフォルトの高速MA12と遅いMA26と信号線9で.

RSIのMACDが上昇し,速いMASと遅いMASの黄金十字が交差すると,上昇傾向が決定し,ロングになります.

MACDがダウンし,速いMASと遅いMASがダウンし,ダウントレンドが決まり,ショートになる.

MACDの指数関数移動平均値は,RSI自身の長期トレンドを決定し,より正確な信号を生むのに役立ちます.

利点

  • MACDは,より高い精度のためにRSIのトレンド方向を判断します.
  • 主要指標としてRSI,次要指標としてMACD
  • 指数関数MAsは傾向決定を安定させる
  • 組み合わせは互いに確認し,ウィプソーを避けます
  • パラメータ調整は,異なる市場に柔軟性を提供します

リスク

  • RSI と MACD の両方が遅滞し,不正確な信号につながる可能性があります.
  • 誤ったMACDパラメータは,より多くの誤った信号を生む可能性があります.
  • 純粋に指標に基づいた,突然の出来事に敏感
  • ストップ・ロスのメカニズムはさらなる改善が必要です
  • 異なる製品に対して必要なパラメータ最適化

リスクは以下によって軽減できます.

  • RSI と MACD パラメータの組み合わせを最適化
  • 確認のための他のフィルターを追加する
  • TP/SLを緩め,早期離脱を避ける
  • 再入国を検討する
  • 単一の損失を制限するためのポジションサイズ

改善の方向性

戦略は以下から改善できます.

  1. RSI と MACD パラメータの組み合わせをテストする

  2. MACD 信号が表示されたときに二次確認を追加する

    例えば,キャンドルスタイルのパターン,ボリューム,ボリンジャー帯など

  3. ストップをトラッキングストップに最適化

  4. 再入国規則の追加

    トレンドが続く場合,ストップがヒットした後,ポジションを再確立する.

  5. 波動性によるポジションサイズ調整

    波動性が高い場合のサイズが小さく,波動性が低い場合のサイズが大きい

概要

この戦略は,RSIとMACD指標を組み合わせ,より正確で安定したトレンド検出のために互いに検証する.しかし,パラメータは最適化が必要であり,突然の出来事を避けるため,確認のために追加の技術フィルターまたは取引ルールが必要である.また,ストップ損失メカニズムとダイナミックなポジションサイズも重要です. 継続的な学習と最適化は,安定した利益のために変化する市場状況に適応するために重要です.


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

//@version=3

strategy(title = "MACD of RSI", overlay = false)

//////////////////////// RSI ///////////////////////////

src = close, len = input(14, minval=1, title="Length")
up = sma(max(change(src), 0), len)
down = sma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))


//////////////////////// RSI   //////////////////////////

//////////////// MACD  ////////////////////////////

sourcemacd = rsi 

fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)


fastMA = ema(sourcemacd, fastLength)
slowMA = ema(sourcemacd, slowLength)

macd = fastMA - slowMA
signal = ema(macd, signalLength)
delta=macd-signal

swap1 = delta>0?green:red

plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20)
p1 = plot(macd,color=blue,title='MACD Line')
p2 = plot(signal,color=red,title='Signal')
fill(p1, p2, color=blue)
hline(0)




/////////////////////////MACD  //////////////////////////


// Conditions



longCond = na
sellCond = na
longCond :=  crossover(delta,0)
sellCond :=  crossunder(delta,0)




monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  longCond  ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( sellCond   ) 

    strategy.close("BUY")







もっと