이중 이동평균 후속 브레이크업 전략

저자:차오장, 날짜: 2024-04-01 11:58:55
태그:

img

전반적인 설명

이중 이동 평균 후퇴 브레이크아웃 전략 (Dual Moving Average Lagging Breakout Strategy) 은 일반적으로 사용되는 기술 분석 거래 전략이다. 이 전략은 시장 트렌드의 전환점을 파악하고 저위험, 고수익 거래를 달성하는 것을 목표로 다른 기간과 평균 진실 범위 (ATR) 인 두 가지 간단한 이동 평균 (SMA) 을 결합합니다. 이 전략의 핵심 아이디어는 이동 평균과 시장 변동성의 후퇴 성격을 활용하여 가격이 이동 평균을 통과하고 변동성이 제어 가능한 범위 내에서있을 때 거래 신호를 생성하는 것입니다.

전략 원칙

이 전략의 주요 원칙은 다음과 같습니다.

  1. 서로 다른 기간을 가진 두 개의 간단한 이동 평균 (SMA) 을 계산합니다. 14과 50의 결제 기간을 계산합니다.
  2. 시장 변동성을 측정하기 위한 ATR 지표를 계산하고, 14의 기본 기간을 계산합니다.
  3. 가격 변동에 대한 기준 범위로 ATR 상위 및 하위 대역을 그래프로 표시합니다. 상위 대역은 가장 높은 가격에 ATR 곱하기 인수 (예정 1.5) 를 더하여 얻을 수 있으며, 하위 대역은 가장 낮은 가격에서 ATR 곱하기 인수를 빼서 얻을 수 있습니다.
  4. 닫기 가격이 단기 이동 평균을 넘어서고 단기 이동 평균이 장기 이동 평균을 넘어서면 긴 신호가 생성되고 촛불 아래로 상향 화살표가 그려집니다.
  5. 닫기 가격이 단기 이동 평균 아래로 넘어가고 단기 이동 평균이 장기 이동 평균 아래로 넘어가면 짧은 신호가 생성되고 촛불 위에 하향 화살표가 그려집니다.
  6. 스톱 로스 및 트레이프 레벨을 설정합니다. 스톱 로스 레벨은 가장 낮은 가격인 ATR를 인수 인수 인수 인수 인수이며, 트레이프 레벨은 엔트리 가격 더하기 (엔트리 가격 - 스톱 로스 레벨) 인수 2입니다.

위의 원칙에서 볼 수 있듯이 이 전략은 유동평균 시스템의 추세 판단과 ATR 지표의 변동성 측정을 결합하여 추세에 초점을 맞추면서 유출 위험을 제어하여 추세를 따르는 전략입니다.

이점 분석

이중 이동평균 후속 브레이크오웃 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 트렌드 추적: 이동 평균 시스템을 통해 트렌드 방향을 판단하고 주요 시장 추세를 파악하고 시장을 추적합니다.
  2. 리스크 제어: ATR 지표를 사용하여 시장 변동성을 측정하고 적당한 스톱 로스 수준을 설정하여 인수율을 수용 가능한 범위 내에서 유지합니다.
  3. 유연한 매개 변수: 이동 평균 기간, ATR 기간 및 멀티플리커와 같은 매개 변수는 다양한 시장과 도구에 따라 최적화 및 조정 할 수 있으며, 일정 수준의 보편성을 제공합니다.
  4. 단순하고 직설적: 거래 신호는 간단하고 명확하며 다양한 수준의 투자자에게 적합합니다.

위험 분석

이 전략은 몇 가지 장점을 가지고 있지만, 여전히 다음과 같은 위험을 가지고 있습니다.

  1. 빈번한 거래: 시장이 매우 변동적이며 추세가 불분명하면 이 전략은 빈번한 거래 신호를 생성하여 거래 비용을 증가시킬 수 있습니다.
  2. 지연: 이동 평균 시스템은 본질적으로 일정 지연을 가지고 있으며 시장 전환점의 시작에서 약간의 마감이있을 수 있습니다.
  3. 매개 변수 최적화: 다른 매개 변수 설정은 전략 성과에 상당한 영향을 미치며, 다른 시장과 도구에 대한 매개 변수 최적화를 요구하며 구현의 어려움을 증가시킵니다.

위 위험에 대응하기 위해 전략은 다음과 같은 측면에서 최적화되고 개선될 수 있습니다.

  1. 트렌드 필터링을 도입하십시오. 거래 신호를 생성하기 전에 먼저 더 큰 시간 프레임의 트렌드 방향을 결정하고 더 큰 시간 프레임에서 트렌드가 명확한 경우에만 거래하여 빈번한 거래를 줄이십시오.
  2. 스톱 로스 및 트레이프 로스를 최적화: 트래일링 스톱 로스 및 변동성 스톱 로스와 같은 동적 스톱 로스 방법을 도입하는 것을 고려하고, 전략 유연성을 높이기 위해 시장 변동성에 따라 동적으로 트레이프 로스 수준을 조정합니다.
  3. 조합 최적화: 이 전략을 다른 기술적 지표 또는 근본적인 요소와 결합하여 전략의 안정성을 향상시킵니다.

최적화 방향

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

  1. 적응적 매개 변수 최적화: 서로 다른 도구와 시간 프레임에 대해 수동 매개 변수 조정의 작업 부하를 줄이기 위해 최적의 매개 변수 조합을 자동으로 찾습니다. 유전자 알고리즘 및 그리드 검색과 같은 방법을 최적화 위해 사용할 수 있습니다.
  2. 신호 필터링: 거래 신호를 생성 한 후 신호의 품질을 향상시키기 위해 신호의 2차 확인을 위해 다른 기술적 지표 또는 기본 요인을 추가로 도입하십시오. 예를 들어 트렌드 강도를 판단하기 위해 볼륨 지표를 추가하십시오. 전체 환경이 트렌드 지속을 유도하는지 여부를 결정하기 위해 거시 경제 데이터를 추가하십시오.
  3. 포지션 관리: 포지션을 열 때 단일 거래 위험을 제어하기 위해 시장 변동성 및 계정 위험과 같은 요인에 따라 포지션 크기를 동적으로 조정합니다. 켈리 공식 및 고정 비율 방법과 같은 방법을 포지션 관리에 사용할 수 있습니다.
  4. 트레이링 스톱 로스: 초기 스톱 로스 레벨은 고정되어 있습니다. 가격이 유리한 방향으로 움직일 때, 드라우다운을 줄이고 자본 활용 효율성을 향상시키기 위해 유리한 방향으로 스톱 로스 레벨을 이동하는 것을 고려하십시오. 일반적인 방법에는 트레이링 스톱 로스 및 브레이크 아웃 스톱 로스 등이 있습니다.

위의 최적화는 전략의 적응력, 견고성 및 수익성을 향상시킬 수 있지만 과도한 최적화는 곡선 적합으로 이어질 수 있으며, 결과적으로 샘플 외부의 성능이 떨어질 수 있습니다. 따라서 충분한 백테스팅과 검증은 샘플 내와 샘플 외부에서 수행되어야합니다.

요약

이중 이동 평균 후퇴 브레이크아웃 전략 (Dual Moving Average Lagging Breakout Strategy) 은 이동 평균 시스템을 통해 트렌드 방향을 결정하고 ATR 지표를 사용하여 위험을 제어하는 고전적인 트렌드 추후 전략이다. 위험 관리를 하면서 트렌드 움직임을 포착한다. 특정 후퇴와 빈번한 거래 문제가 있음에도 불구하고, 전략의 성능은 스톱 로스 및 영업 수준을 최적화하는 방법, 신호 필터링, 적응적 매개 변수 최적화 및 포지션 관리 등의 방법을 통해 더욱 향상될 수 있어 실용적인 양적 거래 전략이다.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="2 Moving Averages", shorttitle="2MA", overlay=true)

// Moving Averages
len = input(14, minval=1, title="Length MA1")
src = input(close, title="Source MA1")
ma1 = sma(src, len)

len2 = input(50, minval=1, title="Length MA2")
src2 = input(close, title="Source MA2")
ma2 = sma(src2, len2)

// Plotting Moving Averages
plot(ma1, color=#0b6ce5, title="MA1")
plot(ma2, color=#00ff80, linewidth=2, title="MA2")

// ATR Bands
atrLength = input(14, title="ATR Length")
atrMultiplier = input(1.5, title="ATR Multiplier")
upperBand = high + atr(atrLength) * atrMultiplier
lowerBand = low - atr(atrLength) * atrMultiplier

u =plot(upperBand, color=color.rgb(217, 220, 223, 84), title="ATR Upper Band")
l = plot(lowerBand, color=color.rgb(217, 220, 223, 84), title="ATR Lower Band")
fill(u, l, color=#471eb821, title="ATR Background")

// Conditions for plotting arrows
upArrowCondition = ma1 > ma2 and crossover(close, ma1)
downArrowCondition = ma1 < ma2 and crossunder(close, ma1)

// Plotting arrows
plotshape(upArrowCondition, style=shape.arrowup, color=color.rgb(66, 45, 255), size=size.normal, location=location.belowbar, title="Up Arrow")
plotshape(downArrowCondition, style=shape.arrowdown, color=color.red, size=size.normal, location=location.abovebar, title="Down Arrow")
// Checkbox for trade execution
showTrades = input(true, title="Hiển thị giao dịch")

// Buy Condition
if (upArrowCondition and showTrades)
    strategy.entry("Buy", strategy.long)

// Sell Condition
if (downArrowCondition and showTrades)
    strategy.entry("Sell", strategy.short)

// Stop Loss and Take Profit
stopLossBuy = low - atr(14) * atrMultiplier
takeProfitBuy = close + (close - stopLossBuy) * 2

stopLossSell = high + atr(14) * atrMultiplier
takeProfitSell = close - (stopLossSell - close) * 2

strategy.exit("Exit Buy", "Buy", stop=stopLossBuy, limit=takeProfitBuy)
strategy.exit("Exit Sell", "Sell", stop=stopLossSell, limit=takeProfitSell)



더 많은