RSI와 EMA를 기반으로 한 추세 추종 전략


생성 날짜: 2024-01-25 12:19:32 마지막으로 수정됨: 2024-01-25 12:19:32
복사: 0 클릭수: 724
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

RSI와 EMA를 기반으로 한 추세 추종 전략

개요

이 전략은 상대적으로 약한 지수 ((RSI) 와 지수 이동 평균 ((EMA) 을 결합하여 트렌드 추적에 기반한 양적 거래 전략을 구현합니다. 이 전략은 주로 트렌디 시장에 적용되며, 가격이 반전 될 수있는 시점을 식별하여 트렌드를 추적하여 수익을 창출합니다.

전략 원칙

지표 선택

  • EMA는 현재의 트렌드 방향을 판단하는 데 사용됩니다. 전략은 20 일 일, 50 일, 200 일 일 세 개의 EMA를 사용합니다. 가격이 이 세 개의 EMA보다 높을 때, 우리는 현재 황소 시장 추세에 있다고 판단합니다.
  • RSI는 오버 바이 오버 소드 상태인지 판단하는 데 사용됩니다. 표준 변수 14의 RSI, 오버 바이 라인은 70이고, 오버 소드 라인은 30입니다.

참가 규칙

이 사진의 제목은 “미국”입니다.

  • RSI가 30이하를 넘으면 과매매 상태이며 가격이 상승할 수 있습니다.
  • 20일선, 50일선, 200일선 중 임의의 일선보다 높은 값은 현재 상승세를 나타냅니다.

이 두가지 조건이 동시에 충족될 때, 우리는 더 많은 입학을 하게 됩니다.

위험 관리

매 거래마다, 우리는 최대 손실을 3%로 제한합니다. 스톱 로스 포인트를 구체적으로 설정하는 것은 시장의 특성을 결합해야합니다.

입시 시 포지션 규모를 계산합니다: 최대 손실 / (입시 가격 - Stop Loss 가격) = 포지션 규모

이것은 단편 거래의 위험을 효과적으로 통제할 수 있습니다.

출전 규칙

평지 신호는 다음과 같은 경우에 주로 나타난다.

  • RSI가 70을 넘어서서 주가가 과소 구매로 인해 떨어질 수 있음을 나타냅니다.
  • 20일선, 50일선 또는 200일선 아래의 임의의 선은 트렌드 반전을 나타냅니다.

이 조건이 충족되면 우리는 무사히 떠날 것이다.

우위 분석

이 전략은 트렌드 추적과 반전 거래의 장점을 결합한다. EMA를 통해 큰 트렌드 방향을 판단하고, 오버셀드 지역에서 반전되는 시점에 진입하면, 트렌드를 추적하고 반전의 기회를 얻을 수 있으며, 전략의 안정성을 강화한다. 동시에, RSI 지표의 매개 변수는 조정할 수 있으며, 다른 시장에 대해 최적화 할 수 있으며, 적응력이 강하다.

리스크 컨트롤 측면에서는 거래당 최대 손실을 제한하여 단일 거래의 위험을 효과적으로 제어하고 계좌 자금을 보호 할 수 있습니다.

위험 분석

이 전략은 주로 추세성이 비교적 명백한 시장에 적합하며, 복잡한 변동성이 있는 시장에 직면하면, EMA를 사용하여 추세를 판단하는 효과는 할인될 수 있다. 또한, RSI 지표가 다소 뒤쳐져 있기 때문에 실제 가격 움직임과 함께 분석해야 한다.

정지점의 설정은 전략의 수익과 손실에 매우 중요하며, 다양한 시장의 신중한 테스트에 따라 설정해야 한다. 정지점이 너무 크면 단위 손실이 확대될 수 있고, 정지점이 너무 작으면 시장 소음으로 인해 손실이 발생할 수 있다. 이 부분은 실내 관찰을 통해 지속적으로 최적화해야 한다.

최적화 방향

RSI의 파라미터를 최적화하여 더 많은 시장 환경에 적응할 수 있습니다. 다양한 포지션 규모 비율을 테스트하여 최적의 설정을 찾을 수 있습니다. 다른 기술 지표를 테스트하여 더 안정적인 입출장 시스템을 구축 할 수 있습니다.

요약하다

이 전략은 트렌드 추적과 역전 거래의 장점을 통합하여 큰 트렌드를 판단하면서 가능한 역전 지점에서 시장에 진입한다. RSI와 같은 지표 매개 변수의 최적화를 적용하여 더 많은 시장 환경에 적응할 수 있다. 각 거래의 위험은 통제 가능하며 중장기 안정적인 운영에 적합하다. 동시에 전략은 다른 시장과 스타일에 따라 조정 테스트를 통해 더욱 최적화 할 수 있다.

전략 소스 코드
/*backtest
start: 2023-10-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Stratégie RSI et EMA avec Gestion du Risque", overlay=true)

// Paramètres de la stratégie
rsiLength = input(14, "Longueur du RSI")
rsiOverbought = input(70, "Niveau de Surachat RSI")
rsiOversold = input(30, "Niveau de Survente RSI")

// Calcul du RSI
rsiValue = rsi(close, rsiLength)

// Paramètres des EMA
ema20 = ema(close, 20)
ema50 = ema(close, 50)
ema200 = ema(close, 200)

// Paramètre du risque par trade
riskPerTrade = input(0.03, "Risque par Trade (3%)")

// Distance du stop-loss en pips (à ajuster selon votre stratégie)
stopLossPips = input(1, "Distance du Stop-Loss en pips")

// Calcul de la taille de position et du stop-loss
calculatePositionSize(entryPrice, stopLossPips) =>
    stopLossPrice = entryPrice - stopLossPips * syminfo.mintick
    riskPerTradeValue = strategy.equity * riskPerTrade
    positionSize = riskPerTradeValue / (entryPrice - stopLossPrice)
    positionSize

// Conditions d'entrée
longCondition = (rsiValue < rsiOversold) and (close > ema20 or close > ema50 or close > ema200)
if longCondition
    strategy.entry("Long", strategy.long, qty=1)

// Conditions de sortie
exitCondition = (rsiValue > rsiOverbought) or (close < ema20 or close < ema50 or close < ema200)
if exitCondition
    strategy.close("Long")

// Affichage des EMA et RSI sur le graphique
plot(ema20, color=color.red)
plot(ema50, color=color.green)
plot(ema200, color=color.blue)
hline(rsiOverbought, "Niveau de Surachat RSI", color=color.red)
hline(rsiOversold, "Niveau de Survente RSI", color=color.blue)
plot(rsiValue, "RSI", color=color.purple)