동력 이동 평균 크로스오버 거래 전략

저자:차오장, 날짜: 2024-02-19 14:53:50
태그:

img

전반적인 설명

이 전략은 MACD 지표에 기반하여 거래 신호를 생성합니다. MACD 지표는 MACD 라인, SIGNAL 라인 및 히스토그램 (HISTO) 라인으로 구성됩니다. MACD 라인이 SIGNAL 라인 위에 넘어가 긍정적으로 변하면 구매 신호를 생성합니다. MACD 라인이 SIGNAL 라인 아래에 넘어가 부정적으로 변하면 판매 신호를 생성합니다.

전략 논리

  1. MACD 라인, SIGNAL 라인, HISTO 라인을 계산합니다.
  2. MACD 라인과 SIGNAL 라인의 교차점을 식별하여 구매 및 판매 신호를 결정합니다.
  3. 34주기 EMA를 지지/저항 구역으로 사용하며, EMA를 넘어서만 장거리, EMA를 넘어서면 단거리로 이동합니다.
  4. 손해를 멈추고 수익을 취해서 수익을 확보하세요.

구체적으로, 닫기 가격이 34주기 EMA를 넘고 MACD 라인이 SIGNAL 라인을 넘어서 긍정적인 영역으로 넘어가면, 그것은 강한 상승 동력을 나타냅니다. 그래서 우리는 구매합니다. 닫기 가격이 34주기 EMA를 넘어서고 MACD 라인이 SIGNAL 라인을 넘어서 부정적인 영역으로 넘어가면, 그것은 강한 하향 동력을 나타냅니다. 그래서 우리는 판매합니다.

장점

  1. MACD 지표는 명확한 신호로 가격 움직임의 전환을 정확하게 식별합니다.
  2. EMA 필터와 결합하면 잘못된 구매/판매 신호를 피할 수 있습니다.
  3. 손해를 멈추고 거래 손실에 대한 수익 통제를 취합니다.

위험 과 해결책

  1. MACD 신호는 가격 동작을 지연시키고 가장 좋은 입출점을 놓칠 수 있습니다. 이동 평균 기간을 단축하기 위해 매개 변수를 최적화 할 수 있습니다.
  2. 단 하나의 지표가 잘못된 신호를 생성하는 경향이 있습니다. 필터링을 위해 KDJ 같은 다른 지표를 추가 할 수 있습니다.
  3. 거래 수에 대한 제한이 없습니다. 과잉 거래로 이어질 수 있습니다. 매일 / 주간 거래 제한을 설정할 수 있습니다.

더 나은 기회

  1. MACD 매개 변수를 최적화하여 최적의 매개 변수 조합을 찾습니다.
  2. 잘못된 신호를 피하기 위해 다른 지표 판단을 추가하십시오. 예를 들어 MACD + KDJ, MACD + BOLL 조합.
  3. 거래 빈도 제한을 시행하여 과잉 거래를 방지합니다.
  4. 위험/이익 비율을 높이기 위해 스톱 로스/이익 전략 최적화

결론

이 전략은 MACD 지표를 사용하여 거래 기회를 식별하고 34 주기의 EMA를 사용하여 신호를 필터합니다. 스톱 로스 / 취득을 통해 위험을 제어하면서 새로운 가격 트렌드가 시작되면 적시에 입력 할 수 있습니다. 이 전략은 매개 변수 최적화, 수익성 향상을 위해 다른 지표 등을 추가하여 더욱 정밀화 할 수 있습니다.


/*backtest
start: 2024-01-19 00:00:00
end: 2024-02-18 00:00:00
period: 1h
basePeriod: 15m
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/
// © melihtuna

//@version=2
strategy("Jim's MACD", overlay=true)

Tendies = input(true, title="Check here for tendies")

// === MACD Setup ===
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)

//EMA
ma = ema(close, 5)
plot(ema(close,5))


//Entry
if (close > ma and cross(macdLine,signalLine) and histLine> 0.4 and signalLine > 0 or histLine > 0 and signalLine > 0 )
    strategy.entry("BUY", strategy.long)
if(close < ma and cross(macdLine,signalLine) and histLine < -0.4 and signalLine < 0 or close < ma and histLine < 0 and signalLine < 0 )
    strategy.entry("SELL", strategy.short)
    
//Exit 
strategy.close("BUY", when = histLine < 0  )
strategy.close("SELL", when = histLine > 0  )


더 많은