이중 이동 평균 크로스오버 전략

저자:차오장, 날짜: 2024-01-04 15:03:14
태그:

img

전반적인 설명

이 전략은 구매 및 판매 신호를 생성하기 위해 간단한 이동 평균 크로스오버와 평균 진정한 범위 지표를 사용합니다. 트렌드 다음 전략에 속합니다. 주로 50 일 및 100 일 이동 평균 크로스오버를 사용하여 트렌드를 결정하고 위험을 제어하기 위해 ATR에 기반한 스톱 로스를 설정합니다.

전략 논리

  1. 50일 간편 이동 평균 SMA1 및 100일 간편 이동 평균 SMA2를 계산합니다.
  2. SMA1가 SMA2를 넘을 때 구매 신호가 생성됩니다. SMA1가 SMA2를 넘을 때 판매 신호가 생성됩니다.
  3. 14일 ATR를 계산합니다.
  4. ATR을 세트 인수로 곱하면 스톱 로스 포인트로 사용됩니다.
  5. 구매 신호가 트리거될 때, 폐쇄 가격 빼기 스톱 로스 포인트는 스톱 로스 판매 포인트입니다. 판매 신호가 트리거될 때, 폐쇄 가격 더하기 스톱 로스 포인트는 스톱 로스 구매 포인트입니다.

이 전략은 주로 이동 평균의 트렌드 판단 능력과 ATR의 위험 제어 능력에 의존한다는 것을 알 수 있습니다. 논리는 간단하고 이해하기 쉽고 구현 할 수 있습니다.

장점

  1. 간단한 논리, 쉽게 실행, 초보자에 적합
  2. 이동 평균은 트렌드를 효과적으로 추적 할 수 있습니다.
  3. ATR 스톱 손실은 개별 블랙 스완 이벤트에서 손실을 효과적으로 제어 할 수 있습니다.
  4. 매개 변수는 다른 시장 환경에 쉽게 조정 할 수 있습니다.

위험성

  1. 많은 잘못된 신호가 범위에 묶인 시장에서 발생 할 수 있으며 전환점이 없습니다.
  2. ATR은 빠르게 변화하는 시장에 충분히 반응하지 않을 수 있으며 예상보다 큰 손실을 초래할 수 있습니다.
  3. 매개 변수 설정 및 ATR 곱셈은 경험에 의존합니다. 잘못된 설정은 전략 성능에 영향을 미칠 수 있습니다.
  4. 이중 이동 평균 자체는 지연 효과를 가지고, 전환점을 놓칠 수 있습니다.

위험 관리:

  1. 지표의 민감성을 높이기 위해 이동 평균 기간을 단축
  2. 더 유연한 스톱 손실을 위해 동적으로 ATR 멀티플리커를 조정합니다.
  3. 거짓 신호를 필터링하기 위해 다른 표시기를 추가합니다.
  4. 더 큰 시간 프레임 구조 판단을 기반으로 작동

최적화 방향

  1. 다른 종류의 이동 평균을 시도하십시오. 더 잘 필터링하는 EMA와 같이
  2. ATR을 대체하기 위해 Keltner 채널 등을 사용하는 동적 스톱 손실을 고려하십시오.
  3. 필터 신호에 볼륨과 같은 지원 지표를 추가
  4. 엘리엇 파동, 지원 저항 등과 같은 개념으로 트렌드 핵심 포인트를 식별합니다.

요약

이것은 트렌드 방향을 결정하고 위험을 제어하기 위해 ATR 스톱 로스를 사용하는 전형적인 트렌드 다음 전략입니다. 논리는 간단하고 이해하기 쉽습니다. 그러나 특정 지연 및 잘못된 신호 위험을 가지고 있습니다. 매개 변수 조정, 지표 최적화, 더 많은 요소를 통합하는 등으로 개선이 가능합니다. 전반적으로이 전략은 초보자 연습과 최적화에 적합하지만 실제 거래에서 적용 할 때 조심해야합니다.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA and ATR Strategy", overlay=true)

// Step 1. Define strategy settings
lengthSMA1 = input.int(50, title="50 SMA Length")
lengthSMA2 = input.int(100, title="100 SMA Length")
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.int(4, title="ATR Multiplier")

// Step 2. Calculate strategy values
sma1 = ta.sma(close, lengthSMA1)
sma2 = ta.sma(close, lengthSMA2)
atr = ta.atr(atrLength)

// Step 3. Output strategy data
plot(sma1, color=color.blue, title="50 SMA")
plot(sma2, color=color.red, title="100 SMA")

// Step 4. Determine trading conditions
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)

longStopLoss = close - (atr * atrMultiplier)
shortStopLoss = close + (atr * atrMultiplier)

// Step 5. Execute trades based on conditions
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", stop=longStopLoss)

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Buy", "Sell", stop=shortStopLoss)


더 많은