이중 이동 평균 교차, RSI 및 확률 지표를 기반으로 한 단기 양적 거래 전략

SMA RSI ATR
생성 날짜: 2024-06-17 15:35:40 마지막으로 수정됨: 2024-06-17 15:35:40
복사: 1 클릭수: 617
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이중 이동 평균 교차, RSI 및 확률 지표를 기반으로 한 단기 양적 거래 전략

개요

이 전략은 양평선 교차, RSI 및 무작위 지표를 결합하여 여러 기술 지표의 공동 확인을 통해 단선 거래에서 높은 승률의 거래 기회를 찾습니다. 이 전략은 20일과 50일 두 개의 이동 평균의 교차를 주요 거래 신호로 사용하며, RSI와 무작위 지표를 보조 판단으로 결합하여 거래 신호를 두 번 확인합니다. 또한 이 전략은 ATR을 중지 및 중단의 기초로 사용하며, 고정된 위험과 수익을 비교하여 상위 지위를 관리하며, 위험을 통제하면서 안정적인 수익을 얻으려고 노력합니다.

전략 원칙

  1. 20일과 50일 두 개의 이동 평균을 계산하여, 단기 평균 선이 장기 평균 선을 가로질러 다중 신호를 생성할 때; 반대로, 공백 신호를 생성한다.
  2. RSI를 도입하여 보조 판단으로 RSI가 과매매 또는 과매매 범위에 도달하지 않은 경우에만 포지션을 고려하십시오.
  3. 무작위 지표를 도입하여 보조 판단으로, 무작위 지표 K 라인이 과매매 또는 과매매 범위에 도달하지 않은 경우에만 상장을 고려한다.
  4. ATR을 사용하여 스톱로스 및 스톱 포지션을 계산하고, 1: 2의 위험-수익비에 따라 스톱로스 및 스톱 포지션을 설정한다.
  5. 더 많이 할 때, 중지 위치는 최저 가격으로 ATR을 빼고, 중지 위치는 최고 가격으로 ATR의 2배를 더합니다.

전략적 이점

  1. 쌍평평선 교차는 RSI와 무작위 지표의 조합으로 가짜 신호를 효과적으로 필터링 할 수있는 간단한 트렌드 판단 지표입니다.
  2. RSI와 무작위 지표는 시장이 과매매 상태인지 판단하는 데 도움이 될 수 있으며, 극단적인 상황에서는 진입을 피할 수 있습니다.
  3. 고정 리스크 수익 비율의 포지션 관리 방식은 전반적인 위험을 통제하는 전제 조건에서 상대적으로 안정적인 수익을 얻을 수 있다.
  4. 매개 변수는 조정할 수 있으며, 다른 시장 환경과 거래 스타일에 적합하다.

전략적 위험

  1. 트렌드형 전략은 불안정한 시장에서 더 많은 가짜 신호를 발생시킬 수 있으며, 이로 인해 거래가 빈번하고 자금이 손실됩니다.
  2. 고정 비율의 손실은 단편적 손실이 지나치게 커져서 자금 곡선을 약화시킬 수 있다.
  3. 포지션 관리와 자금 관리에 대한 고려가 부족하여 극단적인 상황에 대처하기 어렵습니다.

전략 최적화 방향

  1. 신호의 정확성과 신뢰성을 높이기 위해 더 많은 효과적인 기술 지표를 도입하십시오.
  2. 더 역동적이고 지능적인 방법으로 스톱 로드 스톱을 설정하는 방법을 최적화하여 전략 수익 수준을 향상시킵니다.
  3. 포지션 관리의 측면에서는 ATR과 같은 변동률 지표와 결합하여 포지션을 동적으로 조정할 수 있다.
  4. 자금 관리에서, 위험 예산, 케일리 공식과 같은 방법을 도입하여 자금 사용 효율을 높여라.

요약하다

이 전략은 쌍평평선, RSI 및 무작위 지표를 기반으로 한 단선 거래 전략으로, 여러 기술적 지표의 공동 확인을 통해 트렌드적 기회를 잡는 동시에 거래 위험을 제어합니다. 전략의 논리는 명확하고, 매개 변수는 최적화하기 쉽고, 단선 거래를하는 투자자에게 적합합니다. 그러나, 이 전략에는 트렌드 파악 능력의 제한, 위치 및 자금의 동적 관리의 부족과 같은 몇 가지 결함이 있습니다. 이러한 문제는 더 많은 기술적 지표, 최적화 신호 및 위치 관리 등을 도입하여 전략의 성능을 더욱 향상시킬 수 있습니다.

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

//@version=5
strategy("Cruce de Medias con Filtros de RSI y Estocástico", overlay=true)

// Definir parámetros de las medias móviles
fast_length = input(20, title="Periodo de Media Rápida")
slow_length = input(50, title="Periodo de Media Lenta")

// Calcular medias móviles
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)

// Añadir filtro RSI
rsi_length = input(7, title="Periodo del RSI")
rsi = ta.rsi(close, rsi_length)
rsi_overbought = input(70, title="RSI Sobrecomprado")
rsi_oversold = input(30, title="RSI Sobrevendido")

// Añadir filtro Estocástico
k_period = input(7, title="K Periodo del Estocástico")
d_period = input(3, title="D Periodo del Estocástico")
smooth_k = input(3, title="Suavización del Estocástico")
stoch_k = ta.sma(ta.stoch(close, high, low, k_period), smooth_k)
stoch_d = ta.sma(stoch_k, d_period)
stoch_overbought = input(80, title="Estocástico Sobrecomprado")
stoch_oversold = input(20, title="Estocástico Sobrevendido")

// Definir niveles de stop-loss y take-profit con ratio 2:1
risk = input(1, title="Riesgo en ATR")
reward_ratio = input(2, title="Ratio Riesgo/Beneficio")
atr_length = input(14, title="Periodo del ATR")
atr = ta.atr(atr_length)
stop_loss = risk * atr
take_profit = reward_ratio * stop_loss

// Señal de compra
long_condition = ta.crossover(fast_ma, slow_ma) and rsi < rsi_overbought and stoch_k < stoch_overbought
if (long_condition)
    strategy.entry("Compra", strategy.long)

// Señal de venta
short_condition = ta.crossunder(fast_ma, slow_ma) and rsi > rsi_oversold and stoch_k > stoch_oversold
if (short_condition)
    strategy.entry("Venta", strategy.short)

// Configurar Stop-Loss y Take-Profit para posiciones largas
if (strategy.position_size > 0)
    strategy.exit("Take Profit/Stop Loss", from_entry="Compra", stop=low - stop_loss, limit=high + take_profit)

// Configurar Stop-Loss y Take-Profit para posiciones cortas
if (strategy.position_size < 0)
    strategy.exit("Take Profit/Stop Loss", from_entry="Venta", stop=high + stop_loss, limit=low - take_profit)

// Plotear las medias móviles en el gráfico
plot(fast_ma, title="Media Rápida (50)", color=color.blue)
plot(slow_ma, title="Media Lenta (200)", color=color.red)

// Plotear RSI y Estocástico en subgráficos
hline(rsi_overbought, "RSI Sobrecomprado", color=color.red)
hline(rsi_oversold, "RSI Sobrevendido", color=color.green)
plot(rsi, title="RSI", color=color.orange, linewidth=2)
hline(stoch_overbought, "Estocástico Sobrecomprado", color=color.red)
hline(stoch_oversold, "Estocástico Sobrevendido", color=color.green)
plot(stoch_k, title="Estocástico K", color=color.purple, linewidth=2)
plot(stoch_d, title="Estocástico D", color=color.purple, linewidth=1, style=plot.style_stepline)