RSI와 EMA를 기반으로 한 트렌드 돌파 전략


생성 날짜: 2023-12-20 13:47:28 마지막으로 수정됨: 2023-12-20 13:47:28
복사: 0 클릭수: 859
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

RSI와 EMA를 기반으로 한 트렌드 돌파 전략

개요

이 전략은 RSI와 EMA 지표에 기반한 트렌드 추적 및 트렌드 브레이크 트레이딩 전략이다. 이 전략은 RSI-EMA 트렌드 브레이크 전략이라고 한다.

전략 원칙

전략은 5일 EMA, 20일 EMA, 50일 EMA를 사용하여 공백 트렌드 프레임워크를 구축한다. 5일 EMA 위에 20일 EMA를 통과하고, 이 두 EMA가 50일 EMA 위에 있을 때, 최근 공백 트렌드 브레이크가 발생했음을 확인하고, 공백을 만든다. 5일 EMA 아래 20일 EMA를 통과하고, 이 두 EMA가 50일 EMA 아래에 있을 때, 최근 공백 트렌드 브레이크가 발생했음을 확인하고, 공백을 만든다.

동시에, 전략은 RSI 지표가 과잉 오버 바이 또는 오버 세 지역인지 여부를 판단하는 RSI와 결합한다. RSI는 오버 바이 오버 세 상황을 효과적으로 식별하여 트렌드 정점이나 조정이 될 때 잘못된 신호를 방지 할 수 있습니다. RSI 지표가 오버 바이 영역에서 중립 영역으로 진입 할 때, 다중 스톱 ; RSI 지표가 오버 세 영역에서 중립 영역으로 진입 할 때, 빈 스톱 .

전략적 강점 분석

이 전략은 EMA와 RSI 지표와 결합하여 중장선 트렌드를 포착하고 트렌드 끝의 위험을 피할 수 있으며, 매우 좋은 위험/이익 특성을 가지고 있습니다. 주요 장점은 다음과 같습니다.

  1. EMA를 사용하여 트렌드를 판단하고, EMA가 가격을 평행하여 트렌드 방향을 식별하는 데 도움이됩니다.
  2. RSI 지표는 오버 바이 영역을 피하고, 오버 세이 영역을 판매하여 위험을 회피합니다.
  3. 전략적 연동 빈도가 낮아 중·장선 보유에 적합하며 거래 비용과 슬라이드 포인트 비용을 낮춘다.

위험 분석

이 전략에는 다음과 같은 위험도 있습니다.

  1. 위기 상황에서 EMA와 RSI는 더 많은 잘못된 신호를 발생시켜 너무 많은 무효 거래가 발생할 수 있습니다.
  2. 파격 실패는 일반적인 현상이며, 손실을 통제하기 위해 스톱을 설정해야 한다.
  3. 일부 트렌드 상황에서는 RSI가 과매매 영역에 들어가지 않습니다. 이 경우 RSI를 사용하여 진입과 정지점을 판단하면 일부 기회를 놓치게됩니다.

이러한 위험을 줄이기 위해, 우리는 거래 중지, RSI 변수를 조정하거나 다른 지표와 함께 확인 할 수 있습니다.

최적화 방향

이 전략에는 더 많은 최적화 가능성이 있습니다:

  1. 다양한 파라미터를 테스트할 수 있습니다. 예를 들어, EMA 주기 파라미터, RSI 파라미터 등과 같은 조합으로 최적의 파라미터를 선택할 수 있습니다.
  2. 다른 지표들, 예를 들어 MACD, 브린 등이 거래 신호를 확인하고 오류율을 줄일 수 있다.
  3. 기계 학습 등의 방법을 통해 동적으로 최적화 파라미터를 설정할 수 있다.
  4. 트렌드 판단 시스템을 구축하여 다양한 시장 환경에서 전략 매개 변수를 동적으로 조정할 수 있습니다.

요약하다

RSI-EMA의 트렌드 전략은 트렌드 추적과 진입 시기를 고려하여 트렌드 수익을 얻기 위해 위험을 통제하는 매우 실용적인 중장선 전략입니다. 우리는 변수를 최적화하고 다른 지표를 추가하는 방법을 통해 전략의 안정성과 수익률을 더욱 향상시킬 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
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/
// © BrendanW98

//@version=4
strategy("My Strategy", overlay=true)

ema5 = ema(close, 9)
ema20 = ema(close, 21)
ema50 = ema(close, 55)

//RSI Signals
// Get user input
rsiSource = close
rsiLength = 14
rsiOverbought = 70
rsiOversold = 30
rsiMid = 50
// Get RSI value
rsiValue = rsi(rsiSource, rsiLength)

//See if RSI crosses 50
doBuy = crossover(rsiValue, rsiOversold) and rsiValue < 50
doSell = crossunder(rsiValue, rsiOverbought) and rsiValue > 50

emacrossover = crossover(ema5, ema20) and ema5 > ema50 and ema20 > ema50 and close > ema50
emacrossunder = crossunder(ema5, ema20) and ema5 < ema50 and ema20 < ema50 and close < ema50

//Entry and Exit
longCondition = emacrossover
closelongCondition = doSell

strategy.entry("Long", strategy.long, 1, when=longCondition)
strategy.close("Long", when=closelongCondition)


shortCondition = emacrossunder
closeshortCondition = doBuy

strategy.entry("Short", strategy.short, 1, when=shortCondition)
strategy.close("Short", when=closeshortCondition)