이중 MACD 양적 거래 전략

저자:차오장, 날짜: 2023-11-13 18:04:07
태그:

img

전반적인 설명

이 전략은 트레이딩 신호를 생성하는 동안 시장 트렌드를 결정하기 위해 이중 EMA 시스템과 RSI 지표의 조합을 활용합니다. 트렌드 다음 전략에 속합니다. 이 간단하고 사용하기 쉬운 전략은 다양한 주요 지수 및 암호화폐에 적용됩니다. 2013년부터 현재까지 백테스트에서 500% 이상의 누적 수익을 달성했습니다.

전략 논리

이 전략은 주요 거래 지표로 다른 매개 변수 설정을 가진 두 개의 MACD를 사용합니다. 첫 번째 MACD는 10 기간 단 EMA, 22 기간 긴 EMA, 9 기간 신호 라인을 채택합니다. 두 번째 MACD는 21 기간 단 EMA, 45 기간 긴 EMA, 20 기간 신호 라인을 사용합니다.

첫 번째 MACD는 DIFF 라인이 0을 넘을 때 구매 신호를 생성하고 0을 넘을 때 판매 신호를 생성합니다. 두 번째 MACD의 신호는 첫 번째 MACD의 신호를 확인합니다.

또한, 전략은 트렌드를 결정하기 위해 가격 동력 공식을 사용합니다. 이전 클로즈 + 하이라이트 + 하이라이트를 1 이상으로 나누는 최신 클로즈 + 하이라이트는 상승 트렌드를 나타내고 구매 신호를 생성하고, 판매 신호는 그 반대의 경우입니다.

마지막으로, 스톡 RSI K 라인은 20 이상으로 판매 신호를 확인하는 데 도움이 됩니다.

이점 분석

이 전략의 이중 EMA 메커니즘은 잘못된 브레이크오웃을 효과적으로 필터할 수 있다. 보충 추진력 공식은 또한 변동성으로 인한 잘못된 신호를 피한다. 주식 RSI의 통합은 과잉 매입 부위에 판매 신호를 발송함으로써 정상을 쫓는 것을 피한다.

이 전략은 지나치게 복잡한 논리적 관계없이 여러 공통 지표의 간단한 조합만을 사용하며, 이는 이해 및 수정하기가 매우 쉽습니다. 매개 변수 설정은 또한 다른 제품에 대한 최적화가 필요없이 매우 보편적입니다. 전략에 큰 적응력을 제공합니다.

백테스트 결과에 따르면, 이 전략은 펀드 지수와 암호화폐와 같은 다양한 제품에서 괜찮은 누적 수익률과 최대 마감 통제를 달성했습니다. 이 전략은 다재다능한 트렌드 다음 전략으로 사용될 수 있습니다.

위험 분석

이 전략의 주요 위험은 결정에 이동 평균을 사용하는 데 있습니다. 가격 변동이 격렬할 때 쉽게 윙사와 손실을 유발할 수 있습니다. 또한 단일 포지션에서 손실을 제어하는 스톱 로스 메커니즘이 없습니다.

과잉 구매/ 과잉 판매 수준을 감지하는 스톡 RSI의 효과는 이상적이지 않습니다. 회전 신호를 자주 놓칠 수 있습니다.

가격이 급격히 떨어지지만 MACD가 아직 죽음의 십자가를 형성하지 않았다면 이 전략은 손실 포지션을 유지하고 손실을 계속합니다.

최적화 방향

단일 포지션 손실을 제어하기 위해 스톱 손실을 추가하는 것을 고려하십시오. 예를 들어 ATR 스톱 손실 또는 낮은 이동 평균에 기초한 스톱 손실.

확인을 위해 다른 지표를 추가하십시오. 예를 들어 KD 또는 Bollinger Bands를 Stoch RSI와 결합하여 더 신뢰할 수 있는 과잉 구매 / 과잉 판매 검출을 위해.

부피 분석을 포함합니다. 중요한 판매 부피가 나타나면 스톱 로스를 올리는 것, 부피가 약할 때 새로운 포지션을 피하는 것.

다른 매개 변수 조합을 테스트하고 MACD 기간을 최적화하십시오. 또한 여러 확인을 위해 다른 시간 프레임의 MACD를 추가하여 테스트하십시오.

결론

이중 MACD 양적 거래 전략은 트렌드를 결정하기 위해 이중 EMA 크로스오버를 사용하여 잘못된 신호를 피하기 위해 모멘텀 지표로 보완된 간단하고 명확한 논리를 가지고 있습니다. 높은 확률의 거래 기회를 필터링할 수 있습니다. 보편적 매개 변수 설정과 탄탄한 성능은 그것을 구축하는 좋은 기초 전략으로 만듭니다. 다음 단계는 스톱 로스 메커니즘을 개선하고 볼륨 분석을 추가하고 다른 지표를 결합함으로써 안정성과 수익성을 더욱 향상시키는 것입니다.


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Multiple MACD RSI simple strategy", overlay=true, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=80, pyramiding=0, calc_on_order_fills=true)

fastLength = input(10)
slowlength = input(22)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = sma(MACD, MACDLength)
delta = MACD - aMACD

fastLength2 = input(21)
slowlength2 = input(45)
MACDLength2 = input(20)

MACD2 = ema(open, fastLength2) - ema(open, slowlength2)
aMACD2 = sma(MACD2, MACDLength2)
delta2 = MACD2 - aMACD2


uptrend = (close + high)/(close[1] + high[1])
downtrend = (close + low)/(close[1] + low[1])

smoothK = input(2, minval=1, title="K smoothing Stoch RSI")
smoothD = input(3, minval=1, title= "D smoothing for Stoch RSI")
lengthRSI = input(7, minval=1, title="RSI Length")
lengthStoch = input(8, minval=1, title="Stochastic Length")
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
h0 = hline(80)
h1 = hline(20)

yearin = input(2018, title="Year to start backtesting from")

if (delta > 0) and (year>=yearin) and (delta2 > 0) and (uptrend > 1)
    strategy.entry("buy", strategy.long, comment="buy")

if (delta < 0) and (year>=yearin) and (delta2 < 0) and (downtrend < 1) and (d > 20)
    strategy.entry("sell", strategy.short, comment="sell")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

더 많은