정확한 트렌드 역전 이동 평균 크로스오버 전략

저자:차오장날짜: 2024-01-22 12:14:29
태그:

img

전반적인 설명

이 전략은 골든 크로스 데스 크로스 전략이라고 불립니다. 그것의 핵심 아이디어는 시장에서 트렌드 반전을 파악하고 낮은 구매 / 높은 판매에서 이익을 얻기 위해 다른 시간 프레임의 두 이동 평균의 황금 십자가와 죽음의 십자가에 의해 생성되는 강력한 신호를 활용하는 것입니다.

전략 논리

이 전략에서는 50주기 및 200주기 단순 이동 평균 (SMA) 라인을 계산합니다. 전통적으로, 50일 SMA가 200일 SMA 아래를 넘을 때, 그것은 하락 전망을 나타내는 데스 크로스이라고 불립니다. 그리고 50일 SMA가 200일 SMA 위에 넘을 때, 그것은 상승세를 나타내는 골든 크로스입니다.

거래의 논리는 단순히 이러한 신호에 기반한 포지션을 취하는 것입니다. 죽음의 십자가에서 짧고 황금 십자가에서 길게 이동합니다. 이것은 시장 트렌드가 역전될 때 전환점 근처에서 이익을 얻을 수 있습니다.

또한, 전략은 백테스트를 위해 사용자 정의 가능한 날짜 범위를 제공합니다. 그래서 우리는 다른 기간 동안이 크로스오버 신호의 실제 효과를 조사 할 수 있습니다.

장점

  1. 트렌드 반전 지점에서 주요 영역 근처에 있는 포지션을 효과적으로 포착합니다.
  2. 서로 다른 기간의 두 개의 SMA를 조합하면 잘못된 신호를 필터링합니다.
  3. 백테스팅 기능은 시장 체제에서 실제 성과를 조사합니다.
  4. 깨끗한 그래프는 시각적으로 교차 신호와 위치 변경을 표시

위험성

  1. SMA 교차는 극심한 반전을 지연하고 예측할 수 없습니다.
  2. 백테스트 데이터는 비용과 미끄러짐으로 인해 실시간 성능과 다를 수 있습니다.
  3. SMA 기간과 같은 매개 변수 선택은 결과에 큰 영향을 미칩니다.
  4. 단지 기계적 거래가 아니라 기초와 기술적인 것을 통합해야 합니다

위험을 해결하기 위해, 우리는 매개 변수를 최적화, 필터를 추가, 위험을 관리, 종이를 거래 전략 등 위험을 최소화 할 수 있습니다.

더 나은 기회

이 전략을 최적화하는 주요 방법은 다음과 같습니다.

  1. 다른 기간 조합의 SMA를 테스트하는 것
  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")


더 많은