複数のMACDとRSI戦略

作者: リン・ハーンチャオチャン開催日:2023年8月10日 (火) 14:03:47
タグ:

概要

マルチプルMACDとRSI戦略は,MACD指標とRSI指標のシグナルを包括的に利用する.両MACDの高速線と遅い線が両線を交差し,RSIが過買い値を下回り,両MACDの高速線と遅い線が両線を交差し,RSIが過売り値に入ると短くなります.

原則

この戦略は,シグナルを生成するために2つのMACDインジケーターを使用する.1つのMACDは高速長度10,スロー長度22およびMACD長度9のパラメータを有する.もう1つのMACDは高速長度21,スロー長度45およびMACD長度20のパラメータを有する.両MACDの高速線がスローラインを超越したとき,購入信号,両MACDの高速線がスローラインを下に横断したとき,販売信号を生成する.

この間,RSIインジケーターを組み込み,過剰購入および過剰販売状態を判断する.RSIパラメータは14に設定され,過剰購入レベルは70で,過剰販売レベルは20で,RSIが過剰購入レベル以下で購入し,RSIが過剰販売レベル以上になると販売することができます.

両MACDが購入信号を生成し,RSIがオーバー購入されていない場合にのみ,ロングエントリーが誘発される.両MACDが販売信号を生成し,RSIがオーバーセールゾーンに入る場合にのみ,ショートエントリーが誘発される.

利点

この戦略の最大の利点は,いくつかの誤った信号をフィルタリングするために二重MACD指標を使用し,MACDが両方の信号を出しているときにのみ入力することです.これは,利潤率を改善しながら,不必要な取引と取引頻度を削減します.

また,過買い/過売状況判断にRSIを組み込むことは,価格が既に強い傾向にあるときに,長/短を避けるため,損失リスクを軽減します.

この戦略は,MACDフィルタリングとRSI判断を組み合わせて,トレンド市場での取引のみを行い,中期トレンドから適正な利益を得ることができます.

リスク

この戦略にはいくつかのリスクもあります.ダブルMACDフィルタリングは価格逆転のタイミングを見逃し,損失を拡大させることがあります.MACDの両方が正のクロスでRSIが過剰に購入されていない場合,すでに底を逃して損失を引き起こす可能性があります.

また,MACD自体は取引市場の特徴に非常に敏感である.異なる取引サイクルや市場環境が有効になるためにMACDパラメータを調整する必要がある.パラメータが正しく設定されていない場合,誤った信号を生成し損失を引き起こす傾向がある.

さらに,RSIは多重の過買い/過売シグナルを生み出します.RSIが完全に逆転する前に早めに入ると損失を増やすことができます.

最適化

この戦略を最適化するためにいくつかの側面を考慮することができます:

  1. MACD パラメータを最適化し,異なる製品とタイムフレームのための最適なMACD パラメータ組み合わせを見つけるために,高速/遅いライン長さを調整し,信号効率を改善します.

  2. RSI パラメータを調整し,入場タイミングを最適化するために過買い/過売値を適度に短縮または拡大します.

  3. ストップ・ロスの戦略を追加して,引き下げが一定のレベルに達すると損失を削減し,さらなる損失を回避します.

  4. 突破点のような補助判断を加える事を検討し 進み込む前に 傾向をさらに確認します

結論

マルチプルMACDとRSI戦略は,シグナル有効性を向上させるためにMACD指標とRSI指標を2つ組み合わせ,中長期トレンド動から適正な利益を得ることができます.しかし,いくつかのリスクも伴います.MACDとRSIパラメータは,実際の取引に適用される前に,さらなるテストと最適化,リスク管理メカニズムを追加する必要があります.


/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-07 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MACDbl RSI", overlay=true)

fastLength = input(10)
slowlength = input(22)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = sma(MACD, MACDLength)
delta = MACD - aMACD

fastLength2 = input(21)
slowlength2 = input(45)
MACDLength2 = input(20)

MACD2 = ema(open, fastLength2) - ema(open, slowlength2)
aMACD2 = sma(MACD2, MACDLength2)
delta2 = MACD2 - aMACD2

Length = input(14, minval=1)
Oversold = input(20, minval=1)
Overbought = input(70, minval=1)
xRSI = rsi(open, Length)


if (delta > 0) and (year>2015) and (delta2 > 0) and (xRSI < Overbought)
    strategy.entry("buy", strategy.long, comment="buy")

if (delta < 0) and (year>2015) and (delta2 < 0) and (xRSI > Oversold)
    strategy.entry("sell", strategy.short, comment="sell")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

もっと