슈퍼 Z 양적 추세 전략


생성 날짜: 2023-11-27 18:41:59 마지막으로 수정됨: 2023-11-27 18:41:59
복사: 0 클릭수: 570
1
집중하다
1176
수행원

슈퍼 Z 양적 추세 전략

개요

슈퍼 Z 양적 트렌드 전략은 양적 지표에 기반한 트렌드 추적 전략이다. 이 전략은 사용자 정의 지표를 슈퍼 트렌드 지표와 결합하여 트렌드에 대한 판단과 추적을 수행한다.

전략 원칙

이 전략의 핵심 지표는 사용자 정의 된 양적 지표 VHMA 였습니다. VHMA 지표는 Hull 이동 평균을 기반으로 계산되며, Hull MA를 제곱근 함수로 다시 매끄럽게 처리하여 좋은 매끄러움의 곡선을 형성합니다. VHMA 곡선은 가격 트렌드 방향을 판단 할 수 있습니다.

이 전략은 또한 슈퍼 트렌드 지표와 결합되어 있습니다. 슈퍼 트렌드 지표는 더 긴 주기 가격 동향을 발견 할 수 있으며, VHMA 지표는 트렌드 방향을 판단 할 수 있습니다. 가격이 슈퍼 트렌드 라인을 돌파 할 때, 트렌드가 역전되는 것을 나타냅니다.

따라서 이 전략은 VHMA 지표를 통해 단기 트렌드 방향을 판단하고, 슈퍼 트렌드 지표를 통해 장기 트렌드 전환점을 판단하여 전체 트렌드에 대한 추적을 구현한다. 특정 거래 논리는 슈퍼 트렌드 라인을 돌파 할 때 거래 신호를 발송한다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. VHMA 지표는 부드러우기 때문에 잘못된 신호를 줄이고 트렌드 방향을 정확하게 판단할 수 있다.

  2. 슈퍼 트렌드 지표와 결합하여 장기적인 트렌드 반전을 발견하고 매매 시기를 잡을 수 있습니다.

  3. 다양한 색의 개체 K선과 공백 K선으로 종식 가격과 개시 가격의 크기의 관계를 묘사하여 시각적 지표를 형성하여 추세를 판단하는 데 도움을줍니다.

  4. 다중 시간 프레임 디자인을 적용하여 높은 시간 프레임에서 트렌드 방향을 판단하고 낮은 시간 프레임에서 거래 신호를 발송하여 효율적인 필터링을 수행합니다.

  5. 전략 파라미터는 최적화된 설계로, 안정성이 좋으며, 다양한 시장 환경에 적용된다.

위험 분석

이 전략에는 다음과 같은 위험도 있습니다.

  1. 양적 지표에는 회측 효과가 있으며, 실체 효과는 회측보다 약할 수 있다.

  2. 슈퍼 트렌드 지표의 파라미터를 잘못 설정하면 거래 기회를 놓치거나 무의미한 거래를 증가시킬 수 있습니다.

  3. 다중 시간 프레임 디자인은 실 디스크 조건에서도 실패할 수 있다.

대책:

  1. 슬라이드 포인트 설정을 추가하고, 패러미터를 최적화하여 재측정 효과를 줄여줍니다.

  2. 슈퍼 트렌드 지표 파라미터를 조정하고, 파라미터 설정을 최적화합니다.

  3. 여러 시간 프레임의 매칭 방법을 테스트하여 여러 시간 프레임의 안정성을 보장합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화될 수 있습니다.

  1. VHMA 지표 대신 다른 평평한 이동 평균 지표를 테스트합니다.

  2. 슈퍼 트렌드 지표 대신 다른 종류의 트렌드 지표를 시도하는 것.

  3. 기계 학습 모델 훈련 지표 파라미터를 추가하십시오.

이러한 최적화 조치는 복잡한 상황에 대한 전략의 적응성을 향상시킬 수 있습니다.

요약하다

슈퍼 Z량화 트렌드 전략은 사용자 정의 트렌드 지표 VHMA와 슈퍼 트렌드 지표를 결합하여 가격 트렌드를 판단하고 추적합니다. 전략의 안정성이 좋으며 실내 효과는 우수합니다. 지속적인 테스트 및 최적화를 통해이 전략은 효율적이고 안정적인량화 트렌드 추적 전략이 될 수 있습니다.

전략 소스 코드
/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//Original script
//https://www.tradingview.com/script/wYknDlLx-super-Z/

//@version=4
strategy("Super Z strategy - Thanks to Rafael Zioni", shorttitle="Super Z strategy",overlay=true )
src5 = input(close)
    
tf = input(1440)
len5 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   tf / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7

ma = ema(src5*volume, len5) / ema(volume, len5)


//script taken from https://www.tradingview.com/script/kChCRRZI-Hull-Moving-Average/

src1 = ma

p(src1, len5) =>
    n = 0.0
    s = 0.0
    for i = 0 to len5 - 1
        w = (len5 - i) * len5
        n := n + w
        s := s + src5[i] * w
    s / n

hm = 2.0 * p(src1, floor(len5 / 2)) - p(src1, len5)
vhma = p(hm, floor(sqrt(len5)))
lineColor = vhma > vhma[1] ? color.lime : color.red
plot(vhma, title="VHMA", color=lineColor ,linewidth=3)
hColor = true,vis = true
hu = hColor ? (vhma > vhma[2] ? #00ff00 : #ff0000) : #ff9800

vl = vhma[0]
ll = vhma[1]
m1 = plot(vl, color=hu, linewidth=1, transp=60)
m2 = plot(vis ? ll : na,  color=hu, linewidth=2, transp=80)

fill(m1, m2,  color=hu, transp=70)
//

b = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   60 / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7



//
res5 = input("D", type=input.resolution)

o = security(syminfo.tickerid, res5, open, barmerge.gaps_off, barmerge.lookahead_on)
c = security(syminfo.tickerid, res5, close, barmerge.gaps_off, barmerge.lookahead_on)
hz = security(syminfo.tickerid, res5, high, barmerge.gaps_off, barmerge.lookahead_on)
l = security(syminfo.tickerid, res5, low, barmerge.gaps_off, barmerge.lookahead_on)



col = c >= o ? color.lime : color.red

ppo = plot(b ? o >= c ? hz : l : o, color=col, title="Open", style=plot.style_stepline, transp=100)
ppc = plot(b ? o <= c ? hz : l : c, color=col, title="Close", style=plot.style_stepline, transp=100)

plot(b and hz > c ? hz : na, color=col, title="High", style=plot.style_circles, linewidth=2,transp=60)
plot(b and l < c ? l : na, color=col, title="Low", style=plot.style_circles,linewidth=2, transp=60)

fill(ppo, ppc, col)

//
// INPUTS //
st_mult   = input(1,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(50, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev =l - (st_mult * atr(st_period))
dn_lev = hz + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := c[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := c[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := c > down_trend[1] ? 1: c < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend

// Plotting
//plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_cross, linewidth = 2, title = "SuperTrend")
buy=crossover( c, st_line)
sell=crossunder(c, st_line)
signal=input(false)

/////////////// Plotting /////////////// 
plotshape(signal and buy, style=shape.triangleup, size=size.normal, location=location.belowbar, color=color.lime)
plotshape(signal and sell, style=shape.triangledown, size=size.normal, location=location.abovebar, color=color.red)


if (buy)
    strategy.entry("My Long Entry Id", strategy.long)

if (sell)
    strategy.entry("My Short Entry Id", strategy.short)