이 방법은 간단한 브레이크아웃 전략으로, 다른 두 개의 제로 레이그 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만을 가지고 있다. 더 적은 매개 변수들은 최적화를 더 쉽게 하고 과장 조정의 위험을 줄인다.
이 전략의 주요 위험은 신호의 가능한 잘못된 파업이다. 범위 기간 동안 연속적인 잘못된 파업이 발생할 수 있습니다. 이 위험을 완화하기 위해 우리는 신호를 더 안정적으로 만들기 위해 볼링거 밴드 배수를 증가시킬 수 있습니다.
또 다른 위험은 불안정한 시장에서 빈번한 작은 이득/손실입니다. 이것은 출구 메커니즘을 조정하여 예를 들어 스톱 로스 또는 영업 가격 수준을 설정함으로써 완화 될 수 있습니다.
이 전략이 최적화 될 수 있는 몇 가지 방향은 아래와 같습니다.
입력 신호를 검증하고 잘못된 신호를 줄이기 위해 필터 표시기를 추가합니다.
스톱 로스를 포함하고 수익을 취하여 거래를 더 잘 관리하십시오.
거래량 확인을 찾아서 거래량 약속 없이 가짜 브레이크오프를 피하세요.
시장의 변동성에 따라 매개 변수를 조정하기 위해 적응 가능한 볼링거 대역을 채택합니다.
기계 학습을 기반으로 동적으로 매개 변수를 최적화합니다.
요약하자면, 이 제로 레이그 변동성 브레이크아웃 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")