고급 RSI 지표 거래 전략


생성 날짜: 2024-02-06 11:47:59 마지막으로 수정됨: 2024-02-06 11:47:59
복사: 7 클릭수: 788
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

고급 RSI 지표 거래 전략

개요

S&P500 Advanced RSI Indicator Trading Strategy (S&P500 고급 RSI 지표 거래 전략) 는 S&P500 지수에서 사용되는 중기 및 장기 트렌드 추적 전략이다. 이 전략은 여러 필터를 결합하여 RSI 초과 구매 초과 판매 신호를 기반으로 거래하여 위험을 통제하고 가짜 신호를 줄인다.

전략 원칙

이 전략의 핵심 지표는 RSI이며, 2주기 RSI 값에 기초하여 가격을 오버 바이 오버 소드를 판단한다. RSI 지표가 설정된 오버 세일 라인보다 낮을 때 상장을 하고, RSI 지표가 설정된 오버 세일 라인보다 높을 때 평가를 한다. 또한, 전략은 위험 통제를 위해 보조 필터 시리즈를 설정한다:

  1. 주간 RSI 필터: 주간 RSI를 설정 라인보다 낮게 요구하여 황소 시장에서 너무 과격하지 않도록하십시오.

  2. MA 필터: 지정된 주기 MA보다 높은 가격을 요구하여 트렌드가 시작되면 구매하는 것을 보장합니다.

  3. 2차 RSI 필터: 2차 RSI 지표가 초매도선보다 낮도록 요구하여 가짜 돌파구를 방지합니다.

  4. ATR의 필터를 뚫고: 급격한 가격 하락 후에도 더 많은 것을 하고, 위험을 통제한다

위의 여러 필터와 결합하여, 가격의 중장선 반전점을 효과적으로 식별하여 거래 주파수를 제어하고 위험을 줄일 수 있습니다.

우위 분석

S&P500 고도의 RSI 지표 거래 전략에는 다음과 같은 장점이 있습니다.

  1. 여러 보조 지표 필터링과 결합하여 가짜 신호를 줄이고 신뢰도가 높습니다.

  2. ATR을 통해 필터를 뚫고 위험을 통제하고, 급격한 가격 하락 후 포착을 피하십시오.

  3. 주간 RSI 필터는 불시장에서 구매하는 것을 방지하고 과잉 급진주의를 방지합니다.

  4. MA 필터는 트렌드 평균보다 높은 가격을 요구하고 트렌드 시작 후 다시 입장을 보장합니다.

  5. 두 번째 RSI 필터는 RSI 지표가 가짜 브레이크를 발생하지 않도록합니다.

  6. 중장기 지분을 보유할 수 있으며, 너무 자주 거래되지 않습니다.

위험 분석

이 전략의 주요 위험은 다음과 같습니다.

  1. RSI를 주요 지표로 사용하면 다소 뒤쳐집니다.

  2. 필터링 조건이 너무 엄격해서 일부 기회를 놓칠 수 있습니다.

  3. 이 경우, 제약 조건이 깨질 수 있습니다.

  4. 간단한 RSI 지표와 필터에 기반한 복잡한 상황을 판단하는 능력이 약합니다.

대응방법은 다음과 같습니다.

  1. 기회를 놓치지 않도록 적절한 변수를 조정하십시오.

  2. 포지션 규모를 늘려서 매매가 되지 않을 확률을 줄여줍니다.

  3. 필터링 조건을 적절히 완화하여 거래 빈도를 높일 수 있습니다.

  4. 복잡한 상황을 판단하기 위한 더 많은 지표들을 고려할 수 있습니다.

최적화 방향

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. RSI 변수를 조정하여 최적의 오버 바이 오버 셀 라인을 찾습니다.

  2. MA 평균선 주기 변수를 테스트하여 최적의 변수를 결정한다

  3. 테스트 ATR 변수를 조정하고, 가격 최적화를 통해 필터링 판단을 돌파합니다

  4. 복잡한 상황을 판단하는 능력을 향상시키기 위해 다른 지표와 함께 판단을 시도하십시오.

  5. 주간 RSI 파라미터를 최적화하여 주간 RSI의 최적의 파라미터를 결정합니다

  6. 2차 RSI의 파라미터를 최적화하여 최적의 2차 RSI 주기와 오버 바이 오버 셀 라인을 찾습니다.

요약하다

S&P500 고급 RSI 지표 거래 전략은 RSI 지표를 통해 가격 중장선 트렌드 반전점을 판단하고 여러 필터 조건 제어 위험을 설정한다. 이 전략은 RSI 지표의 효용성을 최대한 활용하여 중장선 트렌드를 효과적으로 잠금하여 너무 자주 출입하는 것을 피한다. 매개 변수가 계속 최적화됨에 따라 전략의 성능은 계속 개선될 전망이다.

전략 소스 코드
/*backtest
start: 2024-01-06 00:00:00
end: 2024-02-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Lets connect on LinkedIn (https://www.linkedin.com/in/lets-grow-with-quality/)
// Optimized for S&P500 Daily. Use it as a buy confirmation on certain levels (Springs, Pullbacks, ...) or let it run 
// without "Weekly RSI Filter" and pyramiding for 4 x more trades.
// This strategy is optimized for minimum drawdowns and has several filters on board for use on different securities

strategy("S&P500 RSI2 Studio", overlay=true)

baseLength = input(2, title="Base RSI Length")
overSold = input(10, title="Overbought Level")
overBought = input(90, title="Oversold Level")
overBoughtExit = input(70, title="Overbought Level Exit")
enableWeeklyRsiFilter = input(true, title="Enable Weekly RSI Filter")
weeklyOverSold = input(30, title="Weekly Oversold Level")
weeklyOverBought = input(70, title="Weekly OverOverbought Level")
weeklyRsiLength = input(2, title="weeklyRsiLength")

enableWmaFilter = input(false, title="Enable MA Filter")
wmaLength = input(100, title="WMA Length")

exitRsiLength = input(4, title="Exit RSI Length")
dailyRsiLength = input(4, title="Daily RSI Length")

enable2ndRSIFilter = input(false, title="Enable 2nd RSI Filter")
SecRSIFilterLengh = input(14, title="2nd RSI Filter Length")
SecRSIFilterOverSold = input(20, title="2nd RSI Filter Oversold Level")

enableAtrFilter = input(true, title="Enable ATR Filter")
numAtrDays = input(14, title="Number of Days ATR Average")
atrFilterFactor = input(2, title="ATR Filter Factor")

weeklyRsi = request.security(syminfo.tickerid, "W", ta.wma(ta.rsi(close, weeklyRsiLength), 1))
exitRsi = request.security(syminfo.tickerid, "D", ta.wma(ta.rsi(close, exitRsiLength), 2))
dailyRsi = request.security(syminfo.tickerid, "D", ta.wma(ta.rsi(close, dailyRsiLength), 2))
price = close

priceDropCondition = ta.atr(1) >= ta.atr(numAtrDays) * atrFilterFactor
preventEarlyEntry = not priceDropCondition

vrsi = ta.wma(ta.rsi(price, baseLength), 2)
wma = ta.wma(price, wmaLength)


buyCond1 = ta.crossunder(vrsi, overSold)
buyCond2 = enableWeeklyRsiFilter ? weeklyRsi < weeklyOverSold : true
buyCond3 = enable2ndRSIFilter ? ta.wma(ta.rsi(close, SecRSIFilterLengh),2) < SecRSIFilterOverSold : true
buyCond4 = enableWmaFilter ? price > ta.wma(close, wmaLength) : true
buyCond5 = enableAtrFilter ? preventEarlyEntry : true
 
buy = buyCond1 and buyCond2 and buyCond3 and buyCond4 and buyCond5

if (not na(vrsi))
    if buy 
        strategy.entry("RSI2 Studio", strategy.long, comment="Long")

if (exitRsi > overBoughtExit)
    strategy.close("RSI2 Studio", comment="Close Long")