다중 지표 기반 추세 추적 전략
개요
본 전략의 명칭은 다중 지표 조합 추세 추종 전략(Multi-Indicator Trend Tracking Strategy)이며, Fisher 변환 지표, 가중 이동 평균(WMA), 상대 강도 지수(RSI) 및 균형 거래량(OBV) 등의 여러 지표를 활용하여 시장 추세 방향을 판단하고 추세 추종 거래를 실행합니다.
전략 원리
- Fisher 변환 지표는 가격 변화 추세와 강도를 판단합니다. 4개의 Fisher 선이 동시에 색상이 변할 때 거래 신호를 발생시킵니다.
- WMA는 큰 추세 방향을 판단합니다. RSI는 가짜 신호를 필터링합니다.
- OBV 지표는 추세를 확인하는 데 사용됩니다.
구체적으로, Fisher 변환 지표는 1배, 2배, 4배, 8배의 4개 선으로 구성됩니다. 4개 선이 동시에 위로 녹색으로 변하면 매수 신호가 발생하고, 4개 선이 동시에 아래로 빨간색으로 변하면 매도 신호가 발생합니다. WMA는 큰 추세 방향을 판단하며, 지표가 상승하면 강세, 하락하면 약세로 판단합니다. OBV는 추세 방향을 확인하는 데 사용됩니다. 상대 강도 지수 RSI는 가짜 신호를 필터링합니다.
장점 분석
본 전략은 다음과 같은 장점을 가지고 있습니다:
- Fisher 변환 지표는 강도 판단이 뛰어나며, 4개의 Fisher 선이 동시에 색상이 변할 때 추세 반전 가능성이 매우 높습니다.
- WMA는 주요 큰 추세 방향을 판단하여 역추세 거래를 방지합니다.
- OBV 지표는 추세를 확인하여 추세 없는 시장의 가짜 돌파를 방지합니다.
- RSI 지표는 가짜 신호를 필터링하여 신호의 신뢰성을 보장합니다.
여러 지표를 조합하여 적용함으로써 거래 신호의 정확성과 신뢰성을 확보할 뿐만 아니라 추세 추종 능력을 갖추어 우수한 전략 효과를 얻을 수 있습니다.
리스크 분석
본 전략은 다음과 같은 일부 리스크도 존재합니다:
- 시장이 횡보할 경우 Fisher 선이 가짜 신호를 발생시킬 수 있습니다. 이 경우 RSI 필터링에 의존해야 합니다.
- WMA 매개변수 설정이 적절하지 않으면 판단 정확도에 영향을 줄 수 있습니다.
- Fisher 변환 지표는 초단기行情 판단이 좋지 않습니다.
- 폭포선(급락) 상황에서 전략이 큰 손실을 초래할 수 있습니다.
리스크를 줄이기 위해 RSI 매개변수를 적절히 조정하고 WMA 주기 매개변수를 최적화할 수 있습니다. 또한 손절매 지점을 설정하여 큰 손실을 방지할 수 있습니다.
최적화 방향
본 전략은 다음 측면에서 추가로 최적화할 수 있습니다:
- 다양한 주기 매개변수에서 전략 효과를 테스트하여 최적의 매개변수 조합을 찾습니다.
- 손절매 메커니즘을 추가합니다. 손실이 일정 비율에 도달하면 손절매합니다.
- 백테스트 결과에 따라 Fisher 변환 지표의 매개변수를 추가로 조정하여 지표 판단이 가장 정확한 매개변수 조합을 찾습니다.
- 강약 지표, Bias 등 다른 지표 필터링을 추가해 봅니다.
- 다양한 진입 포지션 크기 설정을 테스트합니다.
요약
본 전략은 Fisher 변환 지표, WMA 지표, OBV 지표 및 RSI 지표를 종합적으로 활용하여 시장의 추세 방향을 판단합니다. 신호 판단이 정확하고 확인 능력이 강하여 추세에서 효과적으로 이익을 확보할 수 있습니다. 매개변수 최적화를 통해 전략의 profit factor를 더욱 향상시킬 수 있습니다. 전반적으로 이 전략은 지표 조합 판단을 통해 효율적인 추세 추종 거래를 실현하며 효과가 우수합니다.
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//author Sdover0123
strategy(title='FTR, WMA, OBV & RSI Strat', shorttitle='FTR WMA, OBV, RSI',overlay=false, default_qty_type=strategy.percent_of_equity, initial_capital = 100, default_qty_value=100, commission_value = 0.06, pyramiding = 3)
Len = input.int(10, minval=1, group ="Fisher Transform")- 1

