
PV 데이터는 가격(price)과 거래량(volume)에 관련된 정보를 포함함. 주가 예측에 핵심적인 요소인 ‘가격’ 자체를 포함하고 있기 때문에, 함수를 처음 만들 때 가장 유용한 데이터 유형 중 하나에 해당함. 즉, 함수 설계를 시작할 때는 거시지표나 복잡한 대체데이터보다 기본적인 가격·거래량 데이터(PV)가 가장 직관적이고 효과적인 출발점이 될 수 있음
Turnover 증가의 가장 큰 원인
이론적으로만 보면,거래 빈도가 높아질수록 통계적으로 샤프 비율이 개선될 가능성이 존재함. 이는 독립·동일분포 가정 하에서 거래 횟수가 증가하면 표본표준편차가 감소하기 때문이며, 평균 수익이 유지된다는 가정 하에서는 변동성 감소로 인해 샤프 비율이 이론적으로 증가하게 됨
그러나 실제 시장에서는 Trading Frequency로 인한 Turnover 증가가 샤프 비율에 악영향을 미칠 영향이 큼
그러나 Turnover를 지나치게 낮추기 위해 포지션을 오래 유지하면 신호의 반감기(signal decay) 문제로 인해 알파의 예측력이 빠르게 약화될 수 있음. 즉, PV 기반 전략에서는 “높은 Turnover → 거래비용 증가”와 “낮은 Turnover → 신호 노후화 → 예측력 감소”라는 두 가지 상반된 효과가 동시에 존재하며, 신호의 유효 기간과 거래비용 사이에서 최적의 균형을 찾는 것
컴퓨터가 아닌 휴먼 트레이더들의 성향을 이용한 알파 아이디어를 찾아볼 수 있음.
이런 성향에 대한 정량적 분석 자료나 관련 연구가 있다면, 그런걸 전략에 반영하면 좋을듯
PV function을 만들 때, PV Data만 쓰기보다는 다른 데이터를 섞어보자!
여러 종류의 데이터를 활용하더라도, 매수·매도 의사결정의 핵심 신호가 PV data에 기반한다면 해당 전략은 본질적으로 PV 기반 전략으로 분류할 수 있음. 다만 데이터가 과도하게 혼합되거나 특정 데이터 유형의 기여도가 불분명해지면, 전략의 금융적 해석 가능성과 일관성이 약화될 수 있으므로 이를 주의해야 함.
예를 들어서, 시가총액데이터인 cap은 Brain 플랫폼 상에서 pv section에서 찾아볼 수 있는데, 기업가치 데이터인 ev는 수식 상으로 시가총액 + 부채 + 기타등등임에도 불구하고 다른 section에 존재하기 때문에 너무 한 데이터 섹션 내에서 해결해야한다는 생각은 버리자!
PV 기반 Function에서 주로 사용하는 데이터필드 정리
여려 유형의 Data들이 있지만 그들의 공통적인 Source는 Chart라는 것을 기억하자!
volume * vwap ts_mean(volumne, 15)🚨 필독
필요한 지표가 있다면 먼저 해당 지표가 브레인 플랫폼 내 datafield로 이미 존재하는지 확인하고, 존재하지 않을 경우에는 내 컨셉과 비슷한 지표가 이미 정립이 되어있는지를 검색을 통해 조사함. 정립이 되어있다면 이에 따라 operator와 datafield를 조합하여 구현하며, 별도의 구현 방식이 없는 경우에는 문제의 목적에 맞게 적절한 datafield와 operator를 직접 설계하여 지표를 구성함.
예를 들어서, 20일치의 volumne을 평균낸 값을 adv20으로 바로 불러올 수 있는데, ts_mean(volume, 20)으로 굳이 작성할 필요없음
또한, 거래량만 가지고 진짜 주식의 영향력을 파악하기 힘들다고 생각한다면 나만의 지표를 만들어낼 수 도 있겠지만, 보조지표의 계산식을 검색을 통해서 찾고, 그걸 그대로 브레인에 이식할 수도 있음.
팩터와 다르게 지표 자체는 널리 알려진걸 씀으로 해서 손해볼 게 전혀없고 오히려 정확하게 계산하는게 중요할 수 있다는 걸 염두에 두면 좋을듯! 나만의 지표를 만들게 된다면 무의미한 연산이나 숫자 변경보다는 그 지표가 정말 내가 원하는 어떤 정성적인 맥락을 대표할 수 있는지 판단해볼 것
🚨 주의
모멘텀과 리버전은 시계열 데이터의 "추세가 지속될 것이다" vs "평균으로 되돌아올 것이다"와 같은 행동 가설이기 때문에, PV function을 설계할때만 쓸 수 있는 전략은 아님! 예를 들어서, 모멘텀 컨셉을 News function 설계에 사용한다면 최근 긍정 뉴스가 반복적으로 발생한 종목은 추가적인 상승 압력이 존재한다고 가정하여 long 포지션을, 반대로 부정 뉴스가 지속적으로 축적되는 경우에는 하락 압력이 이어질 가능성을 반영해 short 포지션을 취하는 식으로 확장할 수 있음. 여기서는 pv에 한해서 다룸.
값이 클수록 좋은 지표 A를 정의한 뒤, 추세는 분리해 해석하면 됨. 추세가 이어진다고 보면 모멘텀, 평균으로 되돌아온다고 보면 리버전 전략을 선택
컨셉: A가 높게 나타나는 주식은 앞으로도 A가 높게 나타날 것이다!
예시






Tips
컨셉: A가 높게 나타나는 주식은 이제 A가 낮게 나타날 것이다!
예시

실행 결과
개선 방법
언뜻 PNL graph만 보면 좋아보이지만(실제로 좋은 건 맞음), 문제는 Turnover가 85%정도로 매우 높게 나타나서 제출 불가능한 형태.


IS Summary에서 확인할 수 있듯, Turnover가 36.97%로 대폭 감소하였음! 여기서 사용한 방식은 Turnover를 줄이기 위한 하나의 예시이고 너무나도 많은 테크닉들이 존재한다는 것을 기억하자!중기와 장기는 어느 정도 끄덕끄덕하고 넘길 수 있는데 단기는 조금 더 상세하게 살펴볼 필요가 있어보임. 1~4주 정도의 구간은 시장·데이터·전략에 따라 reversal과 momentum이 섞여 나타나는 "Transition Zone"이라서 명확한 스타일이 없음.
따라서 lookback 구간을 한 달 이내로 설정하는 경우에는 특정 이론에 고정하기보다 실험적으로 결정하는 경우가 많음. 예를 들어 5일 수익률 평균을 기준으로 종목을 정렬하면 단기 노이즈에 대한 반작용이 강하게 나타나 평균회귀 전략이 효과적으로 작동하는 경향이 있지만, 약 10일 수준의 애매한 구간에서는 모멘텀과 리버전 효과가 혼재되기 때문에 두 접근을 모두 테스트한 후 성과를 비교해 선택하는 것이 합리적일 수 있음.
3)에서 널리 알려져 있는 지표를 사용할 수 있다고 배웠는데, 대표적인 지표들에 대해서 살펴보자!
가격 상승과 하락의 강도를 기반으로 현재 자산이 과매수(overbought)인지 과매도(oversold)인지 판단하는 모멘텀 지표로, 최근 상승폭과 하락폭의 비율을 이용해 계산되며 일반적으로 값이 높을수록 상승 압력이 강하고, 낮을수록 하락 압력이 강한 상태를 의미함.
이동평균을 중심으로 표준편차를 이용해 상단 밴드와 하단 밴드를 설정하는 변동성 기반 지표로, 가격이 밴드 상단에 가까울수록 과열 상태, 하단에 가까울수록 과매도 상태로 해석하며 변동성이 커질수록 밴드 폭이 넓어지는 특징을 가짐.
단기 이동평균과 장기 이동평균 간의 차이를 활용하여 추세의 방향성과 강도를 판단하는 지표로, 두 이동평균 간의 수렴과 확산을 통해 상승 추세와 하락 추세 전환 시점을 포착하는 데 사용됨.
종가가 당일 가격 범위(고가–저가) 내에서 어느 위치에 있는지를 나타내는 지표로, 장 마감 시점의 시장 심리를 해석하는 데 활용됨.
수식
CLV = ((Close - Low) - (High - Close)) / (High - Low)
범위: [-1, 1]
해석
CLV가 1에 가까울수록 종가가 고가 근처에 위치하여 매수 압력이 강한 상태를 의미하며, -1에 가까울수록 종가가 저가 근처에 위치하여 매도 압력이 강한 상태를 의미함.
활용
CLV가 낮을 때(≈ -1)는 반등 가능성을 반영하여 매수(Long), CLV가 높을 때(≈ 1)는 하락 가능성을 반영하여 매도(Short) 포지션을 취하는 평균회귀(reversion) 전략에 적합함. 거래량과 결합할 경우(CL V × volume 등) 자금 흐름까지 반영한 더 강한 신호를 만들 수 있음.
🤷🏻♂️ 오늘은 두 가지 전략을 소개하고 각각 구체적인 예시까지 살펴보았는데, 첫번째 전략은 💬에 대한 💬전략이고, 두번째 전략은 💬에 대한 💬전략입니다. 빈 칸에 들어갈 키워드는 각각 무엇일까요?
Hint: 4-1), 4-2) 섹션의 컨셉 내용 다시 읽어보세요