개요
본 전략의 핵심 로직은 연속된 N개의 캔들(봉) 종가가 연속 상승하는지 감지하고, 그렇다면 매수 포지션을 취하며, 조건을 만족하지 않으면 청산하는 것입니다. 이를 통해 주가 상승 추세를 포착하여 수익을 실현할 수 있습니다.
전략 원리
해당 전략의 핵심 지표는 nCounter로, 현재 캔들의 종가와 시가를 비교하여 가격 상승 여부를 판단합니다.
구체적으로, close[1] >= open[1]이면 nCounter를 1 증가시켜 상승을 의미하고, close[1] < open[1]이면 nCounter를 0으로 리셋합니다. 이렇게 하면 연속 상승한 캔들 개수를 집계할 수 있습니다.
그런 다음 nCounter를 매개변수 nLength와 비교하여 nCounter >= nLength일 때 신호 C1=1을 출력하고, 그렇지 않으면 C1=0을 출력합니다. 여기서 nLength는 신호를 생성하기 위해 필요한 연속 상승 캔들 개수입니다.
C1=1 신호를 수신하면 현재 포지션이 없을 경우 매수하고, 이미 매수 포지션이 있으면 계속 보유합니다.
또한, 본 전략은 손절 및 익절 조건을 설정했습니다. 가격이 진입 가격보다 일정 비율 하락하면 손절 청산하고, 일정 비율 상승하면 익절합니다.
장점 분석
이는 비교적 전형적인 추세 추종 전략으로, 다음과 같은 장점을 가집니다:
- 주가 상승 추세의 기회를 포착할 수 있어 매수 전략으로 활용하기 적합합니다.
- N개 연속 상승을 진입 신호로 사용하여 가짜 돌파를 효과적으로 필터링하고 불필요한 거래를 줄입니다.
- 손절 및 익절 조건을 설정하여 하락 위험을 제한하고 수익을 확정할 수 있습니다.
- 전략 로직이 단순 명확하여 이해하고 수정하기 쉽습니다.
- 매개변수 nLength 조정을 통해 거래 빈도를 제어할 수 있습니다.
리스크 분석
해당 전략에는 다음과 같은 몇 가지 리스크도 존재합니다:
- 상승 추세가 반전될 경우 적시에 손절하지 못하면 큰 손실이 발생할 수 있습니다.
- nLength 매개변수를 너무 크게 설정하면 좋은 진입 기회를 놓칠 수 있습니다.
- 시장 환경을 고려하지 않아 지수가 하락할 때 매수 포지션을 보유하면 손해를 입기 쉽습니다.
- 각 종목의 특성에 따라 매개변수를 조정하지 않고 통일된 매개변수를 사용하면 일부 종목에는 적합하지 않을 수 있습니다.
이러한 리스크를 줄이기 위해 더 엄격한 손절 조건을 설정하고, nLength 매개변수를 최적화하며, 지수 판단 규칙을 추가하거나 종목별로 매개변수를 개별 테스트할 수 있습니다. 물론 모든 전략이 손실을 완전히 피할 수는 없으며, 거래자의 위험 선호도와 일치해야 합니다.
최적화 방향
위의 리스크를 고려하여 다음과 같은 측면에서 전략을 지속적으로 최적화할 수 있습니다:
- 이동 손절 또는 트레일링 스탑 기능 추가. 가격 변동에 따라 손절 위치를 적시에 조정하여 손실 위험을 낮춥니다.
- nLength 매개변수 최적화. 서로 다른 유형의 종목에 대해 개별 테스트를 수행하여 각 유형에 더 적합한 매개변수 값을 찾습니다.
- 지수 환경 판단 추가. 예를 들어 지수가 하락할 때 거래를 중단하여 역추세 거래로 인한 추가 손실을 방지합니다.
- 거래량 등 추가 요소를 보조 조건으로 포함. 예를 들어 상승 과정에서 거래량이 증가하도록 요구하여 돌파의 유효성을 보장합니다.
- 낙폭 제어 설정. 예를 들어 최대 허용 손실 비율, 최대 연속 손실 횟수 등을 설정하여 전체 손실을 자동으로 제어할 수 있습니다.
요약
본 전략은 N개의 연속 상승 캔들을 감지하여 상승 추세를 포착함으로써 효과적인 추세 추종을 수행할 수 있습니다. 장점은 로직이 단순하고 매개변수 조정이 유연하며 가짜 돌파를 필터링할 수 있다는 점입니다. 그러나 일부 리스크도 존재하므로 손절, 매개변수 최적화, 환경 판단 등의 모듈을 추가하여 개선함으로써 전략을 보다 포괄적이고 안정적으로 만들 수 있습니다. 전반적으로 이 전략은 퀀트 트레이딩에 유용한 기본 모델을 제공하며, 지속적인 개선을 통해 강력한 트레이딩 도구가 될 수 있습니다.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 05/02/2020
// Evaluates for n number of consecutive higher closes. Returns a value - 1

