동적 오스실레이션 브레이크업 전략

저자:차오장, 날짜: 2023-11-16 15:40:25
태그:

img

전반적인 설명

이 전략은 가격 움직임에 따라 입점 및 스톱 손실 지점을 결정하기 위해 동적 오스실레이션 채널 브레이크오웃을 채택합니다. 전략은 간단하고 모멘텀 주식에 적합합니다.

전략 논리

이 전략은 먼저 역동적인 오스실레이션 채널을 얻기 위해 지난 20일 동안 가장 높은 최고와 가장 낮은 최저를 계산합니다. 그 다음 8일 및 32일 기하급수적 이동 평균을 계산합니다. 닫기 가격이 채널의 상단역을 통과하고 8일 EMA가 32일 EMA보다 높을 때, 그것은 길게됩니다. 가격이 하단역을 통과하거나 8일 EMA가 32일 EMA보다 낮을 넘을 때, 그것은 빠져 나갑니다. 스톱 손실은 채널의 중단역 아래에 설정됩니다.

특히, 입국 조건은 다음과 같습니다.

  1. 닫기 가격은 지난 20일 동안 가장 높은 가격으로 형성된 역동적인 상위 밴드를 깨고

  2. 8일 EMA는 32일 EMA보다 높습니다.

출입 조건은 다음과 같습니다.

  1. 중간에 있는 지대 아래로 가격이 떨어지면 스톱 로스가 발생한다.

  2. 8일 EMA는 32일 EMA 아래로 넘어갑니다.

이 전략은 동적 채널을 이용해서 트렌드 방향과 EMA 크로스오버를 이용해서 현재 상승 트렌드 상태를 파악합니다. 이것은 위험을 제어하는 데 도움이 됩니다.

장점

  • 동적 채널 브레이크오웃은 트렌드 방향을 효과적으로 파악하고, 윙사브를 피합니다.
  • 8일 및 32일 EMA 크로스오버 필터는 잘 거래됩니다.
  • 단순하고 명확한 규칙, 이해하기 쉬운 규칙
  • 합리적인 스톱 로스 메커니즘

위험성

  • 실패한 탈출은 손실을 초래할 수 있습니다.
  • 채널 범위의 잘못된 매개 변수 조정으로 인해 너무 넓거나 너무 좁을 수 있습니다.
  • 부적절한 EMA 기간은 성과에 영향을 줄 수 있습니다.
  • 너무 단단한 스톱 손실은 과도한 스톱을 일으킬 수 있습니다.

이 위험은 채널 기간, EMA 기간 및 스톱 로스 포지셔닝을 최적화하여 관리 할 수 있습니다.

개선 할 수 있는 분야

  • 다양한 조류에 대한 채널 기간을 최적화합니다.
  • 최적의 기간을 찾기 위해 다른 EMA 조합을 테스트합니다.
  • 분출을 확인하기 위해 음을 추가합니다.
  • 진입 후 추적 중지 손실.

요약

동적 오스실레이션 브레이크아웃 전략은 채널 브레이크아웃과 EMA 크로스오버를 기반으로 트렌드를 식별하고 진입하는 명확한 논리를 가지고 있습니다. 스톱 로스는 위험을 제어하는 데 도움이됩니다. 채널 기간과 EMA 기간과 같은 매개 변수 조정이 수익 인자를 향상시킬 수 있습니다. 이 전략은 지속 패턴이있는 주식, 특히 이전 최고치를 깨는 데 잘 작동합니다.


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 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/
// © Robrecht99

//@version=5
strategy("My Strategy", overlay=true, margin_long=100, margin_short=100)

fast = ta.sma(close, 8)
slow = ta.sma(close, 32)

plot(fast, color=color.red)
plot(slow, color=color.navy)

entrycondition1 = ta.crossover(fast, slow)
entrycondition2 = fast > slow
sellcondition1 = ta.crossunder(fast, slow)
sellcondition2 = slow > fast

atr = ta.atr(14)

//Donchian Channels
days = 20
h1 = ta.highest(high[1], days)
l1 = ta.lowest(low[1], days)
mid = math.avg(h1, l1)
plot(mid, "channel", color=#FF6D00)
u = plot(h1, "Upper", color=#2962FF)
l = plot(l1, "Lower", color=#2962FF)
fill(u, l, color.new(color.blue, 90))

if (close > h1 and entrycondition2)
    strategy.entry("long", strategy.long)
    stoploss = close - atr * 3
    trail = close - atr * 3
    strategy.exit("exit", "long", stop=stoploss, trail_offset=trail)
if (sellcondition1 and sellcondition2)
    strategy.close(id="long")


더 많은