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

저자:차오장날짜: 2024-01-19 14:13:07
태그:

img

전반적인 설명

이중 이동 평균 크로스오버 전략은 일반적인 양적 거래 전략이다. 빠른 이동 평균과 느린 이동 평균의 크로스오버를 구매 및 판매 신호로 사용합니다. 빠른 이동 평균이 밑에서 느린 이동 평균을 넘으면 구매 신호가 생성됩니다. 빠른 이동 평균이 위에서 느린 이동 평균을 넘으면 판매 신호가 생성됩니다.

전략 원칙

이 전략의 핵심 논리는 두 개의 이동 평균 그룹을 계산하는 것입니다. 하나는 10 일 기간 매개 변수로 빠른 이동 평균이며 다른 하나는 30 일 기간 매개 변수로 느린 이동 평균입니다. 빠른 이동 평균은 가격 변화에 더 빠르게 반응 할 수 있으며 느린 이동 평균은 장기 트렌드를 더 잘 반영 할 수 있습니다.

빠른 이동 평균이 느린 평균보다 높을 때, 단기 가격이 장기 트렌드를 돌파하기 시작한다는 것을 의미합니다. 이것은 긴 기간 동안 가는 황금 십자 신호입니다. 빠른 이동 평균이 느린 평균보다 낮을 때, 단기 가격이 장기 트렌드 아래로 떨어지기 시작한다는 것을 의미합니다. 이것은 짧은 기간 동안 가는 죽음의 십자 신호입니다.

이 전략은 또한 스톱 로스 및 영업 수익 메커니즘을 설정합니다. 스톱 로스는 가격이 엔트리 가격의 특정 비율 이하로 떨어지면 발생합니다. 영업 수익은 가격이 엔트리 가격의 특정 비율 이상으로 상승하면 발생합니다.

이점 분석

이중 이동 평균 크로스오버 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 논리는 간단하고 이해하기 쉽고 실행하기 쉽습니다.

  2. 빠른 이동 평균과 느린 이동 평균의 매개 변수는 다른 시장에 맞게 조정할 수 있습니다.

  3. 손실을 제한하기 위해 스톱 로스 설정과 수익 취득 설정이 포함됩니다.

  4. 트렌딩 시장과 범위 시장에서 모두 좋은 성과를 낼 수 있습니다.

위험 분석

이중 이동 평균 크로스오버 전략은 또한 다음과 같은 위험을 가지고 있습니다.

  1. 크로스오버 신호는 잘못된 파업으로 손실이 발생할 수 있습니다.

  2. 스톱 로즈와 영업 취득의 부적절한 설정은 엄청난 손실이나 예상 수익을 줄일 수 있습니다.

  3. 이는 기하급수적 기준을 고려하지 않고 기술적인 지표에만 의존합니다.

대응 솔루션:

  1. 거짓 신호를 필터링하기 위해 다른 기술적 지표를 추가합니다.

  2. 스톱 로스 및 영업 매개 변수를 테스트하고 최적화합니다.

  3. 근본적인 분석을 포함합니다.

최적화 방향

전략은 다음 측면에서 최적화 될 수 있습니다:

  1. 최적의 변수를 찾기 위해 이동 평균의 다양한 매개 변수 조합을 테스트합니다.

  2. 거짓 파장을 피하기 위해 가격-용량 확인 지표를 추가합니다.

  3. 더 나은 수익을 얻기 위해 스톱 로스를 동적으로 조정하고 수익 비율을 취합니다.

  4. 거래량, 매출율 등 다른 지표를 포함합니다.

결론

요약하자면, 이중 이동 평균 크로스오버 전략은 간단하고 실용적인 양적 거래 전략이다. 이해와 구현이 쉽고 대부분의 시장 환경에서 안정적인 수익을 창출 할 수 있습니다. 매개 변수를 최적화하고 신호 필터와 동적 수익 취득 메커니즘을 추가함으로써 전략이 더 신뢰할 수 있고 수익성이 높아질 수 있습니다. 기본적인 양적 거래 전략 중 하나로서 학습하고 적용하는 것이 가치가 있습니다.


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

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

// Define input parameters
fast_length = input(10, title="Fast MA Length")
slow_length = input(30, title="Slow MA Length")
stop_loss_percent = input(1.0, title="Stop Loss (%)", minval=0.1, maxval=10, step=0.1)
take_profit_percent = input(2.0, title="Take Profit (%)", minval=0.1, maxval=10, step=0.1)

// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)

// Entry conditions
long_condition = crossover(fast_ma, slow_ma)
short_condition = crossunder(fast_ma, slow_ma)

// Plot moving averages on the chart
plot(fast_ma, title="Fast MA", color=color.blue)
plot(slow_ma, title="Slow MA", color=color.red)

// Strategy orders
strategy.entry("Long", strategy.long, when=long_condition)
strategy.entry("Short", strategy.short, when=short_condition)

// Set stop loss and take profit levels
stop_loss_price = close * (1 - stop_loss_percent / 100)
take_profit_price = close * (1 + take_profit_percent / 100)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", stop=stop_loss_price, limit=take_profit_price)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", stop=take_profit_price, limit=stop_loss_price)


더 많은