MACD 이동 평균 황소 곰 전환 전략

저자:차오장, 날짜: 2023-12-08 15:29:41
태그:

img

전반적인 설명

MACD 이동 평균 황소 곰 변환 전략은 시장 추세가 역전되었는지 여부를 결정하기 위해 MACD 지표의 DIFF 및 DEA 라인을 계산하여 거래 신호를 생성합니다. DIFF가 DEA를 넘어서면 길고 DIFF가 DEA를 넘어서면 짧습니다. 전략은 또한 잘못된 브레이크오트를 피하기 위해 가격 EMA 필터를 통합합니다.

전략 논리

이 전략은 주로 MACD 지표의 DIFF 및 DEA 라인을 기반으로합니다. MACD는 이동 평균 컨버전스 디버전스를 의미합니다. DIFF, DEA 및 MACD 라인으로 구성됩니다. 그 중 DIFF는 단기 EMA와 장기 EMA 사이의 차이를 나타냅니다. DEA는 DIFF 신호를 확인하는 데 사용되는 DIFF의 EMA이며 MACD는 디버전스를 식별하는 데 사용되는 DIFF와 DEA 사이의 차이를 나타냅니다.

DIFF가 DEA를 넘으면 단기 이동 평균이 강화되기 시작하고 시장이 상승세를 밟게 된다. DIFF가 DEA를 넘으면 단기 이동 평균이 약해지고 시장이 하향세를 보이는 것을 의미한다. 따라서 이 전략은 DIFF가 DEA를 넘어서면 길게, DEA를 넘어서면 짧게 진행된다.

또한, 전략은 잘못된 브레이크오프를 피하기 위해 가격 EMA 필터를 통합합니다. DIFF가 DEA를 넘어서고 가격이 이전 긴 가격보다 낮을 때만 길게 갈 수 있으며 DIFF가 DEA를 넘어서고 가격이 이전 짧은 가격보다 높을 때만 짧게 갈 수 있습니다.

이점 분석

MACD 이동 평균 황소 곰 변환 전략은 MACD 지표와 가격 EMA 필터를 결합하여 MACD에서만 생성되는 잘못된 신호를 피하여 거래 성능을 향상시킵니다. 이 전략은 시장 트렌드 변화를 신속하게 식별하고 단기 거래에 적합합니다.

주요 장점은 다음과 같습니다.

  1. 트렌드 반전 지점을 파악하고 전환 지점을 파악하기 위해 MACD를 사용
  2. 가짜 브레이크오프 기회를 줄이기 위해 가격 EMA 필터를 통합하는 것
  3. 단기 거래에 적합한 빠른 신호 생성
  4. 중장기 트렌드 수익을 포착하기 위한 실행 추세
  5. 대부분의 트레이더와 일치합니다. 전환점에서의 거래의 사고 패턴

위험 분석

MACD 이동 평균 황소 곰 전환 전략은 또한 몇 가지 위험을 가지고 있습니다:

  1. MACD는 잘못된 신호를 생성하는 경향이 있으며 가격 EMA 필터가 필요하지만 일부 움직임을 놓칠 것입니다.
  2. DIFF와 DEA 라인을 면밀히 감시해야 합니다. 잘못된 매개 변수 조정이 잘못된 신호를 증가시킵니다.
  3. 브레이크오웃 신호는 1 바만 고려하고, 채찍질 될 위험이 있습니다.
  4. 전략은 주로 신호에 대한 DIFF/DEA 크로스오버에 의존하고 신호가 너무 자주되면 거래 빈도를 증가시킬 수 있습니다.

위험을 최적화하는 주요 방법은 다음과 같습니다.

  1. 잘못된 신호를 줄이기 위해 MACD 매개 변수를 조정합니다.
  2. 휘프사 발생을 줄이기 위해 필터 강도를 향상
  3. 거래 빈도를 제한하기 위해 포지션 보유에 필터를 추가합니다.

최적화 방향

MACD 이동 평균 황소 곰 변환 전략은 다음 차원에서 더 이상 최적화 될 수 있습니다:

  1. DIFF/DEA 기간의 MACD 매개 변수를 최적화
  2. 더 낮은 거래 빈도에 시밍 필터를 추가
  3. 수익 목표를 제어하기 위해 스톱 로스/이익 취득 전략을 포함
  4. BOLL 대역과 KD와 같은 다른 지표 필터를 추가
  5. 트렌드 편향을 포함하여 트렌드 반대 거래를 피합니다.
  6. 이 전략 프레임워크를 기반으로 출구 전략 또는 수익 취득 템플릿을 개발

결론

MACD 이동 평균 황소 곰 변환 전략은 DIFF 및 DEA 크로스오버 신호에 의해 상승 / 하락 시장 진입을 식별하고 잘못된 신호를 제거하기 위해 가격 EMA 필터를 사용하여 시장 트렌드 반전 지점을 효과적으로 결정합니다. 간단하고 명확한 논리로 단기 및 중장기 거래에 적합한 전환 지점을 신속하게 식별합니다. 최적화하기위한 다음 단계는 매개 변수를 조정하고 필터를 강화하고 전략을 더 견고하게 만들기 위해 거래 주파수를 제어하는 것입니다.


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

//@version=3
strategy("macd_strategy", 
          shorttitle="macd", 
          overlay=true, 
          pyramiding=1, 
          max_bars_back=5000, 
          calc_on_order_fills = false, 
          calc_on_every_tick=true, 
          default_qty_type=strategy.percent_of_equity, 
          default_qty_value=100, 
          commission_type =strategy.commission.percent, 
          commission_value=0.00075)
[diff, dea, _] = macd(close, 12, 26, 7)
dea_close = ema(diff, 3)
price = ema(close, 9)
plot(price)
cross_over_price = na
cross_over_signal = na
cross_over_price := cross_over_price[1]
cross_over_signal := cross_over_signal[1]

cross_under_price = na
cross_under_signal = na
cross_under_price := cross_under_price[1]
cross_under_signal := cross_under_signal[1]
if (crossover(diff,dea))
    cross_over_price := price[1]
    cross_over_signal := diff
if (crossunder(diff,dea))
    cross_under_price := price[1]
    cross_under_signal := diff
if dea > 0
    cross_over_price = na
    cross_over_signal = na
else
    cross_under_price = na
    cross_under_signal = na
if diff > 0
    if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95
        strategy.entry("S", strategy.short,  comment="S")
else
    if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95
        strategy.entry("B", strategy.long,  comment="B")
// strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0)
// strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0)
strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))

더 많은