RSI와 더블 EMA 크로스오버 신호 양적 전략

RSI EMA
생성 날짜: 2024-04-26 17:36:08 마지막으로 수정됨: 2024-04-26 17:36:08
복사: 0 클릭수: 749
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

RSI와 더블 EMA 크로스오버 신호 양적 전략

개요

이 전략은 RSI 지표와 두 개의 EMA 선의 교차 신호를 기반으로 매도 시점을 판단한다. 매도 가격이 EMA100과 EMA20을 넘어 RSI 값이 30보다 낮으면 매도 신호를 발생시키고 매도 가격이 EMA100과 EMA20을 넘어 RSI 값이 70보다 높으면 매도 신호를 발생시킨다. 이 전략의 주요 아이디어는 RSI 지표를 사용하여 매도 상황을 판단하고 EMA 선의 추세 판단과 결합하여 시장의 변동적 낮은 점과 높은 점을 포착하기 위해 낮은 점과 높은 점의 파업 작업을 수행한다.

전략 원칙

  1. RSI 지표값을 계산하여 시장의 과매매 상황을 판단한다. RSI가 30보다 낮으면 과매매 영역으로 간주되며, 70보다 높으면 과매매 영역으로 간주한다.
  2. 동향을 판단하기 위한 기준으로 EMA100와 EMA20의 중간선을 계산한다.
  3. EMA100과 EMA20을 넘어 RSI가 30보다 낮으면 과매매로 판단하고, 트렌드는 하향으로, 구매 신호를 발생한다.
  4. EMA100과 EMA20을 넘어서 RSI가 70보다 높을 때, 과매매로 판단하고 상향으로 추세하여 판매 신호를 생성한다.
  5. 구매 시 신호가 터지면 더 많은 포지션을 열고, 판매 시 신호가 터지면 더 적은 포지션을 다.

우위 분석

  1. RSI 지표와 EMA 평균선을 결합하면 트렌드 전환점과 오버 바이 오버 셀 시기를 더 잘 판단하고 잘못된 신호를 줄일 수 있습니다.
  2. 매개 변수는 조정 가능하며, 다른 기준과 주기에 따라 최적화될 수 있으며, 어느 정도의 적응성과 유연성을 갖는다.
  3. 논리는 간단하고 명확하며, 이해하기 쉽고 구현하기 쉽고, 많은 기술적 분석 기반이 필요하지 않습니다.
  4. 시장의 변동이 있을 때 사용할 수 있고, 변동의 높은 낮은 지점을 잡을 수 있고, 거래가격차 수익을 얻을 수 있다.

위험 분석

  1. 단방향 트렌드에는 무효가 될 수 있으며, 트렌드가 형성된 후 연속적으로 잘못된 신호를 생성하여 막히게 된다.
  2. 매개 변수가 고정되어 있고, 시장에 동적으로 적응할 수 있는 능력이 부족하여, 시장의 리듬 변화의 영향을 쉽게 받을 수 있다.
  3. 불안정한 상황에서 자주 거래하는 것은 전략적 수익에 영향을 미치는 큰 슬라이포인트와 수수료를 초래할 수 있습니다.
  4. 포지션 관리와 위험 통제의 부족으로, 인출과 최대 손실은 통제할 수 없습니다.

최적화 방향

  1. MA 횡단, DMI 등과 같은 트렌드 판단 조건에 가입하여 일방적 트렌드에 조기에 입문하여 패스되는 것을 피한다.
  2. RSI와 EMA의 매개 변수를 최적화하여 가장 적합한 표준 및 주기적인 매개 변수 조합을 찾아서 신호의 정확도를 향상시킵니다.
  3. ATR 포지션이나 케일리 공식과 같은 포지션 관리 모델을 도입하여 거래 당 자본 비율을 제어하여 위험을 줄이십시오.
  4. 단편 거래 최대 손실과 수익 회귀를 제어하기 위해 고정 퍼센트 스톱 또는 이동 스톱과 같은 스톱 및 스톱 조건을 설정하십시오.
  5. MACD, 브린 띠 등과 결합하여 신호 확인도를 높이고, 잘못된 판단을 줄여줍니다.

요약하다

RSI와 쌍 EMA 교차 신호량화 전략은 RSI 지표와 EMA 평행선을 결합하여 변동적 상황의 높은 낮은 지점을 더 잘 포착하여 차분 하차 할 수 있는 간단한 실용적인 양적 거래 전략이다. 그러나 이 전략은 또한 몇 가지 제한과 위험이 있습니다.

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

//@version=5
strategy("RSI-EMA100&20 Buy/Sell Signal", overlay=true)

// Input parameters
rsiLength = input.int(14, "RSI Length")
emaCloseLength = input.int(100, "EMA Length (Closing Price)")
emaLowLength = input.int(20, "EMA Length (Low Price)")
oversoldLevel = input.int(30, "Oversold Level")
overboughtLevel = input.int(70, "Overbought Level")

// Calculate RSI
rsi = ta.rsi(close, rsiLength)

// Calculate EMA of closing price
emaClose = ta.ema(close, emaCloseLength)

// Calculate EMA of low price
emaLow = ta.ema(low, emaLowLength)

// Determine overbought and oversold conditions
isOversold = rsi <= oversoldLevel
isOverbought = rsi >= overboughtLevel

// Plot RSI and its EMAs
plot(rsi, color=color.blue, title="RSI")
plot(emaClose, color=color.green, title="EMA 100 (Closing Price)")
plot(emaLow, color=color.orange, title="EMA 20 (Low Price)")

// Strategy entry condition: Closing price is below both EMAs and RSI is less than or equal to oversold level
buySignal = close < emaClose and close < emaLow and isOversold

// Plot buy signals
plotshape(series=buySignal, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small)

// Strategy entry
if (buySignal)
    strategy.entry("Buy", strategy.long)

// Strategy exit condition: Price crosses above both EMAs and RSI is greater than or equal to overbought level
sellSignal = close > emaClose and close > emaLow and isOverbought

// Plot sell signals
plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy exit
if (sellSignal)
    strategy.entry("Sell", strategy.short)

// Plot sell signals
plotshape(series=sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy exit
if (sellSignal)
    strategy.entry("Sell", strategy.short)