MACD, RSI 모멘텀 돌파 전략
개요
MACD, RSI 및 스토캐스틱 지표를 활용하여 주가 모멘텀 방향을 판단하고, 모멘텀 돌파 지점에서 매수(롱) 또는 매도(숏) 포지션을 진입하는 전략입니다. 여러 지표를 조합하여 추세를 판단함으로써 단일 지표로 인한 오류 신호율을 낮추고 주가의 중단기 추세를 효과적으로 포착할 수 있습니다.
원리
본 전략은 MACD, RSI, 스토캐스틱 지표를 사용하여 주가의 추세 방향을 판단합니다. MACD의 DIFF선이 DEA선을 상향 돌파하고 RSI가 50보다 크며, STOCH의 빠른 선이 50보다 크면 상승 추세로 판단하여 다음 날 시가에 전액으로 당일 최고가에 매수(롱) 진입합니다. 반대로 MACD의 DIFF선이 DEA선을 하향 돌파하고 RSI가 50보다 작으며, STOCH의 빠른 선이 50보다 작으면 하락 추세로 판단하여 다음 날 시가에 전액으로 당일 최저가에 매도(숏) 진입합니다. 손익절은 과거 7일간의 변동 범위를 기준으로 계산하며, 손익 비율을 사용자 정의할 수 있습니다.
포지션 진입 후 세 지표 중 하나라도 반대 신호가 발생하면 추세가 전환된 것으로 판단하여 현재 포지션을 청산합니다. 또한 2020년 3월은 전체적으로 건너뛰도록 특별 시간 조건을 설정하여 극단적인 시장 상황의 영향을 피합니다.
장점
- 여러 지표를 조합하여 추세를 판단하므로 가짜 신호를 효과적으로 필터링할 수 있습니다.
- 돌파 시점에 진입하므로 추세의 초기 단계를 포착할 수 있습니다.
- 동적 손익절을 사용하여 합리적인 이익을 확보할 수 있습니다.
- 건너뛰기 구간을 설정하여 극단적인 시장 상황의 간섭을 방지할 수 있습니다.
- 추세와 반전 메커니즘을 결합하여 불필요한 거래 횟수를 줄일 수 있습니다.
위험
- 여러 지표 조합으로 인해 지연이 발생하여 최적의 진입 시점을 놓칠 수 있습니다.
- 돌파 신호가 쉽게 갇힐 수 있습니다.
- 동적 손절이 너무 공격적이어서 Preis에 의해 손절될 수 있습니다.
- 건너뛰기 특정 기간 설정이 적절하지 않으면 기회를 놓칠 수 있습니다.
- 반전 신호가 너무 민감하여 과도한 거래가 발생할 수 있습니다.
최적화 방법:
- 지표 매개변수를 조정하여 지연을 줄입니다.
- 필터(예: filte) 및 거래량 조건을 추가하여 갇힘을 방지합니다.
- 트레일링 스탑을 사용하여 Preis에 의한 손절을 방지합니다.
- 건너뛰기 날짜 범위를 최적화하고 테스트합니다.
- 반전 신호의 매개변수를 조정하여 빈도를 낮춥니다.
요약
본 전략은 전체적으로 전형적인 추세 추종 전략입니다. 동시에 여러 지표를 사용하여 추세를 판단하여 진입하고, 반전 신호를 사용하여 추세의 종료를 판단하여 청산함으로써 추세 추종과 반전 전환을 결합합니다. 그러나 전략 자체에는 일부 매개변수 설정이 부적절하고 지연 문제가 존재하며, 이는 많은 백테스트를 통해 최적화 및 개선하여 전략 매개변수를 최적의 상태로 조정해야 합니다.
전반적으로 전략의 아이디어는 명확하고 사용된 지표와 방법도 비교적 전형적입니다. 세부 최적화 및 리스크 관리 측면에서 잘 구현되어 실제로 적용 가능한 퀀트 전략이 될 수 있습니다. 그러나 완벽함과는 아직 거리가 있으며, 수익/손실비가 전문가 수준에 도달하려면 추가 테스트 및 최적화가 필요합니다. 지속적으로 최적화하고 업데이트한다면 이 전략은 장기적으로 추적할 가치가 있는 전략 품목이 될 수 있습니다.
/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=4
// Backtest the power x strategy. The power x strategy is develop by Markus Heitkoetter and Rockwell Trading.
// This script shows the return for a given stock for with the defined date range with a fixed captial of $10,000
strategy("PowerX Test", overlay=true, initial_capital=10000)- 1

