리처드 북스타버 모멘텀 브레이크업 전략

저자:차오장, 날짜: 2023-11-02 15:12:46
태그:

img

전반적인 설명

모멘텀 브레이크아웃 전략은 1984년 리처드 벅스타버 (Richard Bookstaber) 가 제안한 개념에 기초하여 큰 변동적인 움직임이 발생하면 시장이 그것을 따라가기 마련이라는 개념이다. 따라서 현재 폐쇄 가격의 변화가 ATR을 구성 가능한 상수로 곱하여 계산된 임계값을 초과하면 변동성을 측정하고 주문을 발행하기 위해 ATR을 사용합니다.

전략 논리

이 전략은 먼저 시장 변동성을 측정하기 위해 ATR 지표를 계산합니다. 그 다음 매일 종료 가격 변화의 절대 값을 계산합니다. 종료 가격 변화가 ATR 값을 여러 배로 초과하면 거래 신호가 생성됩니다. 구체적으로 종료 가격이 ATR 상부 레일보다 상승하면 길게 이동합니다. 종료 가격이 ATR 상부 레일보다 떨어지면 짧게 이동하십시오.

이 전략은 브레이크아웃 임계값을 동적으로 결정하기 위해 ATR 지표를 사용합니다. 시장 변동성이 증가하면 오류 트레이드를 줄이기 위해 임계값이 상승합니다. 시장 변동성이 감소하면 적시에 브레이크아웃 기회를 포착하기 위해 임계값이 감소합니다.

이점 분석

  • 동적 ATR 스톱 로스는 시장 변동성에 기반한 적응 스톱 로스로 위험을 효과적으로 제어할 수 있습니다.
  • 브레이크아웃을 사용하여 거래 신호를 생성하면 시장 트렌드 회전을 파악할 수 있습니다.
  • 큰 매개 변수 최적화 공간, 다른 제품과 사이클에 맞게 조정할 수 있습니다.
  • 전략 논리는 간단하고 명확하고 이해하기 쉽고 실행하기 쉽습니다.

위험 분석

  • ATR 지표는 갑작스러운 사건에 느리게 반응합니다. 초기 탈출을 놓칠 수도 있습니다.
  • 장기 및 단위 사이의 불균형은 양방향 거래보다 한쪽 거래에 훨씬 더 잘 작동합니다.
  • 전략 매개 변수들은 쉽게 과다 조정될 수 있고 실제 결과는 좋지 않을 수도 있습니다.
  • 빈번한 거래, 거래 비용은 높을 수 있습니다.

효율성을 높이기 위해 다른 지표를 결합하여 거래 기회를 선택하십시오. 또한 제품 특성에 따라 최적의 매개 변수를 선택하십시오. 마틴게일과 같은 기술을 사용하여 거래 빈도를 제어하십시오.

최적화 방향

  • 트렌드 방향을 결정하고 잘못된 거래를 피하기 위해 RSI, MACD와 같은 다른 지표를 결합하는 것을 고려하십시오.
  • 포지션 관리 모듈을 추가하여 시장 조건에 따라 포지션을 조정할 수 있습니다.
  • 다양한 제품에 최적의 매개 변수 세트를 선택할 수 있습니다.
  • 기계 학습 기술을 결합하여 자동으로 매개 변수를 최적화할 수 있습니다.

요약

모멘텀 브레이크아웃 전략은 간단하고 직접적이며, 브레이크아웃에서 거래 신호를 생성합니다. ATR 스톱 로스는 시장 변동성에 적응할 수 있습니다. 전략은 괜찮은 결과를 위해 매개 변수 최적화에 의존합니다. 그러나 초기 브레이크아웃을 놓치고, 빈번한 거래 등과 같은 몇 가지 문제가 있습니다. 복잡한 시장에서 안정적인 이익을 위해 다른 기술과 결합하여 추가 개선이 필요합니다. 전반적으로 모멘텀 브레이크아웃 전략은 명확한 논리를 가지고 있으며 추가 연구와 응용 가치가 있습니다.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 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/
// © EduardoMattje

//@version=5
strategy("Volatility System", overlay=false, margin_long=0, margin_short=0, default_qty_type=strategy.percent_of_equity, 
 default_qty_value=100, process_orders_on_close=true, initial_capital=20000)

// Inputs

var averageLength = input.int(14, "Average length", 2)
var multiplier = input.float(2.0, "Multiplier", 0.0, step=0.1)

// Calculations

atr = ta.atr(averageLength) * multiplier
closingChange = ta.change(close, 1)

atrPenetration(int signal) =>
    res = closingChange * signal > atr[1]

longCondition = atrPenetration(1)
shortCondition = atrPenetration(-1)

// Order calls

if (longCondition)
    strategy.entry(strategy.direction.long, strategy.long)

if (shortCondition)
    strategy.entry(strategy.direction.short, strategy.short)

// Visuals

plot(atr, "ATR", color.white, 2)
plot(math.abs(closingChange), "Absolute close change", color.red)


더 많은