RSI 피보나치 리트랙트 전략은 RSI 지표와 설정된 피보나치 리트랙트 레벨의 교차를 거래 신호로 계산하여, 과매도 영역에서 역전이 발생했을 때 출전하는 트렌드 추적 전략에 속한다.
이 전략은 RSI 지표와 피포나치 리모델링 레벨의 교차 구현을 기반으로 합니다. 먼저 RSI 지표의 값을 계산하고 피포나치 리모델링 레벨을 설정합니다. (38.2%, 50%, 61.8%), RSI 지표가 피포나치 리모델링 레벨을 통과 할 때 구매 신호를 생성하고, 아래로 통과 할 때 판매 신호를 생성합니다.
RSI 지표는 시장이 과매도 또는 과매도인지 판단하는 데 사용됩니다. RSI가 70보다 크면 과매도 영역이며, 30 미만일 경우 과매도 영역입니다. RSI가 과매도 영역에서 피보나치 회귀 영역으로 내려갈 때, 반전 신호에 속하며, 더 많이합니다.
피보나치 회귀 지역은 이 전략에서 주로 참고로 사용되며 RSI와 거래 신호를 형성한다. 추세 시장에서 회귀 후의 계속 운행은 종종 피보나치 회귀 레벨을 접촉하며, 이러한 레벨은 지원 저항에 해당한다. RSI와 교차하는 것은 거래 신호로 사용되어 반전 기회를 잡을 수 있다.
RSI를 사용하여 과매매를 판단하고, 피보나치 회귀 영역과 함께 반전 기회를 잡을 수 있으며, 일부 소음을 필터링 할 수 있습니다.
트렌드 추적 성질, 중장선 트렌드를 잡을 수 있다.
피포나치 리콜 영역을 조정하여 다른 시장 상황에 적응할 수 있다.
다중 공백 지위를 보유하는 기간은 길어질 수 있으며, 충분한 자금 지원이 필요합니다.
회귀 과정에서 다시 고탐사 바닥 현상이 발생할 수 있으며, 위험을 제어하기 위해 스톱저를 설정해야 한다.
잘못된 매개 변수 설정으로 거래가 빈번하게 이루어지거나 충분한 역전 기회를 잡지 못할 수 있습니다.
다른 지표와 결합하여 필터링 시기를 고려할 수 있다. 예를 들어 MACD, 브린 띠와 같은 지표가 트렌드 방향을 판단한다.
RSI 변수와 피보나치 리콜 영역 설정을 최적화할 수 있다.
이윤을 고정하기 위해 동적 스톱로스를 설정할 수 있다.
RSI 피보나치 회귀 전략은 전체적으로 트렌드 추적 전략으로 좋은 안정성을 갖는다. 단일 RSI 전략에 비해 피보나치 회귀 구역을 추가하면 잡음 거래의 일부를 효과적으로 필터링 할 수 있다. 매개 변수를 최적화하여 다른 시장의 거래 품종에 적응할 수 있다.
/*backtest
start: 2022-12-22 00:00:00
end: 2023-12-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// (c) ReduX_o, 2019. All rights reserved.
//
// How to trade:
// The indicator is more reliable in longer time frames
// Choose a fibonacci level as reference
// Buy when the RSI line turns green
// Sell when the RSI line turns red
//@version=4
strategy("RSI Fibonacci Levels", overlay=false, initial_capital=2000, currency=currency.USD, commission_value=0.1, slippage=0, commission_type=strategy.commission.percent, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len = input(14, minval=1, title="Rsi Periods")
f1 = input(title="Fibonacci Level", defval="38.2", options=["38.2", "50", "61.8"])
// === BACKTEST RANGE ===
FromYear = input(defval=2010, title="From Year", minval=2010)
FromMonth = input(defval=1, title="From Month", minval=1)
ToYear = input(defval=2020, title="To Year", minval=2010)
ToMonth = input(defval=1, title="To Month", minval=1)
src = hl2
fi= (f1 == "38.2") ? 38.2 : (f1 == "50")? 50 : 61.8
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
//***************************************************
rcolor = rsi >= fi ? color.lime : color.red
plot(rsi, title="RSI", color=rcolor, transp=0)
band1 = hline(78.6, color=color.red, linestyle= hline.style_solid, editable= false)
band0 = hline(23.6, color=color.lime, linestyle= hline.style_solid, editable= false)
band2 = hline(61.8, color=color.gray, editable= false)
band3 = hline(50, color=color.black, editable= false)
band4 = hline(38.2, color=color.gray, editable= false)
band5 = hline(fi, color=color.blue, linestyle= hline.style_solid, editable= false)
strategy.entry("LE", strategy.long, comment="L", when=rsi >= fi )
strategy.entry("SE", strategy.short, comment="S", when=rsi < fi )