모멘텀 브레이크아웃 이동평균 전략


생성 날짜: 2023-09-19 16:33:13 마지막으로 수정됨: 2023-09-19 16:33:13
복사: 2 클릭수: 628
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 이동 평균과 동력 지표의 조합을 기반으로 트렌드 추적 전략에 속한다. 그것은 특정 주기 내의 이동 평균을 계산하여 시장의 트렌드 방향을 판단한다. 가격이 이동 평균을 돌파 할 때, 트렌드가 전환되었다고 생각하여 거래 할 수 있다. 동시에, 그것은 특정 주기 내의 지속적인 상승 또는 하락의 날을 확인 신호로 도입하여 가짜 돌파 사기 피한다.

전략 원칙

이 전략은 크게 두 가지 지표에 기반을 두고 있습니다.

  1. 간단한 이동 평균 ((SMA): 일정 주기 내의 종결 가격 평균을 계산하여 대략적인 경향 방향을 판단한다.

  2. 지속된 상승/하락의 날: 통계적 가격이 지속적으로 상승 또는 하락 상태에 있는 날, 트렌드 전환의 확인 신호로.

구체적으로, 전략은 우선 520일 길이의 SMA를 계산하여 대략적인 트렌드 방향을 나타냅니다. 가격 상승이 SMA를 뚫면 상승일 수를 통계하기 시작하며, 가격 하락이 SMA를 뚫면 하락일 수를 통계하기 시작합니다. 상승 또는 하락일 수가 27일을 달성하면 해당 방향의 거래를 수행합니다.

예를 들어, 가격이 상승하면 SMA를 깨고 27 일 동안 상승하면 더 많은 거래가 이루어집니다. 가격이 하락하면 SMA를 깨고 27 일 동안 하락하면 더 많은 거래가 이루어집니다.

우위 분석

이 전략은 이동 평균과 동력 지표와 결합하여 트렌드를 효과적으로 추적할 수 있으며, 단기 시장 소음에 방해받지 않습니다. 주요 장점은 다음과 같습니다:

  1. 긴 주기 SMA를 사용하여 큰 트렌드를 판단하여 단기 변동의 잡음을 효과적으로 제거 할 수 있습니다.

  2. 지속적인 상승/하락의 확증 신호를 늘려서, 단기적인 가짜 돌파구에 속지 않도록 하고, 불필요한 거래를 줄일 수 있다.

  3. 트렌드가 변할 때만 거래하면 트렌드의 방향과 강도를 최대한 잡을 수 있다.

  4. 규칙이 명확하고 실행하기 쉽으며, 복잡한 매개 변수 최적화가 필요하지 않아 일반 투자자에게 적합합니다.

위험 분석

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

  1. 장기 동향 시장에서, 초기 진입 기회를 놓칠 수 있습니다.

  2. 위기 상황에서는, 빈번한 가짜 돌파구 속임수에 노출되어 너무 많은 무효 거래가 발생한다.

  3. SMA 매개 변수 설정이 적절하지 않은 경우, 트렌드 변화에 대한 전략의 반응이 느려질 수 있습니다.

  4. perfusion 파라미터가 적절하지 않은 경우 거래 신호가 너무 자주 또는 희박하게 발생할 수 있습니다.

최적화 방향

이 전략은 다음의 몇 가지 측면에서 더 개선될 수 있습니다.

  1. 다중 시기의 SMA를 추가하고, 단일 시기의 제한을 피하기 위해 다중 시기의 검증을 수행합니다.

  2. MACD와 같은 다른 트렌드 지표를 추가하여 종합 판단을 통해 정확도를 높일 수 있습니다.

  3. 퍼퓨전 파라미터를 최적화하여 균형점을 찾습니다. 거래 신호가 너무 자주 또는 희박하지 않도록하십시오.

  4. 단편적 손실을 통제하기 위해 손실을 막는 전략을 추가하십시오.

  5. 양성능 지표와 결합하여 양성능이 벗어나는 위험을 피하십시오.

요약하다

이 전략은 전체적으로 단순하고 실용적인 트렌드 추적 전략이다. 긴 주기 SMA를 통해 큰 트렌드를 판단하고, 퍼퓨션으로 트렌드 전환을 확인하는 신호를 통해 트렌드를 효과적으로 추적할 수 있으며, 동시에 잡음 속임수를 피할 수 있다. 약간의 최적화를 통해 신뢰할 수 있는 트렌드 전략이 될 수 있다. 그러나 특정 시장 상황에서의 한계를 경계해야 한다.

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


strategy(title="Mbit Moving Average",overlay=true)

length = input(520)
confirmBars = input(27)
price = close
ma = ta.sma(price, length)

bcond = price > ma

bcount = bcond ? nz(bcount[1]) + 1 : 0

scond = price < ma

scount = scond ? nz(scount[1]) + 1 : 0

long =  scount == confirmBars

short = bcount == confirmBars


//Strategy

strategy.entry("long", strategy.long, when=long)

strategy.entry("short",strategy.short, when=short)