골든크로스와 데스크로스 더블MA 전략


생성 날짜: 2024-01-31 11:29:45 마지막으로 수정됨: 2024-01-31 11:29:45
복사: 0 클릭수: 577
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

골든크로스와 데스크로스 더블MA 전략

개요

이 전략은 이중 이동 평균을 기반으로 한 거래 전략이다. 그것은 사용자가 설정 한 두 개의 이동 평균의 길이를 따라 금 포크와 사다리 작업을 수행합니다. 즉, 빠른 이동 평균 위에 또는 느린 이동 평균 아래를 통과 할 때 거래 신호를 발산합니다. 빠른 MA 위에 느린 MA를 통과 할 때, 더 많은 것을하십시오. 빠른 MA 아래에 느린 MA를 통과 할 때, 공백을하십시오.

전략 원칙

이 전략의 핵심 논리는 쌍 이동 평균의 교차 원리에 기초한다. 이동 평균은 일정 기간 동안의 종전 가격을 계산 평균으로 얻은 평균값이다. 이동 평균은 무작위적 잡음을 효과적으로 제거하고 더 명확한 가격 추세를 반영한다.

이 전략의 단기 MA는 가격의 단기 트렌드를, 장기 MA는 가격의 장기 트렌드를 나타냅니다. 단기 MA는 장기 MA보다 가격 변화에 더 민감하고 가격 반전을 더 빨리 포착 할 수 있습니다. 단기 MA를 착용 할 때, 단기 MA는 단기 트렌드가 올라가는 것을 나타냅니다.

구체적으로, 전략은 ta.sma를 통해 지정된 주기의 간단한 이동 평균을 계산하여 거래 신호로 사용한다. 사용자는 두 개의 MA 파라미터를 사용자 정의할 수 있다. 즉, 긴 라인 주기 long_period와 짧은 라인 주기 short_period이다. 전략은 ta.crossover와 ta.crossunder를 사용하여 MA의 황금 교차와 사각지대를 판단한다.

전략적 이점

이 전략에는 다음과 같은 장점이 있습니다.

  1. 조작이 간단하고 쉽게 다룰 수 있습니다.
  2. 다양한 시장 환경에 적응할 수 있는 사용자 정의 파라미터
  3. 이중 MA 교차 원리를 사용하여, 효과적으로 소음을 필터링하고, 트렌드 반전을 포착한다.
  4. 가격 전환점을 포착할 수 있는 높은 민감성.

전략적 위험

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

  1. 이중 MA 간격이 너무 작으면 잘못된 신호가 발생한다.
  2. MA 사이클을 잘라 놓은 것은 주요 트렌드를 놓친 것입니다.
  3. 반전이 반드시 트렌드 전환을 의미하지는 않으며, 잘못된 신호가 발생할 수 있습니다.
  4. 과잉 최적화를 피하기 위해 적절한 변수를 조정해야 합니다.

위와 같은 위험을 위해, MA 매개 변수를 조정하거나, 스톱 스톱을 설정하거나, 또는 다른 지표와 결합하여 최적화할 수 있다.

최적화 공간

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

  1. MA주기 변수를 최적화하여, 적응MA주기를 채택한다.
  2. 트래픽 필터링을 늘려서 가짜 돌파구를 피하십시오.
  3. 다른 기술 지표와 결합하여, 예를 들어 MACD, KDJ 등으로 조합한다.
  4. 단독 손실을 제어하기 위해 스톱 로직을 추가합니다.
  5. 코드 구조를 최적화하고, 모듈화 후기 확장 공간을 추가한다.

요약하다

이 전략은 전체적으로 양적 거래의 입문 전략으로 매우 적합하다. 그것은 간단한 이중 MA 매개 변수가 작동하고, 작동이 간단하고, 이해하기 쉽고, 시장 역전 시기를 직관적으로 반영할 수 있다. 동시에 전략은 최적화 할 수있는 큰 공간을 남겨두고 실제 필요에 따라 매개 변수를 조정하거나 다른 논리를 추가하여 개선 할 수 있다.

전략 소스 코드
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true)

// User-defined input for moving averages
long_period = input(20, title="Long Period")
short_period = input(5, title="Short Period")
type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"])

// Calculating moving averages
long_ma = ta.sma(close, long_period)
short_ma = ta.sma(close, short_period)

// Plot moving averages
plot(long_ma, title="Long Moving Average", color=color.red)
plot(short_ma, title="Short Moving Average", color=color.green)

// Strategy logic for crossing of moving averages
longCondition = ta.crossover(short_ma, long_ma)
shortCondition = ta.crossunder(short_ma, long_ma)

// Entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Optional: Add stop loss and take profit
stop_loss_perc = input(1, title="Stop Loss (%)") / 100
take_profit_perc = input(2, title="Take Profit (%)") / 100

strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc))
strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))