이동평균선 교차를 기반으로 한 추세 추종 전략


생성 날짜: 2024-02-27 16:25:51 마지막으로 수정됨: 2024-02-27 16:25:51
복사: 0 클릭수: 748
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이동평균선 교차를 기반으로 한 추세 추종 전략

개요

이 전략은 EMA 평균선 교차를 기반으로 거래 신호를 생성하는 트렌드 추적 전략이다. 빠른 느린 평균선 교차를 사용하여 가격 트렌드의 변화를 판단하고, 트렌드가 시작될 때 시장에 들어가고, 트렌드가 끝날 때 시장에서 빠져나와 수익을 창출한다.

전략 원칙

이 전략은 빠른 EMA와 느린 EMA 두 개의 평균선을 사용한다. 빠른 EMA 파라미터를 20로 설정하면 가격 변화에 반응하는 것이 상대적으로 민감하다. 느린 EMA 파라미터를 50로 설정하면 가격 변화에 반응하는 것이 상대적으로 평평하다.

빠른 EMA가 아래쪽에서 느린 EMA를 통과하면 가격이 상승하기 시작한다는 것을 나타내는 구매 시점 신호입니다. 빠른 EMA가 위쪽에서 느린 EMA를 통과하면 가격이 하락하기 시작한다는 것을 나타내는 판매 시점 신호입니다.

이 두 가지 신호에 따라, 우리는 그에 따른 거래 결정을 내릴 수 있습니다. 구매 신호가 나타나면 상위 입장을 취하고, 판매 신호가 나타나면 상위 입장을 취합니다. 반대로 신호가 나타나면 상위 / 상위 평지.

우위 분석

  • 평균선 교차를 사용하여 가격 추세 변화를 판단하는 것이 더 신뢰할 수있는 기술 지표입니다.
  • 빠른 속도와 일률적인 조합으로, 일부 소음을 효과적으로 필터링하고, 트렌드를 추적할 수 있습니다.
  • 전략 논리는 간단하고 명확하며 이해하기 쉽고 구현하기 쉽습니다.
  • 평균선 변수를 조정하여 전략을 최적화할 수 있습니다.

위험 분석

  • 평균선은 지연성이 있어 가격변동의 최적 시점을 놓칠 수 있다.
  • 위프사우 효과는 거래가 너무 자주되고 거래 비용이 증가하고 슬라이드 손실로 이어질 수 있습니다.
  • 사출 시, 비기술적 인 이유로 인한 경우, 적시에 거래를 할 수 없습니다.

최적화 방법:

  • 평균선 변수를 최적화하여 최적의 매개 변수를 찾습니다.
  • 필터링 조건을 추가하여 윙사우로 인한 손실을 방지합니다.
  • 단편적 손실을 통제하기 위한 전략

최적화 방향

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

  1. 평균선 변수를 최적화하여 최적의 변수 조합을 찾습니다. 다른 변수를 거쳐, 다른 조합을 재검토하여 수익이 가장 좋은 변수를 찾을 수 있습니다.

  2. 다른 기술 지표를 필터 조건으로 추가하여 잘못된 트레이드를 피하십시오. 예를 들어 MACD, KDJ와 같은 지표가 추가 될 수 있으며, 그들의 신호가 평균선 신호와 일치 할 때만 출전하십시오.

  3. 고정 스톱을 설정하거나 스톱을 추적하여 단독 손실을 제어하는 것과 같은 스톱 전략을 추가하십시오.

  4. 다른 전략과 결합하여 고려할 수 있습니다. 예를 들어, 트렌드 추적 전략, 트렌드에 따라 승승장구하거나, 또는 평균 반전 전략, 가격이 지나치게 확장 할 때 반전을 개입합니다.

요약하다

이 전략은 매우 전형적인 트렌드 추적 전략이다. 가격 트렌드의 변화를 판단하기 위해 빠른 속도와 평균 경로를 가로지르고, 가격 트렌드를 간단하고 효과적으로 캡처한다. 또한 일부 문제가 있습니다.

전략 소스 코드
/*backtest
start: 2023-02-20 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Habitrade EMA Cross Strategy"), overlay=true

//Input for EMA lengths
emaShortLength = input.int(20, title="Short EMA Length")
emaLongLength = input.int(50, title="Long EMA Length")

//Calculate EMAs based on inputs
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)

//Plot the EMAs
plot(emaShort, color=color.blue, linewidth=2, title="EMA Short")
plot(emaLong, color=color.orange, linewidth=2, title="EMA Long")

//Generate long and short signals
longCondition = ta.crossover(emaShort, emaLong)
shortCondition = ta.crossunder(emaShort, emaLong)

//Enter long positions
if (longCondition)
    strategy.entry("Long", strategy.long)

//Enter short positions
if (shortCondition)
    strategy.entry("Short", strategy.short)

//Close long positions
if (shortCondition)
    strategy.close("Long")

//Clos short positions
if (longCondition)
    strategy.close("Short")