이동 평균 크로스오버 전략

저자:차오장, 날짜: 2024-01-23 15:20:16
태그:

img

전반적인 설명

이것은 이동 평균 크로스오버 신호를 기반으로 하는 거래 전략입니다. 주요 기술 지표로 45일 이동 평균 라인을 사용하여 가격이 이동 평균 라인을 통과 할 때 구매 및 판매 신호를 생성합니다.

전략 논리

가격 상승과 45 일 이동 평균 라인을 넘어서면 구매 신호가 생성됩니다. 8 일 동안 포지션을 유지 한 후 판매 신호가 생성됩니다. 그 후 가격이 상승하고 45 일 이동 평균 라인을 다시 넘어서면 새로운 구매 신호가 유발됩니다.

구체적인 논리 원칙은 다음과 같습니다.

  1. 45일 이동평균선을 계산해보세요.
  2. 닫기 가격이 이동평균선 아래에서 위로 넘어갈 때, 구매 신호가 생성되어 길게 됩니다.
  3. 시장에 진입한 후 8 거래일 동안 포지션을 유지합니다.
  4. 8일 후에 긴 포지션을 닫고 판매 신호를 생성합니다.
  5. 나중에 닫기 가격이 다시 이동 평균선 아래에서 위로 떨어지면 긴 포지션을 다시 여는 구매 신호를 재생합니다.

이 전략의 핵심 트레이딩 논리는 위와 같습니다.

장점

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 거래 규칙은 간단하고 명확하고 이해하기 쉽고 실행하기 쉽습니다.
  2. 중장기 트렌드를 효과적으로 파악하기 위해 이동 평균의 트렌드 추적 기능을 사용합니다.
  3. 8일 보유 기간은 트렌드를 추적할 수 있을 만큼 길고 적시에 손실을 줄일 수 있을 만큼 짧습니다.
  4. 시장 재진입 규칙은 명확하고 거래 빈도를 제한하는 데 도움이 됩니다.

위험성

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

  1. 이동평균의 지연 특성으로 인해 늦은 출입과 조기 출입이 발생할 수 있습니다.
  2. 고정된 보유 기간과 MA 매개 변수는 변화하는 시장 조건에 적응하지 못할 수 있습니다.
  3. 거래 빈도는 너무 높을 수도 있고 비용과 미끄러짐을 증가시킬 수도 있습니다.
  4. 파기 신호는 잘못된 신호를 만들어서

해결책:

  1. MA 매개 변수를 최적화해서 지연을 줄여
  2. 유지 기간을 늘리거나 트렌드를 더 잘 추적하기 위해 트레일링 스톱을 사용하십시오.
  3. 신호를 확인하기 위해 MACD 또는 KDJ와 같은 다른 지표를 사용하는 필터를 추가합니다.
  4. 재입구 규칙을 정비해서 주파수를 조절해

개선 영역

주요 강화 분야는 다음과 같습니다.

  1. 가장 좋은 조합을 찾기 위해 MA 매개 변수를 최적화하십시오. 예를 들어 15일, 30일, 60일 MA.

  2. 최적의 기간을 결정하기 위해 보관 기간을 최적화합니다. 예를 들어 5일, 10일, 15일.

  3. 트렌드를 추적하고 위험을 제어하기 위해 후속 정지를 추가합니다. 예를 들어, 시험 정지 또는 ATR 정지.

  4. 잘못된 신호를 줄이기 위해 MACD, KDJ와 같은 다른 지표를 사용하는 필터를 추가합니다.

  5. 과도한 거래를 방지하기 위해 재입국 규칙을 정비합니다. 예를 들어 냉각 기간을 적용하십시오.

  6. 다른 시장과 도구에 대한 테스트 효과. 다른 시장에 대한 매개 변수를 조정해야합니다.

요약

요약하자면,이 MA 크로스오버 전략은 간단하고 실용적인 트렌드 추적 시스템입니다. 그것은 MA의 트렌드 추적 능력을 활용하고 거래 신호를 생성하기 위해 가격 브레이크를 결합합니다. 장점은 실행이 쉽지만 단점은 때때로 윙사입니다. 전략은 매개 변수 최적화 및 필터로 다른 지표를 추가함으로써 더욱 향상 될 수 있습니다.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Moving Average Crossover Strategy", overlay=true)

// Calculate the 45-day moving average
ma_length = 45
ma = ta.sma(close, ma_length)

// Track position entry and entry bar
var bool in_long_position = na
var int entry_bar = na
var int exit_bar = na

// Entry condition: Close price crosses above the 45-day moving average to enter the position
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1])
    in_long_position := true
    entry_bar := bar_index

// Exit condition: Close the position after holding for 8 trading days
if (in_long_position and bar_index - entry_bar >= 8)
    in_long_position := false
    exit_bar := bar_index

// Re-entry condition: Wait for price to cross over the 45-day moving average again
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8))
    in_long_position := true
    entry_bar := bar_index

// Execute long entry and exit
if (in_long_position)
    strategy.entry("Long", strategy.long)

if (not in_long_position)
    strategy.close("Long")

더 많은