이동 평균 교차 추세 추종 전략


생성 날짜: 2023-12-06 16:58:20 마지막으로 수정됨: 2023-12-06 16:58:20
복사: 0 클릭수: 651
avatar of ChaoZhang ChaoZhang
1
집중하다
1619
수행원

이동 평균 교차 추세 추종 전략

개요

이 전략은 이동 평균의 교차를 기반으로 한 트렌드 추적 전략이다. 그것은 두 개의 다른 기간의 지수 이동 평균을 사용하며, 짧은 기간 이동 평균 위에 긴 기간 이동 평균을 가로질러 더 많이 하고, 짧은 기간 이동 평균 아래에 긴 기간 이동 평균을 가로질러 공허하게 하는 전형적인 트렌드 추적 전략이다.

전략 원칙

이 전략은 20주기 이동 평균과 50주기 이동 평균의 두 가지 이동 평균을 사용합니다. 우선 이 두 가지 이동 평균을 계산하고 거래 신호로 그들의 교차점을 찾습니다. 20주기 이동 평균 위에 50주기 이동 평균을 통과하면 구매 신호가 발생하며, 20주기 이동 평균 아래에 50주기 이동 평균을 통과하면 판매 신호가 발생합니다. 따라서 이 전략의 주요 논리는 두 가지 이동 평균의 교차점을 추적하여 시장 추세 방향을 판단하는 것입니다.

거래 신호가 생성된 후, 이 전략은 고정된 스톱로스 마피드와 스톱로스 마피드에 따라 주문한다. 예를 들어, 구매 후 0.4%의 스톱로스와 0.7%의 스톱로스를 설정한다. 판매 후 0.4%의 스톱로스와 0.7%의 스톱로스를 설정한다. 스톱로스 스톱로스를 설정함으로써 단일 거래의 위험과 수익을 제어한다.

전략적 이점

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

  1. 운영 논리는 간단하고 명확하며 이해하기 쉽고 구현됩니다.
  2. 시장의 전환점을 안정적으로 포착하는 방법
  3. 단독 거래의 위험을 통제할 수 있는 스톱로스 스톱을 설정합니다.

전략적 위험

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

  1. 시장이 명확한 경향을 보이지 않을 때 더 많은 잘못된 신호가 발생합니다.
  2. 시장의 소음을 효과적으로 필터링할 수 없고, 쉽게 잡힐 수 있습니다.
  3. 모든 품종에 적합하지 않을 수 있으며 최적화가 필요합니다.

대책:

  1. 이동 평균의 주기를 최적화하고 잘못된 신호를 필터링합니다.
  2. 다른 지표와 함께 필터링
  3. 테스트 및 최적화 스탠드 패러미터

최적화 방향

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

  1. 이동 평균 주기를 최적화하여 최적의 변수 조합을 찾습니다.
  2. 거래량 증가 등의 지표 필터링 신호
  3. 특정 품종에 대한 테스트 및 최적화 손해 차단 幅
  4. 고정 스톱 스톱을 동적 스톱 스톱으로 바꾸어
  5. 기계 학습과 같은 알고리즘을 추가하여 최적의 변수를 자동으로 찾습니다.

요약하다

이 전략은 전체적으로 간단하고 효과적인 트렌드 추적 전략이다. Caught는 이동 평균을 사용하여 시장 추세를 전환하고, 스톱포드 제어 위험을 설정한다. 이 전략은 트렌드 판단에 대한 요구 사항이 낮은 투자자에게 적합하다. 파라미터와 모델을 추가적으로 최적화하면 더 나은 전략 효과를 얻을 수 있다.

]

전략 소스 코드
/*backtest
start: 2022-11-29 00:00:00
end: 2023-12-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © danielfepardo

//@version=5

strategy("QUANT", overlay=true)
lenght1 = input(20)
lenght2 = input(50)


ema1 = ta.ema(close, lenght1)
ema2 = ta.ema(close, lenght2)
plot(ema1, color=color.black)
plot(ema2, color=color.red)

long = ta.crossover(ema1, ema2)

SL = 0.004
TP = 0.007

if long == true
    strategy.entry("Compra Call", strategy.long)
longstop=strategy.position_avg_price*(1-SL)
longprofit=strategy.position_avg_price*(1+TP)
strategy.exit("Venta Call", stop=longstop, limit=longprofit)

short = ta.crossover(ema2, ema1)

if short == true
    strategy.entry("Compra Put", strategy.short)
shortstop=strategy.position_avg_price*(1+SL)
shortprofit=strategy.position_avg_price*(1-TP)
strategy.exit("Venta Put", stop=shortstop, limit=shortprofit)