RSI,MACDとサポート/レジスタンスを組み合わせた定量取引戦略

作者: リン・ハーンチャオチャン, 日付: 2024-01-05 16:24:58
タグ:

img

概要

この戦略は,貿易信号判断のためのサポート/レジスタンスレベルと組み合わせた,RSIとMACD指標に基づいています.その名前は"パンダ・スティッキング・アウト・トゥング"戦略です.この戦略は,RSI指標を使用してオーバーバイト/オーバーセールレベルを決定し,MACD指標を使用してブイッシュ/ベアシストトレンドを決定し,過去100期間の最高値と最低値に基づいてサポート/レジスタンスレベルを描き,サポートに近い買い信号とレジスタンスに近い売り信号を生成します.これは一般的なトレンドフォロー戦略に属します.

戦略の論理

この戦略は主に2つの指標であるRSIとMACDに依存している.RSIインジケーターは過買い/過売状態を判断し,MACDインジケーターはバリース/ベアシス傾向状態を決定する.まず14期間のRSI値を計算し,過買いしきりに70と過売しきりに30を設定し,その後12日間の高速線,26日間のスローライン,および9日間のシグナルラインに基づいてMACD値を計算する.RSIが30未満は過売りとみなされ,RSIが70を超える場合は過買いとみなされる.MACDのゴールデンクロスは買い信号であり,デッドクロスは売り信号である.

さらに,この戦略は,過去100期間の最高値と最低値をサポート/レジスタンスレベルとして計算する. 購入信号が起動すると,価格は実際に購入注文を発行するにはサポートレベルに近い,つまりサポートレベルの1%以内である必要があります. 同様に,販売信号が起動すると,価格は実際に販売注文を発行するにはレジスタンスレベルより1%以内である必要があります.

戦略 の 利点

この戦略は,トレンド分析と過剰購入/過剰販売レベル検出を組み合わせ,単一の指標のみに依存する偽信号を避ける.サポート/レジスタンスフィルターを導入することで,主要なS/Rレベルに近いリバウンドによる間違った取引を減らすことができます.MACDとRSIの組み合わせにより,価格動向とOB/OSの状態を正確に特定できます.単純な移動平均戦略と比較して,この戦略は長期的な価格動向をより柔軟に把握することができます.

戦略 の リスク

この戦略の主なリスクは以下のとおりです.

  1. 逆転が終わってから入る傾向があるため,強いトレンドではほとんどの利益を見逃す可能性があります.

  2. RSI と MACD パラメータの設定が不適切であれば,間違った信号が発信される可能性があります.

  3. 単純なS/R検出論理は,実際のS/Rゾーンを過大評価または過小評価する可能性があります.

  4. ストップ・ロスのメカニズムがない 極端な市場状況で損失を効果的に制御できない

これらのリスクに対処するために,適応型MACD,最適化されたRSIパラメータ調整,改善されたS/R識別,市場体制モデリングなどの方法が戦略を改善するために使用できます.

改善 に 関する 指示

戦略は次の次元から強化される:

  1. ストップ・ロスのメカニズムを導入する.例えば CANVASストップ・ロスのメカニズム.

  2. ダイナミックパラメータ調節に適応型MACDを使用

  3. より科学的なS/R識別のために価格パターン認識を導入する

  4. 異なるパラメータを適応的に使用するための市場状態検出論理を確立するためにより多くのデータを組み込む

  5. 戦略をエンドツーエンドに最適化するために機械学習アルゴリズムを使用します

これらの改善により 引き上げをさらに削減し 戦略の安定性を高めることができます

結論

この戦略は,RSIとMACD指標を統合し,OB/OSの状態を決定し,トレンドフォローアプローチを表すサポート/レジスタンスレベルをめぐって取引する.サポート/レジスタンスフィルターを組み込むことでリスクは減少する.長期間保有に適した安定した信号と制御可能なリスクに利点がある.依然として,指標パラメータ,S/Rレンジなどのいくつかのコンポーネントは,収益性を向上させるためにさらに調整することができる.全体的に,容易な実装とリスク制御で市場のトレンドをフォローする良いパフォーマンスを示している.


/*backtest
start: 2023-12-28 00:00:00
end: 2024-01-04 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI + MACD with Support and Resistance", shorttitle="RSI_MACD_SR", overlay=true)

// Input for RSI and MACD values
rsiOverbought = input(70, title="RSI Overbought Threshold")
rsiOversold = input(30, title="RSI Oversold Threshold")
macdFastLength = input(12, title="MACD Fast Length")
macdSlowLength = input(26, title="MACD Slow Length")
macdSignalSmoothing = input(9, title="MACD Signal Smoothing")

// Calculating RSI and MACD
rsiValue = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing)

// Support and Resistance
support = ta.lowest(100)
resistance = ta.highest(100)

// Drawing support and resistance lines
// line.new(x1=bar_index[0], y1=support, x2=bar_index[-1], y2=support, color=color.green, width=1)
// line.new(x1=bar_index[0], y1=resistance, x2=bar_index[-1], y2=resistance, color=color.red, width=1)

// Buy Condition: If RSI is oversold and MACD line crosses above the signal line
// Additionally, check if price is near the support line
longCondition = ta.crossover(macdLine, signalLine) and rsiValue < rsiOversold and (close - support) < (close * 0.01)
strategy.entry("Long", strategy.long, when=longCondition, comment="Buy")

// Sell Condition: If RSI is overbought and MACD line crosses below the signal line
// Additionally, check if price is near the resistance line
shortCondition = ta.crossunder(macdLine, signalLine) and rsiValue > rsiOverbought and (resistance - close) < (close * 0.01)
strategy.entry("Short", strategy.short, when=shortCondition, comment="Sell")

// Plot values on the chart for visualization
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

もっと