제로 라그 변동성 브레이크업 EMA 트렌드 전략

저자:차오장, 날짜: 2024-01-15 12:00:25
태그:

img

전반적인 설명

이 방법은 간단한 브레이크아웃 전략으로, 다른 두 개의 제로 레이그 EMA 사이의 차이를 사용하여 기기의 상승 또는 하락 모멘텀을 추적합니다. 차이가 구성 가능한 표준편차의 볼링거 밴드를 깨면 기본 EMA의 방향에 따라 긴/단 신호가 생성됩니다.

전략 논리

이 전략은 기동성 차이를 얻기 위해 특별히 계산된 두 개의 EMA 지표를 사용합니다.

hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))  
dif = (hJumper / lJumper) - 1

이 차이는 급격한 가격 변화에 즉각적으로 반응합니다.

디프가 상부 볼링거 밴드 위에 넘어가면 입구 신호가 발동됩니다. 디프가 중부 볼링거 밴드 아래에 넘어가면 출구 신호가 발동됩니다. 기본 EMA의 방향은 긴 또는 짧은 것을 결정합니다.

이점 분석

이 전략의 가장 큰 장점은 지연 없이 브레이크아웃 신호에 빠르게 반응하는 것입니다. 이것은 특별히 계산된 두 개의 제로 레이그 EMA를 사용하여 달성됩니다. 이것은 전략이 즉시 가격 브레이크아웃 이벤트를 캡처하고 신흥 트렌드에 일찍 들어갈 수있게합니다.

또 다른 장점은 이 전략의 단순성이다. 그것은 하나의 매개 변수 lx만을 가지고 있다. 더 적은 매개 변수들은 최적화를 더 쉽게 하고 과장 조정의 위험을 줄인다.

위험 분석

이 전략의 주요 위험은 신호의 가능한 잘못된 파업이다. 범위 기간 동안 연속적인 잘못된 파업이 발생할 수 있습니다. 이 위험을 완화하기 위해 우리는 신호를 더 안정적으로 만들기 위해 볼링거 밴드 배수를 증가시킬 수 있습니다.

또 다른 위험은 불안정한 시장에서 빈번한 작은 이득/손실입니다. 이것은 출구 메커니즘을 조정하여 예를 들어 스톱 로스 또는 영업 가격 수준을 설정함으로써 완화 될 수 있습니다.

최적화 방향

이 전략이 최적화 될 수 있는 몇 가지 방향은 아래와 같습니다.

  1. 입력 신호를 검증하고 잘못된 신호를 줄이기 위해 필터 표시기를 추가합니다.

  2. 스톱 로스를 포함하고 수익을 취하여 거래를 더 잘 관리하십시오.

  3. 거래량 확인을 찾아서 거래량 약속 없이 가짜 브레이크오프를 피하세요.

  4. 시장의 변동성에 따라 매개 변수를 조정하기 위해 적응 가능한 볼링거 대역을 채택합니다.

  5. 기계 학습을 기반으로 동적으로 매개 변수를 최적화합니다.

결론

요약하자면, 이 제로 레이그 변동성 브레이크아웃 EMA 전략은 레이그 없이 특별히 계산된 EMA를 사용하여 가격 동력을 빠르게 포착합니다. 다음 단계 최적화는 필터, 스톱 로스/프로프트, 볼륨 확인 등을 추가하여 전략을 다양한 시장 환경에서 견고하게 만들 수 있습니다.


/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wbburgin

//@version=5
strategy("Zero-lag Volatility-Breakout EMA Trend Strategy",overlay=false)

tt1 = "If selected, the strategy will not close long or short positions until the opposite signal is received. This"+
 " exposes you to more risk but potentially could generate larger returns."

src = input.source(close,"Source")
lx = input.int(200,"EMA Difference Length")
bbmult = input.float(2.0,"Standard Deviation Multiple")
useBinaryStrategy = input.bool(true,"Use Binary Strategy",tooltip = tt1)

hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))

dif = (hJumper / lJumper) - 1

[bbm,bbu,bbl] = ta.bb(dif,lx,bbmult)

plot(dif,color=color.white,title="Zero lag EMA Difference")
plot(bbu,color=color.lime,title="Bollinger Top")
plot(bbl,color=color.red,title="Bollinger Bottom")
plot(bbm,color=color.yellow,title="Bollinger Middle")

sigEnter = ta.crossover(dif,bbu)
sigExit = ta.crossunder(dif,bbm)
emaBase = ta.ema(src,lx)
enterLong = sigEnter and emaBase > emaBase[1]
enterShort = sigEnter and emaBase < emaBase[1]

plotshape(enterLong,style=shape.labelup,location=location.bottom,color=color.green,size=size.tiny)
plotshape(enterShort,style=shape.labeldown,location=location.top,color=color.red,size=size.tiny)

if enterLong
    strategy.entry("Long",strategy.long)
if enterShort
    strategy.entry("Short",strategy.short)
if not useBinaryStrategy and sigExit
    strategy.close("Long")
    strategy.close("Short")

더 많은