이동 평균 돌파를 통한 추세 추종 전략


생성 날짜: 2023-12-28 15:47:21 마지막으로 수정됨: 2023-12-28 15:47:21
복사: 2 클릭수: 525
avatar of ChaoZhang ChaoZhang
1
집중하다
1623
수행원

이동 평균 돌파를 통한 추세 추종 전략

개요

이 전략은 이동 평균, 폭 지표 및 평행선 전환 지표를 결합하여 트렌드의 판단과 돌파점의 확인을 구현하며, 전형적인 트렌드 추적 전략에 속한다. 판단이 상승 추세에 있고 가격이 최고점을 돌파했을 때 다자 상장을 설정하여 트렌드 추적을 구현한다. 판단이 트렌드 역전되었을 때 평지 상장을 한다.

전략 원칙

이 전략은 쌍 EMA를 사용하여 가격 추세를 판단하고 SMA 보조 판단을 사용합니다. 빠른 라인 EMA가 느린 EMA 위에 있고 빠른 라인 SMA가 느린 SMA 위에 있을 때 상승 추세에 있다고 간주합니다.

패러폴리 라인 전환 지표 PSAR을 사용하여 가격 반전 지점을 판단하십시오. PSAR이 가격 최고점을 통과하면 가격이 반전 될 수 있음을 나타냅니다. 이 때 평지 손실입니다.

상승 추세로 판단되고 PSAR에서 가장 높은 지점을 통과하면 가격이 계속 상승하는 것을 나타냅니다. 이 때 더 많은 추세를 추적하십시오.

우위 분석

  • 이중 EMA와 SMA 판단 트렌드를 사용하여 가짜 돌파구를 필터링 할 수 있습니다.
  • PSAR은 반전점을 효과적으로 판단하여 신속한 정지 효과를 얻을 수 있다.
  • 트렌드 전환점을 효과적으로 식별하고, 적시에 포지션을 추적할 수 있다.
  • 규칙이 명확하고 사용하기 쉽다.

위험 분석

  • 트렌드 판단에 오류가 있을 수 있다.
  • 전략은 거래 품종 변수에 대한 최적화가 필요하며, 그렇지 않으면 추격 위험이 더 커질 수 있습니다.
  • 거래비용을 고려하지 않은 문제가 있습니다.

해결책:

  • EMA와 SMA 파라미터를 최적화하여 판단의 정확도를 향상시킵니다.
  • 다양한 품종에 대한 최적화된 PSAR 파라미터
  • 거래비용에 대한 고려사항을 추가합니다.

최적화 방향

  • BOLL, MACD 등과 같은 더 많은 지표 판단 트렌드를 추가하십시오.
  • 양식 매개 변수를 훈련하고 최적화한다.
  • 손해배상 정책을 고려하세요.
  • 포지션 구축 및 스톱 로직을 최적화한다.

요약하다

이 전략은 전체적으로 비교적 전형적인 트렌드 추적 전략에 속한다. 장점은 규칙이 명확하고 간단하며, 트렌드 전환을 식별할 수 있다는 것이다. 단점은 매개 변수에 상대적으로 민감하며, 일정 수준의 추격 위험이 존재한다는 것이다. 전반적으로 추가적인 최적화와 조정 후 실물 검증할 가치가 있다. 주요 최적화 방향은 매개 변수 최적화, 상쇄 전략의 추가 등이다.

전략 소스 코드
/*backtest
start: 2023-11-27 00:00:00
end: 2023-12-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Buy Dip MA & PSAR", overlay=true)

PSAR_start = input(0.02)
PSAR_increment = input(0.02)
PSAR_maximum = input(0.2)

EMA_fast = input(20)
EMA_slow = input(40)
SMA_fast = input(100)
SMA_slow = input(200)

emafast = ema(close, EMA_fast)
emaslow = ema(close, EMA_slow)
smafast = sma(close, SMA_fast)
smaslow = sma(close, SMA_slow)

psar = sar(PSAR_start, PSAR_increment, PSAR_maximum)
uptrend = emafast > emaslow and smafast > smaslow
breakdown = not uptrend

if (psar >= high and uptrend)
    strategy.entry("Buy", strategy.long, stop=psar, comment="Buy")
else
    strategy.cancel("Buy")

if (psar <= low)
    strategy.exit("Close", "Buy", stop=psar, comment="Close")
else
    strategy.cancel("Close")

if (breakdown)
    strategy.close("Buy")


plot(emafast, color=blue)
plot(emaslow, color=red)