이동 평균 크로스오버 전략

저자:차오장, 날짜: 2023-12-06 16:58:20
태그:

img

전반적인 설명

이 전략은 이동평균의 교차를 기반으로 하는 트렌드 추적 전략이다. 서로 다른 기간을 가진 두 개의 이동평균을 사용한다. 짧은 기간 이동평균이 더 긴 기간 이동평균을 넘을 때, 그것은 길게 간다. 짧은 기간 이동평균이 더 긴 기간 이동평균을 넘을 때, 그것은 짧게 간다. 이것은 전형적인 트렌드 추적 전략이다.

전략 논리

이 전략은 20주기 및 50주기 이동평균을 사용합니다. 먼저 이 두 이동평균을 계산하고, 그 다음 거래 신호를 생성하기 위해 그 사이의 교차점을 식별합니다. 20주기 이동평균이 50주기 이동평균을 넘으면 구매 신호를 생성합니다. 20주기 이동평균이 50주기 이동평균을 넘으면 판매 신호를 생성합니다. 따라서 이 전략의 핵심 논리는 시장 트렌드의 전환점을 결정하기 위해 두 이동평균 사이의 교차점을 추적하는 것입니다.

트레이딩 신호를 생성한 후, 전략은 고정된 스톱 러스 (stop loss) 로 주문을 하고 수익 마진을 취합니다. 예를 들어, 구매 후, 0.4%의 스톱 러스를 설정하고 0.7%의 수익을 취합니다. 스톱 러스 (stop loss) 를 설정하고 수익을 취함으로써, 개별 트레이드의 위험과 수익을 제어합니다.

전략 의 장점

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

  1. 간단하고 명확한 동작 논리, 이해하기 쉽고 구현하기 쉽습니다
  2. 시장 트렌드 전환점을 안정적으로 파악
  3. 단일 거래 위험을 잘 제어하기 위해 손해를 멈추고 이익을 취하십시오.

전략 의 위험

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

  1. 시장이 명확한 추세를 보이지 않을 때 더 많은 잘못된 신호
  2. 시장 소음을 효과적으로 필터링하지 못해 함락될 가능성이 높습니다.
  3. 중지 손실 및 이익 마진은 모든 제품에 적합하지 않을 수 있습니다, 최적화 필요

대책:

  1. 거짓 신호를 필터링하기 위해 이동 평균 기간을 최적화
  2. 필터링을 위한 다른 표시기를 추가합니다.
  3. 스톱 로스 및 수익 매개 변수를 테스트하고 최적화합니다.

최적화 방향

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

  1. 가장 좋은 매개 변수 조합을 찾기 위해 이동 평균 기간을 최적화
  2. 거래량과 같은 지표를 추가하여 신호를 필터합니다.
  3. 특정 제품에 대한 스톱 로스 및 수익 마진을 테스트하고 최적화하십시오.
  4. 고정 스톱 손실을 변경하고 동적으로 수익을 취하십시오.
  5. 자동으로 최적의 매개 변수를 찾기 위해 기계 학습 알고리즘을 추가

요약

전체적으로 이것은 트렌드를 따르는 전략으로 간단하고 효과적입니다. 이동 평균 크로스오버를 사용하여 트렌드 전환점을 잡으며 스톱 로스 및 수익을 취함으로써 위험을 제어합니다. 이 전략은 트렌드 판단에 대한 높은 요구 사항이없는 투자자에게 적합합니다. 매개 변수 및 모델에 대한 추가 최적화는 더 나은 전략 성과를 가져올 수 있습니다.

]


/*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)






더 많은