RSI 역전 전략은 상대적으로 강한 지표 RSI를 이용해 오버 바이 오버 소드를 식별하고, 역전 시점에 구매와 판매를 하는 양적 거래 전략이다. 이 전략은 RSI 오버 바이 지역과 오버 소드 지역의 하락값을 설정하여 RSI 오버 바이 지역으로 들어가면 공백하고 RSI 오버 소드 지역으로 들어가면 더 많은 돈을 벌며 가격 역전을 포착하여 수익을 얻는다.
이 전략은 다음과 같은 원칙에 기초하고 있습니다.
RSI는 시장이 현재 과매매 또는 과매매 상태에 있는지 여부를 나타낼 수 있습니다. RSI는 평균 상승과 평균 하락의 비율을 계산하여 현재 시장의 과매매와 과매매 정도를 판단합니다.
RSI가 오버 바이 영역에 들어갔을 때 (일반적으로 RSI가 70보다 크면 오버 바이라고 여겨진다) 는 다자 운동이 이미 강하다는 것을 나타냅니다. 이 때 포지션 포지션을 보유한 거래자의 수가 상대적으로 많으며 포지션을 계속하는 공간은 제한되어 가격이 계속 하락하여 오버 바이 상태를 역전시킬 수 있습니다.
RSI가 초매 지역으로 들어갔을 때 (일반적으로 RSI가 30 미만일 때 초매라고 여겨진다) 는 상반기 운동이 이미 강하다는 것을 나타냅니다. 이 때 하향 포지션을 보유한 거래자의 수가 상대적으로 많을 것이며, 계속 하향으로 가는 공간이 제한되어 가격이 계속 상승하여 초매 상태를 역전할 수 있습니다.
따라서, RSI 초상 구매 영역의 임계값을 90으로 설정할 수 있고, 초상 판매 영역의 임계값을 10으로 설정할 수 있습니다. RSI 초상 구매 영역에 들어갈 때 공백을 하고, RSI 초상 판매 영역에 들어갈 때 더 많은 것을 하고, 반전을 잡기 위해 니다.
이 전략의 핵심 논리는 다음과 같습니다.
RSI 지표값을 계산하여 2주기 길이의 RSI의 계산 입력으로 클로즈 클로즈 가격을 사용합니다.
RSI가 90을 넘으면, 상가구역에 진입하여 포지션을 채우고, RSI가 10을 넘으면, 상가구역에 진입하여 포지션을 채우고 있다.
각 포지션 트레이드에 대해, 스톱로스 스톱로스 포인트를 설정하십시오. 다중 헤드 스톱은 최저 가격 (low) 이며, 빈 헤드 스톱은 최고 가격 (high) 이다.
각 거래에 대해 추적 스톱을 설정하십시오. RSI가 더 많이 팔린 지역으로 계속되면 추적 스톱을 조정하여 스톱 거리를 더 느슨하게하십시오.
반전이 왔을 때 RSI가 50 근처의 중립 영역으로 돌아갔을 때, 평준화 포지션을 중지 할 수 있습니다.
반전이 오지 않고, 3개 K선 이상의 포지션을 개시한 상태에서 스톱로스 또는 스톱스팟 조건을 달성하지 못하면, 과도한 포지션 보유로 인한 더 큰 손실을 피하기 위해 포지션을 강제적으로 평정한다.
RSI 역전 전략은 다음과 같은 장점이 있습니다.
RSI 지표를 사용하여 과매매를 판단하면 시장의 반전 지점을 효과적으로 잡을 수 있습니다. RSI는 과매매를 판단하는 데 정확하며 반전 성공률이 높습니다.
반전 거래 전략은 계속 유행 거래의 체계적인 장점을 가지고 있다. 과매매 상황이 발생했을 때, 적시 할 수 있고, 과매매 할 때는 더 많이 할 수 있으며, 피당하지 않는다.
전략으로 참여한 스톱로스는 단일 거래의 손실을 효과적으로 통제할 수 있다. 역전 성공하지 않더라도 스톱로스는 손실을 일정 범위 내에서 통제할 수 있다.
트래킹 스톱은 가격의 계속되는 상황에 따라 스톱 거리를 유연하게 조정할 수 있으며, 스톱의 효과를 보장하고 더 많은 가격 차이를 추적하기 위해 노력합니다.
강제적 손실은 오랜 기간 동안 상환되지 않는 거래가 청산 될 수 있도록 보장하며 무한한 손실을 초래하지 않습니다.
RSI의 매개 변수는 조정할 수 있으며, 다른 시장에 맞게 매개 변수를 조정하여 전략의 적응성을 향상시킬 수 있다.
이 전략에는 몇 가지 위험도 있습니다.
RSI 반전은 기술 지표 거래 전략으로, 그 반전의 결과는 곡선 적합의 위험이 있을 수 있다. 실디에서의 반전의 성공률은 반전의 결과보다 낮을 수 있다.
RSI는 과매매를 판단할 수 있지만, 역전의 정확한 시점을 예측할 수 없습니다. 이 전략을 채택한 후 역전이 나타나지 않고 가격이 계속 운행될 위험이 있습니다.
전략으로 결정된 RSI 오버바이스 오버소드 영역은 불합리할 수 있으며, 잘못 설정되면 미스 트러블이나 트러블 전날 밤의 상쇄로 이어질 수 있다.
역전이 정지점에 도달하지 않으면 역전으로 다시 역전될 확률이 존재하는데, 이때 정지은 거래가 불가능할 수 있다.
정지점은 부합치 않게 설정되어 있고, 너무 가까운 거리에서 정지점이 종료될 수도 있고, 너무 먼 거리에서 정지점이 무효화될 수도 있다.
거래 수수료도 수익에 영향을 미칠 수 있습니다.
이 RSI 역전 전략은 다음과 같은 측면에서 최적화될 수 있습니다.
다른 RSI 변수를 테스트하여 RSI 길이를 테스트하는 것과 같은 최적의 변수 조합을 찾습니다.
더 많은 필터링 조건을 추가하여 가짜 반전 소음을 방지하고, MACD 지표와 같은 반전 확률이 높은 지역을 결정한다.
ATR에 따라 중지, 변동율에 따라 중지 거리를 설정하는 것과 같은 최적화된 중지 전략
이 경우, 이 경우, 이 경우, 이 경우, 이 경우.
기계학습 모델의 도움으로 판단을 통해 역전 성공률을 높일 수 있습니다.
다양한 시장과 품종의 데이터를 테스트하고, 최적의 실판 효과를 얻기 위해 매개 변수를 조정한다.
거래량과 결합하여 거래량이 커질 경우에만 반전 신호를 고려한다.
전반적으로, RSI 역전 전략은 RSI 지표를 사용하여 과매매 시장 상태를 인식하고, 역전 시점에 거래하면 좋은 체계적인 수익을 얻을 수 있습니다. 그러나이 전략에는 특정 위험이 있습니다. RSI 파라미트 및 스톱 스팟 전략에 대한 최적화 테스트가 필요하며, 다른 필터링 지표와 함께 잘못된 거래를 줄입니다.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// Copyright (c) 2021-present, RicMos
//study("RSI2 Sell Strategy, overlay=true)
//------------------------------------------USER VARIABLE DEFINITIONS --------------------------------------
var float lots = 0.1
//var float fixed_commission = 0.6 // forex pairs commission value USD per position size two sides
var float fixed_commission = 10 // BTC commission value USD per position size two sides
//var float money = 10000 //forex pairs position size
var float money = 0.3333 //BTC position size
strategy(title="RSI2 Sell Strategy", commission_type=strategy.commission.cash_per_order, calc_on_every_tick =true, commission_value = fixed_commission/2, overlay=true, default_qty_value= lots*100000, initial_capital=1000, currency = "USD", calc_on_order_fills = false)
len = input(2, minval=1, title="RSI Length")
src = input(close, "RSI Source", type = input.source)
upRsi = rma(max(change(src), 0), len)
downRsi = rma(-min(change(src), 0), len)
rsi = downRsi == 0 ? 100 : upRsi == 0 ? 0 : 100 - (100 / (1 + upRsi / downRsi))
var color buyColor = color.blue
var color sellColor = color.red
plotshape(rsi <= 10 ? low : na, title="Arrow Up", style=shape.triangleup, location=location.belowbar, size=size.tiny, color=buyColor)
plotshape(rsi >= 90 ? high : na, title="Arrow Down", style=shape.triangledown, location=location.abovebar, size=size.tiny, color=sellColor)
// long = rsi <= 10
// var float longsl = 0
// var int long_ts_points = 0
// if long
// longsl:= low
// long_ts_points := 200
// if rsi >= 70
// long_ts_points := 100
// else if rsi >= 80
// long_ts_points := 80
// plot (longsl)
// var int barsPassed = 0
// barsPassed := barssince(long)
// if long
// strategy.entry("long", long = strategy.long, qty = 10000, stop = high)
// strategy.exit("slLo", from_entry="long", stop = longsl-0.0002, trail_points = long_ts_points )
// //strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
// strategy.cancel_all(barsPassed > 3 and not long)
short = rsi >= 90
var float shortsl = 0
var int short_ts_points = 0
//var bool stClose = 0
if short
shortsl:= high
short_ts_points := 200
if rsi <= 30
short_ts_points := 100
//stClose :=1
else if rsi <= 20
short_ts_points := 80
//else
//stClose := 0
plot (shortsl)
var int barsPassedSh = 0
barsPassedSh := barssince(short)
if short
strategy.entry("short", long = strategy.short, qty = money, stop = low)
strategy.exit("slSh", from_entry="short", stop = shortsl, trail_points = short_ts_points, trail_offset =20 )
//strategy.close("short", comment="rsi<30", when = stClose)
//strategy.close("long", when = rsi[1]>=50 and rsi < 50 , comment = "rsi under 50" )
strategy.cancel_all(barsPassedSh > 3 and not short)