RSI 역전 돌파 전략은 RSI 지표를 사용하여 오버 바이 오버 소드를 식별하고 가격이 평균선을 돌파 할 때 역전하는 전략이다. 이 전략은 추세와 오버 바이 오버 소드 지표가 결합되어 주가 가격이 역전 신호가 발생했을 때 주가 가격의 단기 역전 기회를 잡기 위해 작동한다.
이 전략은 다음과 같은 원칙에 기초하고 있습니다.
RSI를 사용하여 ((2) 주가가 과매매 또는 과매매 상태에 있는지 판단하십시오. RSI가 25보다 작으면 과매매로 간주되며, RSI가 80보다 크면 과매매로 간주됩니다.
200일 EMA를 사용하여 주식 가격의 장기 트렌드 방향을 판단한다. 가격이 EMA를 상회하는 것은 낙관적 신호로 간주하고, EMA를 상회하는 것은 낙하 신호로 간주한다.
RSI가 oversold 신호를 표시하고, 가격이 EMA를 통과하면, 보이스팅 작업을 수행하고, 더 많이 한다. 이것은 전형적인 반전 신호이며, 주가가 oversold 영역에서 벗어나고, 상승하기 시작한다는 것을 나타냅니다.
RSI가 오버 바이 신호를 표시하고 가격이 EMA를 넘어서면 하향 연동, 공백을 한다. 이것은 또한 역전 신호이며, 주가가 오버 바이 영역에서 벗어나 하향 조정하기 시작했다는 것을 나타냅니다.
이런 반전 모드를 통해 우리는 주가가 새로운 추세에 도달하기 전에 반전 기회를 잡을 수 있기를 바랍니다.
구체적으로, 전략의 입문 조건은 RSI가 25보다 작고 가격이 상회할 때 더 많은 것을 하고; RSI가 80보다 크고 가격이 하락할 때 더 많은 것을 하지 않는다. 평점 조건은 당일 최고 가격에서 거래일 동안 가장 높은 평점이다.
RSI 역전 돌파 전략은 추세와 역전 요소를 결합하여 다음과 같은 장점을 가지고 있습니다.
반전 기회를 잡기: RSI를 통해 과매매 상황을 판단하여 주가 반전의 시점을 잡을 수 있습니다. 이것은 초과 수익을 달성하는 데 중요합니다.
순서대로: 동시에 EMA와 결합하여 큰 트렌드 방향을 판단하고, 역동 동작을 피한다. 큰 트렌드 방향이 일치하는 경우에만 반전 신호를 고려한다.
리스크 제어: 역전 운영 모드를 사용하면 각 방향의 포지션 기간이 너무 길지 않고 리스크를 제어할 수 있다.
매개 변수 유연성: RSI 주기와 EMA 주기는 시장 상황에 따라 조정 및 최적화되어 전략이 더 적응 할 수 있습니다.
거래 주파수: 반전 신호의 발생 주파수는 적당하고, 너무 자주 거래하지 않으며, 오랫동안 작동하지 않습니다.
간단하고 명확하다: 전략 규칙이 명확하고 복잡하지 않다. 실내에서 작동하기 쉽다.
이 전략에는 다음과 같은 위험도 있습니다.
역전 실패 위험: 역전 신호가 나타나면 주가가 다시 원래의 추세로 돌아와 역전 실패할 수 있으며, 이 때 전략은 손실을 감수할 수 있다. 손실을 막는 방법을 통해 위험을 제어할 수 있다.
트렌드가 보이지 않는 위험: 주가가 명확한 트렌드가 없을 때, EMA는 큰 방향을 잘 지시하지 못하고, 전략은 더 많은 불확실성을 낳는다. 주가가 명백한 트렌드가 없을 때 역전 연산을 하지 않도록 최적화 할 수 있다.
매개 변수 최적화 위험: RSI 매개 변수와 EMA 주기 선택은 전략 효과에 큰 영향을 미칩니다. 역사적 데이터에 따라 반복적으로 테스트를 통해 최적화를 해야 하며, 최적의 매개 변수를 선택해야 합니다.
과도한 최적화 위험: 최적의 변수 조합을 찾는 데 있어서 과도한 최적화가 지나치게 적합하게 될 수 있다. 테스트 기간 동안 효과가 좋지만 실제 디스크에서 실패하는 것을 피하기 위해 안정성 검사를 실시해야 한다.
거래 빈도 위험: 반전 신호가 너무 자주 발생하면 거래 횟수가 너무 많을 수 있습니다. 거래 빈도를 제어하기 위해 RSI 주기 변수를 적절하게 조정할 수 있습니다.
이 전략은 다음과 같은 부분에서 더욱 개선될 수 있습니다.
주식 품질 평가: 주식의 기본 지표와 결합하여 품질이 좋은 주식을 선택하여 전략적 작업을 수행 할 수 있습니다.
다른 지표와 결합: 역전 신호를 검증하고 전략 신뢰성을 높이기 위해 MACD, KD 등의 다른 지표를 도입할 수 있다.
동적 조정 파라미터: 시장 환경 변화에 따라 동적으로 조정할 수 있는 RSI 파라미터와 EMA 사이클을 사용하여 전략의 적응성을 향상시킬 수 있다.
최적화된 입학 타이밍: 특정 입학 시점을 더욱 최적화하여, 예를 들어, 역전 확인을 기다린 후 입학한다.
이윤의 회귀를 방지하기 위해 합리적인 이윤의 회귀를 설정하는 전략
거래 비용을 고려하십시오. 거래 슬라이드 및 다른 거래 비용이 전략에 미치는 영향을 평가하십시오.
주가 변동률을 고려하라: only 큰 변동성 주가 전략 목표로서, 전략을 더 신뢰할 수 있게 한다.
RSI 역전 돌파 전략은 트렌드와 역전 신호를 통합하여 주가가 역전되기 전에 현장에 들어가서 더 큰 기회를 잡습니다. 전략 거래 빈도는 적당하며 위험을 효과적으로 제어 할 수 있습니다. 또한 역전 실패, 과도한 최적화 등의 위험에 주의를 기울여야하며, 진입 타이밍 및 정지 전략을 최적화하면 전략 효과를 더욱 향상시킬 수 있습니다.
/*backtest
start: 2022-10-01 00:00:00
end: 2023-10-07 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jocker.soad
//@version=4
// strategy("My Script", overlay=true, initial_capital=10000, default_qty_value=100)
min = input(title="Valor minimo de entrada", defval=25)
qtdAtivos = input(title="Quantidade de ações", defval=1)
// overBuyLine = hline(80)
// overSellLine = hline(min)
var comprado = false
var valorComprado = 0.0
var qtdDiasComprado = 0
var valorLucro = 0.0
valueRsi = rsi(close, 2)
valueSma = sma(close, 200)
valueEma = ema(close, 200)
lastHighPrice = high[2]
buyValidation = valueRsi <= min
sellValidation = close >= lastHighPrice
// plot(lastHighPrice, trackprice=true, offset=-99999, color=color.olive, linewidth=3, style=plot.style_area)
// plot(valueRsi)
// plot(valueSma)
// plot(valueEma)
// plotshape(sellValidation, style=shape.triangledown, color=color.blue)
// plotshape(comprado, style=shape.triangledown, color=color.blue)
startDate = input(title="Inicio Dia", type=input.integer, defval=1, minval=1, maxval=31)
startMonth = input(title="Inicio Mes", type=input.integer, defval=1, minval=1, maxval=12)
startYear = input(title="Inicio Ano", type=input.integer, defval=2018, minval=1800, maxval=2100)
endDate = input(title="Final Dia", type=input.integer, defval=1, minval=1, maxval=31)
endMonth = input(title="Final Mes", type=input.integer, defval=12, minval=1, maxval=12)
endYear = input(title="Final Ano", type=input.integer, defval=2020, minval=1800, maxval=2100)
inDateRange = true
if inDateRange
if close >= valueEma
if comprado == false and buyValidation
qtdDiasComprado := 0
comprado := true
valorComprado := close
strategy.order("buy", true, qtdAtivos, when=buyValidation)
if sellValidation and comprado == true
comprado := false
valorLucro := valorLucro + (close - valorComprado)
valorComprado := 0
strategy.order("sell", false, qtdAtivos, when=sellValidation)
if comprado == true and sellValidation == false
qtdDiasComprado := qtdDiasComprado + 1
// plot(valorLucro, color=color.lime)