この戦略は,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)