Strategies
Eight strategies
각 전략이 무엇을 보고 언제 사고 언제 파는지, 그리고 어떤 시장에서 무너지는지를 같은 무게로 적었습니다.
수익률 숫자는 여기에 없습니다. 검증되지 않은 수치를 공개하는 것보다 규칙을 공개하는 편이 정직하다고 판단했습니다.
운영팀의 연구 노트입니다. 회원에게 제공하거나 추천하는 전략이 아니며, 회원 계정은 이 전략의 신호를 받지 않습니다.
- Maturity
- 실계좌 운용
- Inputs
- 4종
체결 엔진
전략이 옳아도 체결이 틀리면 수익은 남지 않는다.
모든 전략은 결국 하나의 주문으로 끝난다. 체결 엔진은 시그널을 받아 주문을 쪼개고, 호가를 읽고, 미체결을 회수하는 층이다. 연구실에서 가장 많은 시간을 쓴 곳이기도 하다.
백테스트에서 좋았던 전략이 실계좌에서 무너지는 이유의 대부분은 알파가 사라져서가 아니라 슬리피지와 수수료를 과소평가했기 때문이다. 그래서 이 엔진은 체결 가정을 낙관적으로 잡지 않는다. 지정가는 호가에 실제로 줄을 서는 동안의 큐 대기를 반영하고, 시장가는 호가창을 실제로 먹어 들어가는 깊이만큼 불리하게 계산한다.
엔진은 전략을 알지 못한다. 전략도 엔진을 알지 못한다. 두 층은 시그널이라는 하나의 자료 구조로만 대화하고, 그 덕분에 전략 하나를 교체해도 체결 층을 다시 검증할 필요가 없다.
Rules
- 주문 방식
- post-only 지정가 우선, N초 미체결 시 시장가 전환
- 분할
- 목표 수량을 호가 깊이 대비 최대 20%씩 분할
- 재시도
- 지수 백오프, 최대 3회
- 안전장치
- 체결가가 시그널가 대비 임계치 이탈 시 주문 취소
Inputs
- 실시간 호가창 (L2)
- 체결 내역
- 계좌 잔고
- 거래소 지연 시간
무너지는 자리
거래소 API 지연이나 일시적 장애가 발생하면 엔진은 주문을 내지 않고 멈춘다. 멈추는 쪽이 잘못 내는 쪽보다 낫다는 판단이지만, 그동안의 기회는 그대로 잃는다.
- Maturity
- 실계좌 운용
- Inputs
- 3종
볼린저 밴드 이탈 회귀
가격이 밴드 밖으로 밀려나면, 밴드 안으로 돌아오는 쪽에 승산이 있다.
볼린저 밴드는 이동평균에서 표준편차만큼 떨어진 두 선이다. 가격이 하단 밴드를 뚫고 내려가면 통계적으로 드문 일이 벌어진 것이고, 그 드문 일은 대개 오래가지 않는다.
문제는 '대개'다. 추세장에서는 밴드 하단을 뚫은 가격이 그대로 계속 내려간다. 그래서 이 전략은 밴드 이탈 하나만으로는 진입하지 않는다. 밴드 폭이 좁아진 뒤 벌어지는 국면인지, 이미 벌어진 채 한 방향으로 흐르는 국면인지를 먼저 구분한다.
진입 조건이 성립해도 즉시 사지 않는다. 하단 이탈 후 다시 하단 밴드 위로 종가가 복귀하는 첫 캔들을 기다린다. 이 한 캔들의 지연이 백테스트에서 승률을 눈에 띄게 올렸다.
Rules
- 기준선
- 20기간 단순이동평균
- 밴드 폭
- 표준편차 2.0배
- 진입
- 종가가 하단 이탈 후 하단 위로 복귀한 첫 캔들
- 필터
- 밴드폭(%B) 하위 30% 구간에서는 진입 보류
- 청산
- 중심선 도달 또는 손절 -2.0%
Inputs
- 1시간봉 OHLCV
- 거래량
- 밴드폭 히스토리
무너지는 자리
강한 하락 추세에서는 밴드 하단을 따라 계속 내려가는 구간이 나온다. 이 전략의 최대 낙폭은 대부분 그런 구간에서 발생했다.
- Maturity
- 백테스트 검증 중
- Inputs
- 2종
이동평균 교차
느린 평균을 빠른 평균이 위로 뚫으면 추세가 바뀌었을 가능성이 있다.
가장 오래되고 가장 많이 알려진 규칙이다. 널리 알려졌다는 것은 곧 알파가 얇다는 뜻이기도 하다. 이 전략을 연구 대상으로 남겨둔 이유는 수익원이어서가 아니라, 다른 전략을 평가할 때의 기준선이 필요하기 때문이다.
새 전략이 이동평균 교차보다 위험 조정 수익률에서 앞서지 못하면, 그 전략은 복잡한 만큼의 값을 하지 못한 것이다. 연구실의 모든 백테스트 리포트는 이 기준선과 나란히 출력된다.
실제 운용에서는 교차 신호를 단독으로 쓰지 않고, 추세의 존재 여부를 판별하는 보조 필터로만 사용한다.
Rules
- 빠른 평균
- 50기간 지수이동평균
- 느린 평균
- 200기간 지수이동평균
- 진입
- 빠른 평균이 느린 평균을 상향 돌파
- 청산
- 하향 돌파 또는 손절 -4.0%
- 용도
- 기준선(benchmark) 및 추세 필터
Inputs
- 4시간봉 종가
- 장기 가격 히스토리
무너지는 자리
횡보장에서는 교차가 반복적으로 발생하며 수수료만 쌓인다. 단독 전략으로 운용하지 않는 이유다.
- Maturity
- 모의 운용
- Inputs
- 3종
RSI 다이버전스
가격은 새 저점을 만들었는데 모멘텀은 그러지 못했다면, 하락의 힘이 빠지고 있다.
다이버전스는 가격과 지표가 서로 다른 이야기를 하는 구간이다. 가격이 직전 저점보다 낮은 저점을 찍었는데 RSI는 직전보다 높은 저점을 찍었다면, 하락 자체는 이어졌지만 그 하락을 밀어붙인 힘은 약해졌다는 뜻이다.
사람 눈에는 잘 보이는 패턴이지만 코드로 옮기면 까다롭다. '저점'을 무엇으로 정의하느냐에 따라 완전히 다른 신호가 나오기 때문이다. 이 연구실에서는 좌우 각 5봉보다 낮은 지점만 저점으로 인정하고, 두 저점 사이 간격이 8봉에서 60봉 사이일 때만 유효한 다이버전스로 본다.
이 정의를 고정하기 전까지, 같은 차트를 두고도 백테스트 결과가 크게 흔들렸다. 지표 전략에서 가장 중요한 것은 지표가 아니라 정의라는 걸 이 전략에서 배웠다.
Rules
- 지표
- RSI 14기간
- 저점 정의
- 좌우 5봉 대비 최저점(fractal low)
- 유효 간격
- 두 저점 사이 8~60봉
- 진입
- 두 번째 저점 확정 후 다음 봉 시가
- 청산
- RSI 65 도달 또는 손절 -2.5%
Inputs
- 1시간봉 OHLCV
- RSI 시계열
- 확정된 프랙탈 저점
무너지는 자리
저점은 5봉이 더 지나야 확정된다. 즉 신호는 항상 5봉 늦게 도착하며, 급반등 구간의 초입은 구조적으로 놓친다.
- Maturity
- 실계좌 운용
- Inputs
- 4종
추적 청산
언제 사느냐보다 언제 파느냐가 곡선의 모양을 결정한다.
진입 규칙을 바꾸면 수익률이 조금 움직인다. 청산 규칙을 바꾸면 수익 곡선의 모양 자체가 바뀐다. 같은 진입 신호를 두고 청산 방식만 다섯 가지로 바꿔 돌려본 결과, 최대 낙폭이 두 배 넘게 차이 났다.
고정 익절은 큰 추세를 놓친다. 순수 추적 손절은 잔파도에 자주 털린다. 그래서 두 가지를 단계로 나눠 쓴다. 목표가의 절반에 도달하면 수량의 절반을 정리해 원금 위험을 먼저 없애고, 남은 절반은 ATR 기반 추적 손절로 추세가 끝날 때까지 따라간다.
이 구조의 값은 평균 수익률이 아니라 마음의 여유에서 나온다. 절반을 정리한 뒤부터는 남은 포지션이 손실로 돌아설 수 없기 때문에, 추세를 끝까지 들고 갈 수 있다.
Rules
- 1차 청산
- 목표가 50% 도달 시 수량 50% 정리
- 손절 이동
- 1차 청산과 동시에 손절선을 진입가로
- 추적 손절
- 최고가 - ATR(14) × 2.5
- 강제 청산
- 진입 후 72시간 경과
Inputs
- 체결 단가
- 실시간 가격
- ATR(14)
- 포지션 보유 시간
무너지는 자리
1차 청산 덕분에 손실은 줄지만, 크게 갈 자리에서 절반만 들고 가는 대가를 매번 치른다. 총수익 기준으로는 순수 추적 손절이 더 나은 구간도 있었다.
- Maturity
- 설계 단계
- Inputs
- 3종
호가 유동성 지도
가격이 어디서 멈출지는 차트보다 호가창에 먼저 적혀 있다.
체결된 가격은 과거지만, 호가창에 쌓인 미체결 주문은 아직 일어나지 않은 일에 대한 정보다. 특정 가격대에 매수 주문이 두껍게 쌓여 있으면 그 아래로 내려가기 어렵고, 매도벽이 두꺼우면 그 위로 뚫기 어렵다.
이 연구는 호가창 스냅샷을 초 단위로 수집해 시간 축에 쌓아 히트맵으로 만든다. 오래 유지되는 두꺼운 벽은 실제 지지·저항으로 작동하는 경향이 있고, 나타났다 사라지는 벽은 대개 체결 의사가 없는 주문이다.
아직 단독 진입 신호로 쓰지 않는다. 다른 전략이 진입 신호를 냈을 때, 목표가와 손절선을 벽의 위치에 맞춰 조정하는 용도로 쓰고 있다.
Rules
- 수집 주기
- 1초, 상위 50호가
- 벽 판정
- 해당 가격대 잔량이 중앙값의 4배 이상
- 지속성
- 60초 이상 유지된 벽만 유효
- 적용
- 손절선을 매수벽 바로 아래로 이동
Inputs
- L2 호가창 스냅샷
- 체결 테이프
- 호가 잔량 시계열
무너지는 자리
표시된 잔량이 곧 체결 의사는 아니다. 대량 주문을 걸었다 취소하는 행위를 완전히 걸러내지 못하며, 이 부분이 현재 연구의 최대 미해결 과제다.
- Maturity
- 백테스트 검증 중
- Inputs
- 4종
그리드 매매
방향을 못 맞추겠다면, 방향을 맞히지 않아도 되는 구조를 쓴다.
그리드는 일정 간격으로 매수·매도 주문을 격자처럼 깔아두고 가격이 오르내릴 때마다 조금씩 차익을 걷는 방식이다. 상승을 맞힐 필요도, 하락을 피할 필요도 없다. 필요한 것은 가격이 어떤 범위 안에서 계속 움직인다는 가정 하나뿐이다.
그리고 그 가정이 깨지는 순간이 이 전략의 전부다. 가격이 격자 범위를 아래로 이탈하면 전량 매수 상태로 물리고, 위로 이탈하면 전량 매도 상태로 상승을 구경만 한다. 그래서 이 연구의 초점은 격자 설계가 아니라 범위 이탈을 언제 인정하고 격자를 접을 것인가에 있다.
현재는 변동성이 낮은 횡보 국면을 판별해 그 구간에서만 격자를 켜고, ATR 기준으로 이탈이 확인되면 전체를 정리하는 방식을 검증하고 있다.
Rules
- 격자 범위
- 최근 14일 고가~저가
- 격자 수
- 20단계, 등비 간격
- 단계별 수량
- 총 배정 자본 / 20
- 가동 조건
- ADX(14) < 20 인 횡보 국면
- 중단
- 종가가 범위 밖 ATR 1.5배 이탈
Inputs
- 일봉 고저
- ADX(14)
- ATR(14)
- 미체결 격자 주문 상태
무너지는 자리
추세장에서 격자를 켜두면 손실이 누적된다. 이 전략의 성패는 격자 자체가 아니라 횡보 판별의 정확도에 달려 있고, 그 판별은 아직 충분히 검증되지 않았다.
- Maturity
- 실계좌 운용
- Inputs
- 3종
워크포워드 검증
과거 전체에 맞춘 전략은 과거에만 맞는다.
백테스트는 전략을 검증하는 도구가 아니라 전략을 속이는 도구가 되기 쉽다. 전체 기간의 성과를 보며 파라미터를 조정하면, 그 파라미터는 이미 미래를 본 셈이다. 이렇게 만들어진 곡선은 언제나 아름답고 언제나 재현되지 않는다.
워크포워드는 기간을 여러 구간으로 자른다. 앞 구간에서만 파라미터를 최적화하고, 그 파라미터를 다음 구간에 그대로 적용해 성과를 기록한다. 그리고 창을 한 칸 밀어 반복한다. 최종 성과 곡선은 언제나 '한 번도 보지 못한 구간'의 결과만 이어 붙인 것이다.
이 방식으로 다시 돌렸을 때 살아남은 전략은 처음 후보의 일부에 불과했다. 나머지는 과최적화였다. 연구실이 이 절차를 모든 전략의 통과 조건으로 고정한 이유다.
Rules
- 학습 구간
- 180일
- 검증 구간
- 60일
- 이동 폭
- 60일
- 체결 가정
- 수수료 0.05% + 슬리피지 1틱
- 통과 기준
- 검증 구간 샤프 > 1.0, 최대낙폭 < 20%
Inputs
- 분봉 히스토리
- 수수료·슬리피지 모델
- 파라미터 탐색 공간
무너지는 자리
워크포워드도 과거 데이터일 뿐이다. 검증 기간에 존재하지 않았던 시장 구조 변화 앞에서는 이 절차도 무력하다.
Next
규칙 뒤의 기록
위 규칙들이 어떤 실험을 거쳐 지금 모양이 되었는지는 연구 로그와 문서에 남아 있습니다. 폐기된 가설과 실패한 백테스트도 함께 들어 있어 공개 페이지에는 싣지 않고, 운영자 승인을 받은 프리미엄 회원에게 읽기 전용으로 엽니다. 모든 회원은 본인의 전략을 등록해 테스트할 수 있습니다.
가입 신청