제로 래그 선형 회귀 이동 평균 및 샹들리에 출구 추세 추종 전략

ZLSMA CE 趋势跟踪 波动率跟踪止损 方向确认 移动平均线 ATR
생성 날짜: 2025-04-30 11:13:38 마지막으로 수정됨: 2025-07-10 17:00:53
복사: 9 클릭수: 674
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

제로 래그 선형 회귀 이동 평균 및 샹들리에 출구 추세 추종 전략 제로 래그 선형 회귀 이동 평균 및 샹들리에 출구 추세 추종 전략

개요

제로 뒤떨어진 선형 회귀 이동 평균과 램프 수출 트렌드 추적 전략은 제로 뒤떨어진 선형 회귀 이동 평균 ((ZLSMA) 과 램프 수출 ((CE) 지표를 결합한 양적 거래 시스템이다. 이 전략은 주로 가격과 ZLSMA의 상대적인 위치와 CE 지표의 방향 변화를 기반으로 진입 시기를 결정하는 전형적인 트렌드 추적 전략에 속한다. 이 전략은 15분 시간 프레임에서 가장 잘 작동하며 신호 속도와 트렌드 필터링 사이에 좋은 균형을 잡을 수 있다. 가격 트렌드를 정확하게 포착하고 변동률을 정밀하게 모니터링함으로써 시장 추세가 명확하게 될 때 더 나은 수익을 얻을 수 있다.

전략 원칙

이 전략의 핵심은 두 가지 주요 지표의 상호 작용에 기반합니다.

  1. 제로 지연 선형 회귀 이동 평균 (ZLSMA):

    • ZLSMA는 전통적인 선형 회귀 이동 평균 (LSMA) 의 개선된 버전으로, 두 번의 선형 회귀를 통해 계산하고 지연성을 제거하여 가격 변화에 더 빠르게 반응할 수 있습니다.
    • 계산 방법: 먼저 가격의 선형 회귀값을 계산하고, 그 다음에는 LSMA의 선형 회귀값을 계산하고, 마지막으로 LSMA와 ((LSMA-LSMA2) 를 더하여 ZLSMA를 얻는다.
    • 코드에서 조정 가능한 파라미터가 설정되어 있습니다. 그 중에는 길이 (기본 200주기), 오차량 및 데이터 소스 (기본 종료 가격) 등이 있습니다.
  2. 들리어 출구:

    • CE는 변동률에 기반한 트래킹 스톱 로드 지표로, ATR (Average True Range) 를 사용하여 동적 스톱 로드를 설정한다.
    • 다중 헤드 스톱 로즈 계산: 최고 가격 미만 ATR 곱하기 배수 ((설정 2.0)
    • 공허점 스톱로스 계산: 최저 가격과 ATR의 배수.
    • 스톱피스는 가격 변화에 따라 동적으로 조정되어 트래킹 스톱피스 효과를 형성한다.
    • 가격이 스톱로스를 돌파했을 때, 지표의 방향이 바뀌어 거래 신호를 생성한다.

이 전략의 거래 논리는 다음과 같습니다.

  • 복수 입학 조건:CE 방향은 공백으로 회전 (buySignal_ce) 하고 가격은 ZLSMA 위에 있다.
  • 공허 입학 조건:CE 방향은 더 많은 회전공 ((sellSignal_ce) 으로 가격이 ZLSMA 아래에 있다.
  • 이 전략은 새로운 포지션을 개시하기 전에 모든 역전 포지션을 닫고 포지션 방향의 깨끗한 전환을 보장합니다.

이 전략은 본질적으로 트렌드 확인 (ZLSMA) 과 변동률 추적 중단 (CE) 을 결합하여 두 가지 조건이 동시에 충족되면 거래 신호를 유발하여 가짜 신호를 효과적으로 줄입니다.

전략적 이점

코드에 대한 심층적인 분석을 통해, 이 전략은 다음과 같은 명백한 장점을 가지고 있습니다:

  1. 이중 확인 메커니즘: 전략은 CE 방향 신호와 가격이 ZLSMA의 위치에 대한 조건을 동시에 충족하도록 요구하며, 신호의 신뢰성을 크게 향상시켰다.

  2. 적응력:

    • ZLSMA는 낮은 지연성을 가지고 있으며 가격 변화에 빠르게 반응할 수 있다.
    • CE는 ATR을 기반으로 시장의 변동에 따라 자동으로 중지 위치를 조정하여 다양한 변동 환경에서 적응력을 유지할 수 있습니다.
  3. 트렌드 추적과 리스크 통제의 균형:

    • ZLSMA는 중·장기 추세 방향을 확인하는데 도움을 줍니다.
    • CE는 변동률 자율적 출전 메커니즘을 제공하여, 효과적으로 철수를 제어한다.
  4. 매개 변수 조정: 전략은 ZLSMA 길이, CE의 ATR 주기 및 배수 등과 같은 여러 조정 가능한 파라미터를 제공하며, 다른 시장 환경과 거래 품종에 따라 최적화 할 수 있습니다.

  5. 깨끗하게 방향을 전환: 전략은 새로운 방향에 들어가기 전에 먼저 역전치 포지션을 닫습니다. 동시에 여러 공백 포지션을 보유하는 상황을 피하고 거래 방향을 명확히합니다.

  6. 변동성 기반의 위험 관리: ATR을 변동률 측정 기준으로 사용하여, 스톱 포지션은 시장의 실제 변동에 맞추어, 고정 스톱이 너무 단단하거나 너무 느슨할 수 있는 문제를 피한다.

전략적 위험

이 전략은 합리적으로 설계되었지만, 다음과 같은 잠재적인 위험들이 있습니다.

  1. 시장의 부진으로 인한 지진:

    • 트렌드 추적 전략으로서, 시장에서 명백한 트렌드가 없을 때 빈번한 가짜 신호가 발생할 수 있다.
    • 시장의 수평 정리에는 거래비용이 과도하게 증가하는 출입이 빈번하게 발생할 수 있습니다.
  2. 매개변수 민감도:

    • ZLSMA 길이는 (기본 200) 더 크고, 신호 지연을 초래할 수 있다.
    • CE의 ATR 배수 설정을 잘못하면 정지 손실이 너무 느려지고 (시간에 출전하지 않음) 또는 너무 긴박해질 수 있다 (주로 흔들린다).
  3. 초기 중단 장치의 부재이 전략은 주로 동적 스톱로 CE를 의존하지만, 명확한 초기 스톱 설정이 없기 때문에 시장이 갑자기 급격하게 변동하면 큰 손실을 입을 수 있습니다.

  4. 단일 시간 프레임 제한전략은 15분 시간 프레임에 최적화되어 있고, 여러 시간 프레임의 확인이 부족하여 더 큰 시간 프레임의 중요한 트렌드 정보를 놓칠 수 있습니다.

  5. 거래 빈도와 비용의 균형:CE 지표의 방향 변화는 특히 ATR 주기의 세팅이 작을 때 (기본 1) 과잉 거래로 이어질 수 있다.

이러한 위험들에 대해 다음과 같은 해결책이 제시되어 있습니다.

  • 시장이 흔들리는 뚜렷한 영역에서 전략이 중단됩니다.
  • 다른 시장 환경의 동적에 따라 변수를 조정
  • 초기 고정 손실을 추가하여 추가 보호
  • 다중 시간 프레임 확인 메커니즘을 도입합니다.
  • 최소 지분 시간 또는 신호 필터를 설정하여 과잉 거래를 줄이십시오.

전략 최적화 방향

코드 분석을 바탕으로, 이 전략은 다음과 같은 몇 가지 최적화 방향이 있습니다.

  1. 다중 시간 프레임 확인:

    • 1시간 또는 4시간 ZLSMA 방향과 같은 더 높은 시간 프레임의 트렌드 확인을 도입하고, 상하 시간 프레임의 트렌드가 일치하는 경우에만 거래한다.
    • 이 방법은 역동적인 트렌드 조작의 가능성을 줄이고, 승률을 높일 수 있다.
  2. 신호 필터 강화:

    • 추가적인 필터링 조건을 추가합니다. 예를 들어, 거래량 확인, 동력 지표 또는 중요한 지지 저항 지점 판단.
    • RSI 또는 MACD와 같은 지표를 포함하는 것을 고려할 수 있으며, 과매매하지 않은 지역에서만 포지션을 열 수 있습니다.
    • 이것은 가짜 신호를 줄이고 신호의 질을 높이는 데 도움이 될 것입니다.
  3. 동적 변수 최적화:

    • 시장의 변동 상황에 따라 ZLSMA 길이와 CE의 ATR 배수를 조정한다.
    • 높은 변동성이 있는 시장은 더 큰 ATR 배수를 사용하여 자주 출전을 피할 수 있고, 낮은 변동성이 있는 시장은 그 반대이다.
    • 변동률 지표인 VIX 또는 ATR의 변동률 자동 조정 파라미터를 사용하는 것이 고려될 수 있다.
  4. 손해 방지 전략 개선:

    • 첫 번째 방어선으로 고정 초기 스톱을 추가하십시오.
    • 일부 수익 잠금 메커니즘을 구현합니다. 예를 들어, 일부 포지션을 무위험 상태로 이동합니다.
    • 지탱 저항 지점에 기반한 지능형 스톱 손실 설정을 고려하십시오.
  5. 포지션 관리 최적화:

    • 현재 전략은 고정 비율 포지션 ((100% 적당권) 을 사용하며, 변동률이나 승률에 기반한 동적 포지션 관리로 변경할 수 있다.
    • 피라미드 상장 또는 분기 상장 메커니즘을 도입하여 트렌드가 강화되면 상장하고 약화되면 상장한다.
    • 이것은 수익 트렌드를 극대화하고 인출을 최소화하는데 도움이 될 것입니다.
  6. 신호 확인 시간:

    • 현재는 K선 종결시 신호를 확인하는 전략으로 신호가 몇 회 지속되는 것을 고려하여 소음 영향을 줄일 수 있다.
    • 또는 가격행동 패턴을 이용해서 추가적인 확인을 할 수 있습니다.

요약하다

제로 뒤떨어진 선형 회귀 이동 평균과 램프 수출 트렌드 추적 전략은 기술 분석과 위험 관리를 결합한 완전한 거래 시스템이다. 낮은 뒤떨어진 ZLSMA와 변동율 기반의 CE 지표를 결합함으로써 전략은 시장의 추세를 효과적으로 포착하고 동적인 위험 제어 장치를 제공합니다. 전략의 이중 확인 메커니즘은 신호 신뢰성을 크게 향상시키고 자율적 특성으로 인해 다양한 시장 환경에서 안정적인 성능을 유지할 수 있습니다.

전략이 간격의 흔들림 시장에서 잘하지 않을 수 있지만, 여러 시간 프레임 확인, 강화된 신호 필터, 최적화 파라미터 및 개선된 중지 전략과 같은 조치를 도입함으로써 그 성능을 더욱 향상시킬 수 있습니다. 특히, 동적 포지션 관리 및 지능형 중지 설정의 도입은 높은 승률을 유지하면서 위험을 제어하는 데 도움이 될 것입니다.

종합적으로, 이것은 합리적이고 논리적으로 설계된 트렌드 추적 전략이며, 고전적인 기술적 분석의 철학을 반영하고 현대적인 양적 거래의 위험 관리 사상을 통합합니다. 지속적인 최적화와 적절한 매개 변수의 조정으로, 이 전략은 다양한 시장 환경에서 안정적인 성능을 발휘할 잠재력을 가지고 있습니다.

전략 소스 코드
/*backtest
start: 2024-04-30 00:00:00
end: 2025-04-28 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script® strategy uses the Zero-Lag LSMA (ZLSMA) and a Chandelier Exit (CE) mechanism.
// It enters long or short trades based on CE direction signals, confirmed by the position of price relative to ZLSMA.
// Long trades only trigger if price is above ZLSMA; short trades only if price is below it.

// @version=6
//@version=6
strategy("ZLSMACE Strategy", overlay=true)


// ───── ZLSMA Settings ─────
var string calcGroup_zlsma = 'Calculation of ZLSMA'
length_zlsma = input.int(200, title="Length of ZLSMA", group=calcGroup_zlsma)
offset_zlsma = input.int(0, title="Offset of ZLSMA", group=calcGroup_zlsma)
src_zlsma = input.source(close, title="Source of ZLSMA", group=calcGroup_zlsma)

// ZLSMA Calculation
lsma_zlsma = ta.linreg(src_zlsma, length_zlsma, offset_zlsma)
lsma2_zlsma = ta.linreg(lsma_zlsma, length_zlsma, offset_zlsma)
eq_zlsma = lsma_zlsma - lsma2_zlsma
zlsma_value = lsma_zlsma + eq_zlsma

// ───── Chandelier Exit (CE) Settings ─────
var string calcGroup_ce = 'Calculation of CE'
length_ce = input.int(title='ATR Period of CE', defval=14, group=calcGroup_ce)
mult_ce = input.float(title='ATR Multiplier of CE', step=0.1, defval=2.0, group=calcGroup_ce)
useClose_ce = input.bool(title='Use Close Price for Extremums', defval=true, group=calcGroup_ce)

// CE Stop Level Calculations
atr_ce = mult_ce * ta.atr(length_ce)

longStop_ce = (useClose_ce ? ta.highest(close, length_ce) : ta.highest(length_ce)) - atr_ce
longStopPrev_ce = nz(longStop_ce[1], longStop_ce)
longStop_ce := close[1] > longStopPrev_ce ? math.max(longStop_ce, longStopPrev_ce) : longStop_ce

shortStop_ce = (useClose_ce ? ta.lowest(close, length_ce) : ta.lowest(length_ce)) + atr_ce
shortStopPrev_ce = nz(shortStop_ce[1], shortStop_ce)
shortStop_ce := close[1] < shortStopPrev_ce ? math.min(shortStop_ce, shortStopPrev_ce) : shortStop_ce

// CE Direction Detection
var int dir_ce = 1
dir_ce := close > shortStopPrev_ce ? 1 : close < longStopPrev_ce ? -1 : dir_ce

// Entry Signals
buySignal_ce = dir_ce == 1 and dir_ce[1] == -1
sellSignal_ce = dir_ce == -1 and dir_ce[1] == 1

// ───── Strategy Execution ─────
// Long Entry: Direction turns long AND price is above ZLSMA
if (buySignal_ce and close > zlsma_value)
    strategy.entry("Long", strategy.long)

// Exit Short if long signal appears
if (buySignal_ce)
    strategy.close("Short")

// Short Entry: Direction turns short AND price is below ZLSMA
if (sellSignal_ce and close < zlsma_value)
    strategy.entry("Short", strategy.short)

// Exit Long if short signal appears
if (sellSignal_ce)
    strategy.close("Long")