리소스 로딩... 로딩...

월간 이동 평균 필터 추세와 함께 역사적인 높은 돌파구 전략에 따라

저자:차오장, 날짜: 2024-12-13 10:25:18
태그:ATHSMAMA

img

전반적인 설명

이 전략은 역사적인 높은 돌파구와 월간 이동 평균 필터에 기반한 트렌드 다음 시스템이다. 이는 8 기간 간 간단한 이동 평균 (8 SMA) 을 월간 시간 프레임에서 판매 필터로 사용하여 이전 역사적인 최고 이상의 가격 브레이크를 모니터링함으로써 구매 신호를 생성합니다. 전략 디자인은 잘못된 브레이크 위험을 줄이기 위해 트렌드 연속의 시장 특성에 맞게 조정되며 특히 강한 상승 시장의 주요 트렌드를 포착하는 데 적합합니다.

전략 원칙

핵심 논리는 두 가지 핵심 요소로 구성됩니다.

  1. 구매 신호: 최신 종료 가격이 이전 역사 최고치 (현행 바의 최고치를 제외) 를 넘을 때 생성됩니다. 이 조건은 명확한 상승 추세에서만 진입을 보장합니다.
  2. 판매 신호: 월별 종료 가격이 8 기간 간단한 이동 평균 이하로 떨어지면 발생. 이 조건은 신속한 스톱 로스를 돕고 트렌드 역전으로 인한 더 큰 손실을 방지합니다. 이 전략은 또한 신호 상태를 추적하는 메커니즘을 포함하여 동일한 상태의 반복 신호를 피하고 전략의 안정성을 향상시킵니다.

전략적 장점

  1. 강력한 트렌드 캡처: 역사적인 높은 브레이크오웃 탐지를 통해 강력한 상승 트렌드를 효과적으로 캡처합니다.
  2. 강력한 리스크 제어: 월간 이동 평균을 필터로 통합하여 잘못된 파장을 효과적으로 차단합니다.
  3. 높은 신호 안정성: 신호 반복을 방지하기 위해 신호 상태를 추적하기 위해 lastSignal 변수를 사용합니다.
  4. 좋은 시각화: 역사적인 높은 라인, 이동 평균, 구매 / 판매 마커를 포함한 명확한 그래픽 인터페이스를 제공합니다.
  5. 높은 적응력: 다른 시간 프레임과 도구에 적용 할 수 있습니다.

전략 위험

  1. 지연 위험: 역사적으로 높은 브레이크아웃 신호는 본질적으로 다소 지연되어 최적의 입구 지점을 놓치고 있습니다.
  2. 가짜 브레이크 위험: 월간 이동 평균 필터링에도 불구하고, 가짜 브레이크는 여전히 다양한 시장에서 발생할 수 있습니다.
  3. 마감 위험: 전략은 트렌드 전환 시점에 상당한 마감을 경험할 수 있습니다.
  4. 포지션 관리 위험: 전략에는 포지션 크기의 메커니즘이 없어 추가 금전 관리 규칙이 필요합니다.

전략 최적화 방향

  1. 부피 확인: 신호 신뢰성을 향상시키기 위해 부피 표시기를 파업 확인 조건으로 추가합니다.
  2. 증강된 스톱 로스: 후속 스톱 또는 변동성 기반 스톱과 같은 보다 유연한 스톱 로스 규칙을 설계합니다.
  3. 포지션 관리: 시장 변동성과 트렌드 강도에 따라 포지션 크기를 동적으로 조정합니다.
  4. 신호 필터링: ADX와 같은 트렌드 강도 지표를 추가하여 약한 신호를 필터합니다.
  5. 시간 필터링: 적절한 기간 동안 거래를 피하기 위해 시간 기간 필터를 추가합니다.

요약

이는 명확한 논리를 가진 전략을 따르는 잘 설계된 트렌드입니다. 역사적 높은 브레이크오웃과 월간 이동 평균의 조합을 통해 효과적인 트렌드 캡처와 합리적인 리스크 컨트롤을 모두 달성합니다. 지연 및 잘못된 브레이크오웃의 본질적인 위험이 있지만 제안된 최적화 방향은 추가 성능 향상을 위한 잠재력을 제공합니다. 전략은 명확한 트렌드를 가진 시장에 특히 적합하며 중장기 투자에 중요한 참조 도구로 사용될 수 있습니다.


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

//@version=5
strategy("Buy Signal on Close Greater Than Previous All-Time High Strategy", overlay=true)

// Initialize the previous all-time high
var float prevAllTimeHigh = na

// Update the all-time high, excluding the current bar's high (use previous bar's high)
if (na(prevAllTimeHigh) or high[1] > prevAllTimeHigh)
    prevAllTimeHigh := high[1]

// Monthly closing price and 8 SMA on monthly time frame
monthlyClose = request.security(syminfo.tickerid, "M", close)
monthlySMA = ta.sma(monthlyClose, 8)

// Variables to track the last signal type
var int lastSignal = 0 // 0 = None, 1 = Buy, 2 = Sell

// Debugging output to check the all-time high and conditions
plot(prevAllTimeHigh, color=color.blue, linewidth=1, title="Previous All-Time High")
plot(monthlySMA, color=color.green, linewidth=1, title="8 SMA (Monthly)")

// Buy signal: when the latest close is greater than the previous all-time high
buySignal = close > prevAllTimeHigh and lastSignal != 1

// Sell signal: when the monthly close is below the 8 SMA
sellSignal = monthlyClose < monthlySMA and lastSignal != 2

// Update the last signal type after triggering a signal
if (buySignal)
    lastSignal := 1
if (sellSignal)
    lastSignal := 2

// Execute the strategy orders
if (buySignal)
    strategy.entry("Buy", strategy.long)

if (sellSignal)
    strategy.close("Buy")

// Optional: Plot buy and sell signals on the chart for visual reference
plotshape(series=buySignal, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
plotshape(series=sellSignal, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)


관련

더 많은