다중 이동 평균 추세 추종 및 RSI 모멘텀 전략


생성 날짜: 2024-11-29 15:20:30 마지막으로 수정됨: 2024-11-29 15:20:30
복사: 0 클릭수: 336
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 이동 평균 추세 추종 및 RSI 모멘텀 전략

개요

이 전략은 다중 평행선 시스템과 RSI 지표에 기반한 트렌드 추적 전략이다. 이 전략은 20, 50 및 200 주기의 이동 평균 조합을 사용하여 서로 다른 평행선 사이의 위치 관계를 분석하여 시장의 흐름을 판단하고 RSI 지표와 결합하여 거래 신호를 확인한다. 이 전략은 동적 스톱 손실과 수익 목표를 설정하여 스톱 손실을 추적하여 얻은 이익을 보호한다.

전략 원칙

이 전략의 핵심은 3개의 평균선 (MA20, MA50, MA200) 사이의 상대적인 위치 관계를 분석하여 시장의 추세를 결정하는 것이다. 이 전략은 18가지의 다른 평균선 조합 시나리오를 정의하고 있으며, 주로 평균선 교차와 위치 관계에 초점을 맞추고 있다. 단기 평균선이 장기 평균선 위에 있을 때, 더 많은 것을 할 경향이 있다. 반대로 더 많은 것을 할 경향이 있다. 과도한 거래를 피하기 위해, 이 전략은 RSI 지표를 필터링 조건으로 도입했으며, RSI가 70보다 낮으면 더 많은 것을 할 수 있고, 30보다 높으면 더 많은 것을 할 수 있다. 이 전략은 1:10의 리스크 수익률을 설정하고, 25점의 추적 스톱을 사용하여 이익을 보호한다.

전략적 이점

  1. 다차원 트렌드 확인: 여러 평행선 사이의 관계를 분석하여 시장 트렌드의 강도와 방향을 더 정확하게 판단 할 수 있습니다.
  2. 다이내믹 리스크 관리: 손실을 추적하는 스톱 메커니즘을 적용하여 수익을 보호하면서 계속 성장할 수 있습니다.
  3. 필터링 메커니즘 개선: RSI 지표와 결합하여 신호 필터링을 수행하여 가짜 신호를 효과적으로 감소시킵니다.
  4. 리스크/이익 비율 최적화: 1:10의 리스크/이익 비율을 적용하여 큰 추세에서 오는 수익을 추구합니다.
  5. 유연성: 전략은 다른 시장과 시기를 적용할 수 있습니다.

전략적 위험

  1. 흔들림 시장 위험: 수평 변동 시장에서 빈번한 가짜 브레이크 신호가 발생할 수 있습니다.
  2. 슬라이드 포인트 위험: 빠른 시장에서 25점 추적 스톱은 슬라이드 포인트 때문에 정확하게 실행되지 않을 수 있습니다.
  3. 트렌드 리버스 위험: 트렌드 리버스 시 전략은 느리게 반응하여 이미 얻은 수익을 회수할 수 있습니다.
  4. 변수 의존성: 전략 효과는 평균 주기 및 RSI 변수의 선택에 크게 의존합니다.

전략 최적화 방향

  1. 트래픽 지표 도입: 트래픽 분석을 추가하여 트렌드 판단의 정확도를 높일 수 있습니다.
  2. 최적화 시나리오 정의: 부분적으로 반복되는 시나리오 정의를 간소화하여 전략 실행 효율성을 높일 수 있습니다.
  3. 동적 파라미터 조정: 시장의 변동에 따라 동적으로 조정할 수 있는 스톱포트 추적
  4. 시간 필터링을 추가: 거래 시간 필터를 추가하여 큰 변동이있는 시장 개시 및 종료 시간을 피합니다.
  5. 최적화 신호 확인: 트렌드 강도 확인 지표를 추가하여 거래 신호의 신뢰성을 높일 수 있습니다.

요약하다

이 전략은 구조적으로 완전하고 논리적으로 명확한 트렌드 추적 전략이다. RSI 지표의 필터링과 함께 여러 평행선 시스템의 결합을 통해 비교적 신뢰할 수있는 거래 시스템을 형성한다. 전략의 위험 관리 메커니즘은 합리적으로 설계되어 있으며, 스톱을 추적하는 방식으로 수익을 보호하고 조기 퇴출하지 않습니다. 전략에는 여전히 최적화 할 수있는 공간이 있지만 전체적인 프레임 워크 설계는 과학적이며 실제 응용 가치가 있습니다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Refined MA Strategy with Trailing Stop for 30m", overlay=true)

// Define the moving averages
TR20 = ta.sma(close, 20)
TR50 = ta.sma(close, 50)
TR200 = ta.sma(close, 200)

// Define the RSI for additional filtering
rsi = ta.rsi(close, 14)

// Define the scenarios
scenario1 = TR20 > TR50 and TR50 > TR200
scenario2 = TR50 > TR20 and TR20 > TR200
scenario3 = TR200 > TR50 and TR50 > TR20
scenario4 = TR50 > TR200 and TR200 > TR20
scenario5 = TR20 > TR200 and TR200 > TR50
scenario6 = TR200 > TR20 and TR20 > TR50
scenario7 = TR20 == TR50 and TR50 > TR200
scenario8 = TR50 == TR20 and TR20 > TR200
scenario9 = TR200 == TR50 and TR50 > TR20
scenario10 = TR20 > TR50 and TR50 == TR200
scenario11 = TR50 > TR20 and TR20 == TR200
scenario12 = TR20 > TR50 and TR50 == TR200
scenario13 = TR20 == TR50 and TR50 == TR200
scenario14 = TR20 > TR50 and TR200 == TR50
scenario15 = TR50 > TR20 and TR200 == TR50
scenario16 = TR20 > TR50 and TR50 == TR200
scenario17 = TR20 > TR50 and TR50 == TR200
scenario18 = TR20 > TR50 and TR50 == TR200

// Entry conditions
longCondition = (scenario1 or scenario2 or scenario5) and rsi < 70
shortCondition = (scenario3 or scenario4 or scenario6) and rsi > 30

// Execute trades based on scenarios with 50 points stop loss and 1:10 RR, using a trailing stop of 25 points
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit", from_entry="Long", limit=close + 250, trail_offset=25)

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit", from_entry="Short", limit=close - 250, trail_offset=25)