추세 반전을 정확하게 포착하기 위한 이동 평균 교차 전략


생성 날짜: 2024-01-22 12:14:29 마지막으로 수정됨: 2024-01-22 12:14:29
복사: 1 클릭수: 546
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

추세 반전을 정확하게 포착하기 위한 이동 평균 교차 전략

개요

이 전략은 ‘황금 십자 죽음 십자 전략’이라고 불리며, 주요 아이디어는 두 개의 다른 주기 이동 평균 황금 십자 및 죽음 십자 두 가지 강력한 기술 지표 신호를 사용하여 시장 추세의 반전을 포착하고, 낮은 가격으로 높은 가격으로 판매하는 효과를 실현하는 것입니다.

전략 원칙

이 전략에서, 우리는 50주기 및 200주기의 간단한 이동 평균을 계산합니다. 전통적으로, 50일선이 상향에서 200일선을 넘어오면, ?? 죽음의 교차점이라고 불리며, 이는 시선 하향의 신호입니다.

이 전략의 거래 논리는 이 두 가지 신호의 출현에 따라 포지션을 구축하는 것이다. 구체적으로, 전략은 ?? 죽음의 교차가 발생했을 때 공백을 하고, ?? 금의 교차가 발생했을 때 더 많이 한다. 이렇게하면 시장 추세 전환점 근처에서 이익을 얻을 수 있다.

또한, 전략에는 사용자 정의 가능한 재검토 시간 범위 기능도 제공되어 있습니다. 이것은 우리가 다른 날짜의 범위 내에서 전략의 성능을 테스트 할 수있게하여 이러한 교차 신호의 실제 효과를 발견 할 수 있습니다.

전략적 이점

  1. 시장의 전환점을 효과적으로 잡을 수 있고, 중요한 지점 근처에 포지션을 열어 수익을 올릴 수 있습니다.
  2. 두 개의 다른 주기평균선의 교차 결합을 사용하여 잘못된 신호를 피할 수 있습니다.
  3. 다양한 시장 조건에서 전략의 실제 성능을 테스트하기 위한 피드백 기능을 제공합니다.
  4. 횡단 신호와 포지션 변화를 직관적으로 볼 수 있는 명확한 지도

전략적 위험

  1. 평균적 교차 신호가 지연되어 극단적 상황의 전환을 예측할 수 없습니다.
  2. 리포트 데이터는 실판 데이터와 차이가 있을 수 있으며 실제 성능은 거래 비용과 슬라이드 포인트에 제한됩니다.
  3. 평균선 주기와 같은 전략 변수 선택이 결과에 큰 영향을 미칩니다.
  4. “기본적인 상황과 기술에 집중해야 한다. 기계적인 거래는 불가능하다”.

위험을 고려하여 평균선 변수를 조정할 수 있고, 다른 지표의 필터링 신호와 함께 재무 관리를 잘하고 실제 위험을 줄이기 위해 실물 검증 전략을 사용할 수 있습니다.

전략 최적화 방향

이 전략은 다음의 몇 가지 측면에서 최적화될 수 있습니다.

  1. 다른 평선 주기들의 조합 효과를 테스트하기
  2. 거래량이나 변동률과 같은 필터링 지표를 증가시켜 일반적인 통로를 피하십시오.
  3. 경제 데이터나 기본 정보를 필터로
  4. 이동 상쇄 또는 시간 상쇄와 같은 상쇄 전략을 고려하십시오.
  5. 다른 지분 기간의 효과를 평가하는 방법

다른 변수들이 전략의 성능에 미치는 영향을 테스트함으로써, 우리는 더 나은 평평한 크로스 라인 거래 방법을 찾을 수 있습니다.

요약하다

이 전략은 이동 평균을 교차하는 고전적인 기술 지표 신호를 사용하여 시장의 중요한 전환점을 포착한다. 전략 논리는 간단하고 명확하며, 동시에 편리한 반추 기능을 제공합니다. 우리는 추세를 추적하는 구성 요소로서 판단을 보조 할 수 있습니다. 물론 실물에서는 여전히 다양한 외부 요소를 고려해야하며, 단일 지표의 맹목적 거래에 의존 할 수 없습니다.

전략 소스 코드
/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[S_R__9] - Death and Golden Cross", overlay=true)

// Specific Time Date Range For Backtest
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31, group='DATE CONFIG')
startMonth = input.int(title='Start Month', defval=1, minval=1, maxval=12, group='DATE CONFIG')
startYear = input.int(title='Start Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

endDate = input.int(title='End Date', defval=31, minval=1, maxval=31, group='DATE CONFIG')
endMonth = input.int(title='End Month', defval=12, minval=1, maxval=12, group='DATE CONFIG')
endYear = input.int(title='End Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

SPECIFIC_DATE = input.bool(title='USE SPECIFIC DATE ?', defval=false, group='DATE CONFIG')

inDateRange = SPECIFIC_DATE ? time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0) : true

// Calculate 50 SMA and 200 SMA
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)

// Detect a Death Cross (50 SMA crossing below 200 SMA)
deathCross = ta.crossunder(sma50, sma200)
// Detect a Golden Cross (50 SMA crossing above 200 SMA)
goldenCross = ta.crossover(sma50, sma200)

// Strategy Execution
if (inDateRange)
    if (deathCross)
        strategy.entry("Death Cross long", strategy.short)

    if (goldenCross)
        strategy.entry("Golden Cross short", strategy.long)

// Plot SMAs
plot(sma50, color=color.red, title="50 SMA")
plot(sma200, color=color.blue, title="200 SMA")

// Plotting Death Cross signal
plotshape(series=deathCross and inDateRange, title="Death Cross Signal", location=location.belowbar, color=color.red, style=shape.labeldown, text="DEATH CROSS")

// Plotting Golden Cross signal
plotshape(series=goldenCross and inDateRange, title="Golden Cross Signal", location=location.abovebar, color=color.green, style=shape.labelup, text="GOLDEN CROSS")