MACD と RSI を組み合わせる振動市場における取引戦略

作者: リン・ハーンチャオチャン, 日時: 2023-09-13 15:14:43
タグ:

この戦略は"MACDとRSIインジケーターを組み合わせた振動市場向け取引戦略"と呼ばれる.これは,最近の振動と範囲の暗号市場のために特別に設計され,トレンドインジケーターMACDとモメントオシレーターRSIを統合することで取引信号を生成する.

MACDは移動平均収束分散指標で,市場の動向と逆転を判断する. MACDのクロスオーバーは,スローラインの上の高速線が購入信号を生成し,下のクロスオーバーは販売信号を生成する.

RSIは相対強度指数で,過剰購入および過剰販売状態を測定する. RSI 50 以上の値は過剰購入状態を示唆し,50 未満は過剰販売である.この戦略は,MACD からいくつかの騒々しい信号をフィルターするために RSI を使用する.

取引の論理は次のとおりです

MACDクロスオーバーがスローラインの上の高速線を横切ると,短期トレンドがダウンからアップに変化することを示しますが,RSIが低水準 (事前設定パラメータ以下) にある場合にのみ購入信号が確認されます.

MACDのクロスオーバーがスローラインの下の高速線を横切ると,短期的なトレンドが上から下へと逆転する信号が表示されますが,RSIが高水準に達したときにのみ販売信号が確認されます.

この戦略は,現在の振動し,変動する暗号市場に適しており,利益を得るための高低の逆転機会を捕獲する.しかし,単一の取引損失を制限するためにストップロスを適用する必要があります.また,MACDとRSIパラメータは,信頼できる信号のために市場調整された最適化が必要です.

結論として,MACD と RSI を組み合わせると,振動する市場における戦略の有効性が向上できます.しかし,どの指標も市場を完璧に予測することはできません.トレーダーは依然として健全な市場動向判断と柔軟な戦略調整が必要です.


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

//@version=5
strategy("Range Strat - MACD/RSI", 
     overlay=true,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=100, precision=2, initial_capital=100,
     pyramiding=2,
     commission_value=0.05)

// Make input options that configure backtest date range
startDate = input(title="Start Date", defval=13)
startMonth = input(title="Start Month", defval=6)
startYear = input(title="Start Year", defval=2022)

endDate = input(title="End Date", defval=1)
endMonth = input(title="End Month", defval=7)
endYear = input(title="End Year", defval=2200)

// Look if the close time of the current bar
// falls inside the date range
inDateRange = (time >= timestamp(syminfo.timezone, startYear,
         startMonth, startDate, 0, 0)) and
     (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))

// RSI Settings
length = input( 14 )
overSold = input( 55 )
overBought = input( 50 )
price = open
vrsi = ta.rsi(price, length)
cu = (vrsi <= overSold)
co = (vrsi >= overBought)

//MACD Settings
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ta.ema(open, fastLength) - ta.ema(open, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD
MACDco = ta.crossover(delta, 0)
MACDcu = ta.crossunder(delta, 0)

// Strategy Entry
if (not na(vrsi))
	if (inDateRange and MACDco and cu)
		strategy.entry("LONG", strategy.long, comment="LONG")
	if (inDateRange and MACDcu and co)
		strategy.entry("SHORT", strategy.short, comment="SHORT")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)



もっと