이것은 MACD, RSI 및 EMA 이동 평균을 결합한 양적 거래 전략입니다. 그것은 시장의 중장기 트렌드를 추적하기 위해 MACD 골든 크로스를 긴 입구, RMSI 과잉 매수 역전 및 EMA 이하의 가격 브레이크오웃을 중지 손실 출구로 사용합니다.
이 전략은 주로 다음과 같은 세 가지 지표를 사용하여 거래 신호 판단과 전략 실행을 수행합니다.
MACD: 빠른 라인, 느린 라인 및 MACD 히스토그램을 계산합니다. 전략은 빠른 라인과 느린 라인의 황금 십자가에 의해 입점 시기를 판단합니다.
RSI: 14 기간 RSI를 계산하고 과잉 구매/ 과잉 판매 라인을 설정합니다. 전략은 과잉 구매 위험을 피하기 위해 주간 시간 프레임에서 RSI 과잉 구매 반전을 사용합니다.
EMA: 50일 EMA 라인을 계산합니다. 이 전략은 손실 위험을 제어하기 위해 이 라인 아래의 가격 브레이크에 의해 스톱 로스 포인트를 설정합니다.
매커드 패스트 라인이 슬로우 라인의 위를 넘어서 황금색 십자가를 형성할 때 구매 신호가 생성됩니다. 동시에 주간 RSI 지표가 50 이상으로 요구되므로 과잉 구매 상태를 나타냅니다. 이는 시장의 이 라운드의 상승 추세를 파악하는 데 도움이됩니다. 마지막으로, 긴 엔트리는 가격이 50 일간의 EMA 라인을 넘었을 때만 실행됩니다.
만약 가격이 50일 EMA 이하로 떨어지거나 MACD 마드 크로스가 발생하면 스톱 로스 출입이 실행됩니다.
이 전략의 장점은 좋은 돌파구 추적 능력을 달성하기 위해 MACD, RSI 및 EMA 지표를 결합합니다.
MACD 골든 크로스는 시장의 구매 시기를 더 일찍 파악할 수 있는 몇 가지 리드 특성을 가지고 있습니다.
주간 RSI를 기반으로 단기 초고가 시나리오를 효과적으로 필터링하고 중장기 상승 추세를 파악할 수 있습니다.
EMA 스톱 로즈는 갑작스러운 하락 추세에 맞춰 적절한 시간에 스톱 로스를 할 수 있으며 DD를 효과적으로 제어합니다.
전체적으로, 이 전략은 중장기적 혁신 기회를 원활하게 포착하고 시장이 상승한 후에 적당한 수익을 얻을 수 있습니다.
다음 위험 요소 들 에 주의 를 기울이십시오.
MACD 골든 크로스는 시장의 최적의 진입 지점을 놓칠 수 있는 몇 가지 후퇴 속성을 가지고 있습니다.
RSI와 EMA의 매개 변수 설정은 반복적인 테스트와 최적화가 필요합니다. 그렇지 않으면 유효하지 않을 수 있습니다.
돌파구 시장의 가장 좋은 구매 지점은 반드시 황금색 십자가의 순간에 나타나지 않습니다. 약간의 타이밍 위험이 있습니다.
너무 느슨한 스톱 손실 설정은 더 큰 DD로 이어질 수 있지만 너무 긴 스톱 손실 설정은 돌파
이 전략에 대한 최적화 방향은 다음과 같습니다.
더 나은 균형점을 찾기 위해 MACD 매개 변수 조합을 테스트하고 최적화하십시오.
또한 RSI 사이클과 과잉 구매/ 과잉 판매 라인도 최적화 할 수 있습니다.
또한 EMA의 움직이는 주기는 더 나은 매개 변수를 찾기 위해 적절하게 조정 될 수 있습니다.
입시 시기의 2차 확인은 KDJ 지표와 같은 고급 기술 지표에 따라 이루어질 수 있습니다.
스톱 로스를 더 똑똑하게 만들기 위해 비율 기반 이동 스톱 로스 또는 양적 스톱 로스를 채택하여 스톱 로스 출구 전략을 테스트하십시오.
일반적으로, 이 전략은 전형적인 중장기 추적 전략이다. MACD, RSI 및 EMA와 같은 여러 지표를 결합하여 보다 나은 입점점을 얻기 위해 입점 시기를 판단한다. 또한 거래 위험을 제어하기 위해 스톱 로스 조치를 채택한다. 이 전략은 중장기 추적 투자자에게 적합하며, 추가 최적화에 대한 여지가 있다. 적절한 매개 변수 조정을 통해 괜찮은 수익을 얻을 수도 있다.
/*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("MACD, EMA, and RSI Strategy", overlay=true) // Input for MACD fastLength = input(5, title="Fast Length") slowLength = input(13, title="Slow Length") signalLength = input(9, title="Signal Length") // Input for EMA emaLength = input(21, title="EMA Length") // Input for RSI rsiLength = input(14, title="RSI Length") rsiOverbought = input(50, title="RSI Overbought Level") // Calculate MACD on the weekly timeframe [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength) // Calculate 50-day EMA ema50 = ta.ema(close, emaLength) // Calculate RSI on the weekly timeframe rsi = ta.rsi(close, rsiLength) // Condition for Buy Entry buyCondition = ta.crossover(macdLine, 0) and dayofweek == dayofweek.monday and rsi > rsiOverbought // Condition for Sell Exit sellCondition = ta.crossunder(close, ema50) or ta.crossunder(macdLine, 0) // Execute Buy Entry on the next day's open if buyCondition strategy.entry("My Long Entry Id", strategy.long) // Execute Sell Exit on the next day's open if sellCondition strategy.close("My Long Entry Id") // Plotting MACD and EMA plot(macdLine - signalLine, title="MACD Histogram", color=color.blue, style=plot.style_histogram) hline(0, "Zero Line", color=color.gray) plot(ema50, title="50-day EMA", color=color.red) // Plotting RSI hline(rsiOverbought, "RSI Overbought", color=color.red) plot(rsi, title="RSI", color=color.green)