모멘텀 브레이크아웃 ATR 변동성 전략


생성 날짜: 2024-01-12 13:50:44 마지막으로 수정됨: 2024-01-12 13:50:44
복사: 0 클릭수: 732
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

모멘텀 브레이크아웃 ATR 변동성 전략

개요

이 전략은 간단한 이동 평균 조합 쌍평준 전략을 사용하여 ATR 변동률 지표와 함께 시장 변동률을 판단한다. 단기 평균 선 위에 긴 주기 평균 선을 가로질러 다단계 시장으로 판단하면 다중 입장을 한다. 단기 평균 선 아래 긴 주기 평균 선을 가로질러 공백 시장으로 판단하면 공백 입장을 한다.

전략 원칙

핵심 부분은 쌍평균선 전략이다. 쌍평균선 전략은 일반적으로 단기평균선과 장기평균선을 선택한다. 예를 들어 50일평균선과 200일평균선이다. 단기평균선 위에 장기평균선을 뚫을 때 구매 신호를 발생시킨다. 단기평균선 아래에 장기평균선을 뚫을 때 판매 신호를 발생시킨다. 쌍평균선 전략은 시장의 장기간 단기 경향의 변화를 판단하고, 평균선을 뚫고 트렌드의 전환점을 포착한다.

이 전략에서는 50일 평균선을 단기 평균선으로, 200일 평균선을 장기 평균선으로 선택한다. 합성 교차량 중도 평균 VWAP를 결합하여 평균선 신호의 신뢰성을 판단한다. 즉, 평균선 신호와 VWAP이 동시적으로 들어오기만 하면 된다. 이렇게 하면 일부 가짜 신호를 필터링 할 수 있다.

또한 RSI 지표에 추가하여 과잉 구매와 과잉 판매를 피하십시오. RSI가 70보다 높으면 구매를 피하고, RSI가 30보다 낮으면 판매를 피하십시오.

마지막으로 ATR 평균 변동폭 지표를 통해 시장의 변동성과 위험 수준을 판단한다. ATR 값이 1.18보다 크면 높은 변동으로 정의되며, 이 때 배경 색상을 변경하여 위험이 높다는 것을 알려줍니다. 일시적으로 거래를 피하고, 변동률이 감소한 후의 시간을 기다립니다.

우위 분석

이 전략의 장점은 크게 세 가지로 나타납니다.

  1. 이중 평행선은 시장의 중·장기 경향의 전환점을 포착하고, 트렌드 트레이딩을 이용하여 더 많은 수익을 얻습니다.

  2. VWAP 필터링과 결합하여 가짜 신호의 신뢰성을 높인다.

  3. RSI를 도입하면 역시장 거래를 피할 수 있고 손실을 줄일 수 있다.

  4. ATR 변동률 지표를 적용하여 시장의 위험 상태를 판단하고, 높은 변동의 시간을 피하여 손실을 줄일 수 있다.

  5. 다양한 지표 포지션은 간단하고 이해하기 쉬운 구현으로 양적 거래에 적합합니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 쌍평준이 신호를 생성할 때, 가격이 이미 크게 변한 것일 수 있으며, 중매될 위험이 있다. 해결책은 평준 사이클을 줄이고, 지표 반응 속도를 가속화하는 것이다.

  2. VWAP에 오류가 발생할 수 있으며, 이는 올바른 거래 신호를 필터링하게 됩니다. 해결 방법은 다른 지표로 확인됩니다.

  3. 트렌드 말기에 RSI는 오랜 시간 동안 오버 바이 오버 셀 영역에있을 수 있으며, 이로 인해 트렌드 반전 지점을 놓치게됩니다. 해결책은 MACD와 같은 다른 지표와 함께 확인하는 것입니다.

  4. ATR은 시장의 변동에 대해 판단할 때 지연이 있을 수 있다. 해결책은 최고 가격, 최저 가격 등의 시장 변동에 대해 판단하는 것이다.

  5. 수익이 기대에 미치지 못할 수 있으며, 적절한 변수를 조정할 필요가 있다.

최적화 방향

이 전략은 여전히 개선할 수 있는 여지가 있습니다.

  1. 더 많은 평행선 조합을 테스트하여 최적의 변수를 찾습니다.

  2. MACD, KDJ 등과 같은 더 많은 보조 지표 필터 신호를 추가하십시오.

  3. 손실을 줄이고 수익을 높이기 위해 스톱 손실을 최적화하십시오.

  4. 강한 주식과 약한 주식의 거래 전략의 차이를 평가하고, 분류 모형을 수행한다.

  5. 기계 학습 알고리즘 (RNN) 과 같은 기계 학습 알고리즘과 결합하여 매개 변수의 자동 최적화 및 전략 평가를 구현한다.

  6. 자동 거래 시스템을 개발하고, 실 디스크를 연결하여 재검토를 한다.

요약하다

이 전략은 전체적으로 비교적 간단한 트렌드 추적 전략이다. 핵심은 쌍평평선을 사용하여 장기 단기 트렌드를 판단한다. VWAP와 RSI를 결합하여 신호를 처리하고 ATR을 적용하여 위험을 평가한다. 전략의 아이디어는 간단하고 이해하기 쉬운 동작이다. 일정 최적화 공간을 통해 더 나은 수익을 얻을 수 있다.

전략 소스 코드
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simple Moving Averages", overlay=true)

sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close)
rsi = ta.rsi(close, 14)
[diPlus, diMinus, adx_val] = ta.dmi(14, 14)
atr_val = ta.atr(14)

plot(sma50, color=color.new(color.green, 0))
plot(sma200, color=color.new(color.red, 0))
plot(vwap)

longCondition = ta.crossover(sma50, sma200) and vwap > close
shortCondition = ta.crossunder(sma50, sma200) and vwap < close

if (longCondition)
    strategy.entry("Long", strategy.long)
    
if (shortCondition)
    strategy.entry("Short", strategy.short)

barcolor = sma50 > sma200 ? (vwap < close ? (rsi < 70 ? color.green : color.blue) : color.yellow) : (sma50 < sma200 ? (vwap > close ? (rsi > 30 ? color.red : color.orange) : color.yellow) : na)
barcolor(barcolor)
bgcolor(adx_val > 25 and atr_val > 1.18 ? color.new(color.gray, 50) : color.new(color.black, 50), transp=90)

// ADX and ATR Label Box
// label.new(bar_index, high, "ADX: " + str.tostring(adx_val, "#.##") + "\nATR: " + str.tostring(atr_val, "#.##"), color=color.new(color.white, 0), textcolor=color.new(color.black, 0), style=label.style_labeldown, yloc=yloc.price, xloc=xloc.bar_index, size=size.small, textalign=text.align_left)

// Exit conditions (optional)
strategy.close("Long", when = ta.crossunder(sma50, sma200))
strategy.close("Short", when = ta.crossover(sma50, sma200))

// Take Profit and Stop Loss
takeProfitPercentage = 5
stopLossPercentage = 3

strategy.exit("Take Profit / Stop Loss", "Long", profit = takeProfitPercentage, loss = stopLossPercentage)
strategy.exit("Take Profit / Stop Loss", "Short", profit = takeProfitPercentage, loss = stopLossPercentage)