ZLSMA 강화 샹들리에 출구 전략 및 볼륨 펄스 감지

ZLSMA ATR RVOL
생성 날짜: 2024-06-17 15:41:45 마지막으로 수정됨: 2024-06-17 15:41:45
복사: 0 클릭수: 1206
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

ZLSMA 강화 샹들리에 출구 전략 및 볼륨 펄스 감지

개요

이 전략은 들리어 출구 (Chandelier Exit), 제로 지연 이동 평균 (ZLSMA) 및 상대 거래량 (RVOL) 펄스 검출을 결합하여 하나의 완전한 거래 시스템을 형성한다. 들리어 출구 (Chandelier Exit), 제로 지연 이동 평균 (ZLSMA) 및 상대 거래량 (RVOL) 펄스 검출은 전략이 낮은 변동률의 시장에서 피하는 데 도움을 주고 거래 품질을 향상시킵니다.

전략 원칙

  1. ATR을 계산하고 ATR과 최고 가격/최저 가격에 따라 다중 헤드 및 빈 헤드 중지 위치를 계산한다.
  2. ZLSMA를 계산하여 트렌드 방향을 판단합니다.
  3. RVOL를 계산하여 RVOL와 설정한 임계값을 비교하여 트래픽이 펄스가 발생하는지 판단한다.
  4. 다단 입시: 현재 종결 가격에 ZLSMA를 착용하고, RVOL이 절감값보다 크며, 과다 입장을 열어, 스톱 로드 위치가 근래의 최저점이다.
  5. 공허 입시: 현재 종결 가격 아래 ZLSMA를 뚫고, RVOL이 시한부보다 크며, 공허권을 열고, 스톱 로드는 근래의 최고점이다.
  6. 다수 출전: ZLSMA를 현재 종결 가격 아래로 착용하고, 평대 다수 .
  7. 빈 머리 출장: 현재 폐장 가격에 ZLSMA를 입고, 빈 티켓.

전략적 이점

  1. 램프 출전 법칙은 고정된 손실의 위험을 줄여서 손해의 위치를 동적으로 조정할 수 있다.
  2. ZLSMA는 가격 변화에 신속하게 반응하여 거래에 대한 신뢰할 수있는 추세 판단을 제공합니다.
  3. RVOL 펄스 검사는 전략이 낮은 변동률의 정립 시장을 피하고 거래 품질을 향상시키는 데 도움이 됩니다.
  4. 전략의 논리는 명확하고, 이해하기 쉽고, 실행하기 쉽다.

전략적 위험

  1. 트렌드가 보이지 않거나 자주 변동하는 시장에서 이 전략은 더 많은 거래 수를 나타낼 수 있으며, 이로 인해 수수료 비용이 증가한다.
  2. 전략의 파라미터 설정 (ATR 주기, ZLSMA 주기, RVOL 값 등) 은 전략의 성능에 큰 영향을 미치며, 부적절한 파라미터는 전략의 성능이 떨어질 수 있다.
  3. 이 전략은 포지션 관리 및 위험 통제를 고려하지 않고 실제 적용에서는 자금 관리 원칙을 결합해야합니다.

전략 최적화 방향

  1. 추세 판단의 정확성을 더욱 높이기 위해 평균선 시스템이나 동력 지표와 같은 추세 확인 지표를 도입하십시오.
  2. RVOL 펄스 검출의 논리를 최적화하여, 예를 들어, 연속적으로 발생하는 여러 RVOL 펄스를 고려하여 거래를 하기 전에, 신호 품질을 더욱 향상시키기 위해.
  3. 출전 조건에 수익정지 논리를 추가하여, 특정 수익 목표가 달성되면 매매를 청산하여 이미 얻은 수익을 잠금합니다.
  4. 시장 특성과 거래 유형에 따라 전략 파라미터를 최적화하여 최적의 파라미터 조합을 찾습니다.
  5. 포지션 관리 및 위험 제어 원칙과 결합하여 전략의 완성도를 높이고 전략의 안정성과 신뢰성을 향상시킵니다.

요약하다

ZLSMA-강화형 램프 출구 전략과 거래량 펄스 검출은 트렌드 추적형 전략으로, 동적 스톱로스, 트렌드 판단 및 거래량 펄스 검출을 통해 트렌드 기회를 잡는 동시에 거래 위험을 제어한다. 전략 논리는 명확하고 이해하기 쉽고 구현되지만 실제 응용에서는 특정 시장 특성과 거래 품종과 결합하여 여전히 최적화 및 개선이 필요합니다. 더 많은 신호 확인 지표를 도입하고 출구 조건을 최적화하고 매개 변수를 합리화하고 엄격한 포지션 관리 및 위험 관리를 통해 전략은 안정적이고 효율적인 거래 도구가 될 전망이다.

전략 소스 코드
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Chandelier Exit Strategy with ZLSMA and Volume Spike Detection", shorttitle="CES with ZLSMA and Volume", overlay=true, process_orders_on_close=true, calc_on_every_tick=false)
// Chandelier Exit Inputs
lengthAtr = input.int(title='ATR Period', defval=1)
mult = input.float(title='ATR Multiplier', step=0.1, defval=2.0)
useClose = input.bool(title='Use Close Price for Extremums', defval=true)
// Calculate ATR
atr = mult * ta.atr(lengthAtr)
// Calculate Long and Short Stops
longStop = (useClose ? ta.highest(close, lengthAtr) : ta.highest(high, lengthAtr)) - atr
shortStop = (useClose ? ta.lowest(close, lengthAtr) : ta.lowest(low, lengthAtr)) + atr
// Update stops based on previous values
longStop := na(longStop[1]) ? longStop : close[1] > longStop[1] ? math.max(longStop, longStop[1]) : longStop
shortStop := na(shortStop[1]) ? shortStop : close[1] < shortStop[1] ? math.min(shortStop, shortStop[1]) : shortStop
// Determine Direction
var int dir = na
dir := na(dir[1]) ? (close > shortStop ? 1 : close < longStop ? -1 : na) : close > shortStop[1] ? 1 : close < longStop[1] ? -1 : dir[1]
// ZLSMA Inputs
lengthZLSMA = input.int(title="ZLSMA Length", defval=50)
offsetZLSMA = input.int(title="ZLSMA Offset", defval=0)
srcZLSMA = input.source(close, title="ZLSMA Source")
// ZLSMA Calculation
lsma = ta.linreg(srcZLSMA, lengthZLSMA, offsetZLSMA)
lsma2 = ta.linreg(lsma, lengthZLSMA, offsetZLSMA)
eq = lsma - lsma2
zlsma = lsma + eq
// Plot ZLSMA
plot(zlsma, title="ZLSMA", color=color.purple, linewidth=3)
// Swing High/Low Calculation
swingHigh = ta.highest(high, 5)
swingLow = ta.lowest(low, 5)
// Relative Volume (RVOL) Calculation
rvolLength = input.int(20, title="RVOL Length")
rvolThreshold = input.float(1.5, title="RVOL Threshold")
avgVolume = ta.sma(volume, rvolLength)
rvol = volume / avgVolume
// Define buy and sell signals based on ZLSMA and Volume Spike
buySignal = (dir == 1 and dir[1] == -1 and close > zlsma and rvol > rvolThreshold)
sellSignal = (dir == -1 and dir[1] == 1 and close < zlsma and rvol > rvolThreshold)
// Define exit conditions based on ZLSMA
exitLongSignal = (close < zlsma)
exitShortSignal = (close > zlsma)
// Strategy Entries and Exits
if (buySignal)
    strategy.entry("Long", strategy.long, stop=swingLow)
if (sellSignal)
    strategy.entry("Short", strategy.short, stop=swingHigh)
if (exitLongSignal)
    strategy.close("Long")
if (exitShortSignal)
    strategy.close("Short")
// Alerts
alertcondition(buySignal, title='Alert: CE Buy', message='Chandelier Exit Buy!')
alertcondition(sellSignal, title='Alert: CE Sell', message='Chandelier Exit Sell!')