모멘텀 서킷 브레이커 MACD 전략


생성 날짜: 2023-10-20 17:12:31 마지막으로 수정됨: 2023-10-20 17:12:31
복사: 0 클릭수: 459
1
집중하다
1166
수행원

모멘텀 서킷 브레이커 MACD 전략

개요

동력 독점 MACD 전략은 주로 MACD 지표와 동력 지표의 조합을 사용하여 거래 신호를 형성하는 경향 추적 전략에 속한다. 이 전략은 먼저 빠른 라인 EMA와 느린 라인 EMA를 계산하고, 그 다음 MACD 값을 계산하고, 그 다음 MACD의 신호 라인을 계산한다. 동시에 가격의 동력 값을 계산한다. 동력 값과 MACD 차이는 0 축 위쪽에 교차하면 구매 신호를 생성한다. 동력 값과 MACD 차이는 0 축 아래쪽에 교차하면 판매 신호를 생성한다. 이중 확인은 거래 신호를 형성하는 전략에 속한다.

전략 원칙

이 전략은 주로 MACD와 동력 지표의 조합을 기반으로 한다.

MACD 지표는 트렌드 추적형 지표로, 패스트 라인 EMA, 슬로 라인 EMA, MACD 기둥 모양의 그래프로 구성된다. 패스트 라인 EMA 파라미터는 일반적으로 12일, 슬로 라인 EMA 파라미터는 26일이며, 계산 공식은 다음과 같다:

단선 EMA = EMA ((폐쇄 가격, 12)

슬로우 라인 EMA = EMA (폐쇄 가격, 26)

MACD = 빠른 라인 EMA - 느린 라인 EMA

신호선 = EMA (MACD,9)

빠른 선에서 느린 선을 통과할 때, 단기 상승 동력이 장기보다 강하다는 것을 나타내는 입구 신호; 빠른 선 아래에서 느린 선을 통과할 때, 장기 하락 동력이 단기보다 강하다는 것을 나타내는 출구 신호。

동력 지표는 주가 변동 속도를 나타내는 기술 지표이며, 계산 공식은 다음과 같다.

동전값 = 오늘 종료 가격 - N일 전 종료 가격

그 중 N은 일반적으로 10을 다. 오늘 종결 가격이 N일 전보다 상승했을 때, 동적값은 긍정하며, 주식은 상승 추세에 있다. 오늘 종결 가격이 N일 전보다 낮아졌을 때, 동적값은 부정하며, 주식은 하락 추세에 있다.

이 전략은 MACD 지표와 동력 지표의 조합을 사용하여 거래 신호를 형성하는 결정 기준은 다음과 같습니다: MACD 차등과 동력 차등의 차등이 0축을 통과하면 구매 신호가 발생하여 0축 위쪽에 교차가 형성됩니다. MACD 차등과 동력 차등의 차등이 0축을 통과하면 판매 신호가 발생하여 0축 아래쪽에 교차가 형성됩니다. 이것은 쌍 확인 거래 신호 생성 메커니즘의 일부이며, 몇 가지 가짜 신호를 필터링하여 트렌드 추적을 구현 할 수 있습니다.

전략적 강점 분석

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

  1. MACD 지표와 동력 지표의 조합은 트렌드 추적을 구현하여 자산 가격의 흔들림이 방향성이 부족할 때만 무효 거래가 발생하는 것을 방지합니다.

  2. 이중 확인 메커니즘에 기반한 거래 신호를 생성하여 약간의 잡음을 필터링하여 가짜 신호의 간섭을 방지할 수 있다.

  3. MACD 지표의 매개 변수는 조정할 수 있으며, 다른 품종과 거래 주기에 따라 매개 변수를 최적화할 수 있으며, 적응력이 강하다.

  4. 트렌드 포착을 위한 양방향 거래 메커니즘을 사용한다.

  5. 전략은 이해하기 쉽고, 변수가 적어서 초보자를 위한 것이다.

전략적 위험 분석

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

  1. MACD와 동력 지표는 모두 트렌드 추적형 지표이며, 시장이 급격한 변동이나 명백한 추세가 없을 때 더 많은 무효 거래가 발생할 수 있다.

  2. 이중 지수 포트폴리오는 가짜 신호를 필터링 할 수 있지만 거래 기회를 놓칠 수도 있습니다. 위험을 균형 잡기 위해 파라미터를 적절히 조정해야합니다.

  3. 대주기 추세가 역전되면 MACD 지표가 지연되어 거래 손실이 발생한다.

  4. 거래의 빈도가 높을 수 있으며, 자금 관리와 수수료 통제에 주의를 기울여야 합니다.

  5. 잘못된 매개 변수는 너무 민감하거나 너무 뒤쳐져 시장 상황에 따라 지속적으로 테스트 및 최적화가 필요합니다.

전략 최적화 방향

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

  1. MACD 지표의 파라미터를 최적화하여 거래의 종류와 주기에 따라 최적의 파라미터 조합을 찾습니다.

  2. 동력 지표의 일 수 파라미터를 최적화하고, 민감도와 필터 잡음을 균형을 잡는다.

  3. 단일 거래의 최대 손실을 제어하기 위해 스톱 로즈 메커니즘을 추가합니다.

  4. 거래 규모를 트렌드에 따라 조정할 수 있도록 포지션 관리 모듈을 추가합니다.

  5. 농도 지표와 같은 필터를 추가하여 곡선 거래의 잘못된 거래를 피하십시오.

  6. 다른 지표들, 예를 들어 BRI, RSI 등과 결합하여 다중 확인 거래 신호를 형성한다.

  7. 최적화 순환을 추가하여 매개 변수가 계속 반복되고 최적화될 수 있도록 한다.

요약하다

동력 독점 MACD 전략은 MACD 지표와 동력 지표의 Strengths를 사용하여 트렌드 추적 거래를 구현한다. 이중 확인 메커니즘은 시장 소음을 효과적으로 차단하고 무효 거래의 발생을 방지할 수 있다. 이 전략은 간단하고 직설적이며 이해하기 쉬운 사용이며 초보자 학습에 특히 적합하다. 그러나 MACD 지표의 후진성, 그리고 흔들림 디스크 전체 단계에서 무효 거래의 위험도 주의해야 한다. 지표 매개 변수를 지속적으로 최적화하고 보조 기술 지표를 추가하면 더 강력한 전략 시스템이 형성될 수 있다.

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

//@version=4
strategy(title="MACD MOMENTUM TEST", shorttitle="MACD MOM TEST")

// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
len = input(title="Momentum", type=input.integer, defval=10)
src1 = input(title="Source MACD", type=input.source, defval=close)
src2 = input(title="Source MOMENTUM", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 14)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #0c8e61
col_grow_below = #ffcdd2
col_fall_above = #b2dfdb
col_fall_below = #d42f28
col_macd = #ffffff
col_signal = #d42f28
col_mom = #fbc02d

// Calculating
fast_ma = sma_source ? sma(src1, fast_length) : ema(src1, fast_length)
slow_ma = sma_source ? sma(src1, slow_length) : ema(src1, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
mom = src2 - src2[len]


ma(s,l) => ema(s,l)
sema = ma( src1, fast_length )
lema = ma( src1, slow_length )
i1 = sema + mom + ma( src1 - sema, fast_length )
i2 = lema + mom + ma( src1 - lema, slow_length )
macdl = i1 - i2
macd1 =sema - lema

delta = mom - macd1

// Strategy
    // Backtest
FromYear  = input(defval = 2001, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

    // Function exampel
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

if (crossover(delta, 0))
    strategy.entry("Buy", true, when=window(), comment="Buy")

if (crossunder(delta, 0))
    strategy.close_all(when=window())

// Plot
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)
plot(hist, title="Histogram", style=plot.style_histogram, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
plot(mom, color=col_mom, title="Mom")