엘러스 즉시 추세선 전략
개요
Ehlers 즉시 추세선 전략은 John Ehlers가 자신의 저서 《주식과 선물의 제어 분석(Cybernetic Analysis for Stocks and Futures)》에서 제안한 전략입니다. 이 전략은 기술적 지표를 사용하여 주식 또는 선물의 즉시 추세를 식별하고, 추세 반전 시 포지션을 오픈합니다.
전략 원리
이 전략의 핵심은 즉시 추세선(IT)을 계산하는 것입니다. IT선의 계산 공식은 다음과 같습니다.
it := (a-((a*a)/4.0))*src+0.5*a*a*src[1]-(a-0.75*a*a)*src[2]+2*(1-a)*it[1]-(1-a)*(1-a)*it[2]
여기서 src는 가격을 나타내고, a는 평활 계수로 기본값은 0.07입니다. 이 공식은 2차 필터로서 가격을 평활화하고 추세를 생성합니다.
또 다른 핵심 지표는 지연선(lag)이며, 계산 공식은 다음과 같습니다.
lag = 2.0 * it - nz(it[2])
이 선은 IT선보다 한 주기 지연됩니다. 가격이 지연선을 상향 돌파하면 추세 반전을 의미하여 매수하고, 가격이 지연선을 하향 돌파하면 추세 반전을 의미하여 매도합니다.
또한, 이 전략은 손절매 주문을 설정하여 리스크를 통제합니다.
장점 분석
이 전략은 다음과 같은 장점을 가지고 있습니다.
- IT선을 사용하여 추세를 식별함으로써 시장 노이즈를 효과적으로 필터링하고 신호 품질을 향상시킵니다.
- 2차 필터를 적용하여 매개변수 최적화 공간이 넓고 조정 가능성이 높습니다.
- 지연선과 결합하여 거래 신호를 생성함으로써 추세 중 반복적인 포지션 오픈/클로즈를 방지합니다.
- 손절매 주문을 설정하여 리스크를 통제할 수 있으며, 손절매 비율을 사전에 설정할 수 있습니다.
- 코드 구조가 명확하여 이해와 수정이 용이합니다.
리스크 분석
이 전략에는 몇 가지 리스크도 존재합니다.
- IT선과 지연선의 매개변수 설정이 부적절할 경우 잘못된 신호가 발생할 수 있습니다.
- 손절매 포인트 설정이 부적절하면 너무 일찍 손절매하거나 손실 폭이 과도해질 수 있습니다.
- 거래 빈도가 높아 거래 비용이 수익성에 영향을 미칠 수 있습니다.
- 포지션 보유 시간이 길어지면 레버리지 효과가 수익률에 부정적 영향을 미칠 수 있습니다.
이러한 리스크는 다음과 같은 방법으로 완화할 수 있습니다.
- 머신러닝 알고리즘을 적용하여 매개변수를 최적화합니다.
- 적응형 손절매 포인트를 설정합니다.
- 포지션 수량을 적절히 조정하여 거래 빈도를 낮춥니다.
- 포지션 보유 기간 손절매를 설정합니다.
최적화 방향
이 전략은 다음과 같은 방향으로 최적화할 수 있습니다.
- 다양한 필터 매개변수가 결과에 미치는 영향을 테스트하여 최적의 매개변수를 찾습니다.
- 다른 지표와 결합하여 거래 신호를 선별함으로써 신호 품질을 향상시킵니다.
- 포지션 오픈 로직을 최적화하여 추세 가속 구간에서 포지션을 확대합니다.
- 적응형 손절매 전략을 설정하여 시장 변동성에 따라 손절매 포인트를 조정합니다.
- 시계열 분석을 수행하여 거래 시간과 주기가 결과에 미치는 영향을 판단합니다.
결론
전반적으로, Ehlers 즉시 추세선 전략은 기술적 지표를 사용하여 주식/선물의 실시간 추세를 식별하고 추세 반전 시 포지션을 오픈합니다. 효과적인 노이즈 필터링, 높은 매개변수 조정 가능성, 명확한 신호 생성 로직, 내장된 리스크 통제 등의 장점을 가지고 있습니다. 매개변수 선택, 신호 필터링, 포지션 규모, 손절매 조정을 더욱 최적화함으로써 이 전략은 더 나은 성과를 낼 수 있습니다. 명확한 코드 구조로 인해 이해와 수정도 용이합니다. 요컨대, 테스트와 개선을 통해 가치 있는 효율적인 추세 추종 시스템입니다.
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Ehlers Instantaneous Trendline Strategy", shorttitle = "Ehlers Instantaneous Trendline Strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 1, backtest_fill_limits_assumption = 1)
src = input(hl2, title="Source")
a = input(0.07, title="Alpha", step=0.01) - 1

