매수 상한이라는 필터
매수 후보를 고를 때 가격 필터를 하나 둔다. 이름은 매수 상한이다. 이 가격보다 비싸게 사면, 정해 둔 익절 목표가 오늘 거래된 적 없는 가격이 되거나 손절선이 이미 지나온 구간에 놓인다. 재료가 좋든 나쁘든 진입 위치만으로 불리해지는 자리를 미리 거르는 장치다.
식은 이렇다.
매수 상한 = min( 당일 고가 ÷ (1 + 익절폭) , 당일 저가 ÷ (1 − 손절폭) )
앞 항은 "익절 목표가 오늘 고가 안에 들어오게", 뒤 항은 "손절선이 오늘 저가 아래에 놓이게"라는 요구다. 그리고 현재가가 상한보다 얼마나 아래에 있는지를 여유%라고 불렀다. 양수면 살 수 있는 자리, 클수록 안전하다고 읽었다.
더 빠졌더니 여유가 늘었다
어느 날 한 종목의 여유%가 +2.09였다. 잠시 뒤 주가가 13,860원에서 13,740원으로 더 빠졌다. 여유%는 +3.04로 늘었다.
가격이 내려가면 상한까지의 거리가 벌어지니 숫자 자체는 맞다. 이상한 건 해석이다. 같은 종목이 더 약해졌는데 필터는 더 안전해졌다고 말하고 있었다.
여유%는 낙폭의 다른 이름이었다
대부분의 시간에 상한을 정하는 것은 앞 항, 고가 쪽이다. 그러면 여유%가 양수라는 조건은 하나로 줄어든다. 현재가가 당일 고가보다 일정 폭 이상 아래에 있을 것. 그 폭은 익절폭으로 정해지는 상수다.
정리하면 거의 항등식이 나온다.
여유% ≈ (당일 고가 대비 낙폭) − (상수)
실제 값으로 맞춰 봤다.
| 종목 | 고가 대비 낙폭 | 낙폭에서 상수를 뺀 값 | 실측 여유% |
|---|---|---|---|
| A | −3.31% | +0.40 | +0.37 |
| B | −4.24% | +1.33 | +1.31 |
| C | −5.39% | +2.48 | +2.09 |
오차는 호가 단위로 내림한 몫과, 가끔 뒤 항이 상한을 정하는 경우에서 온다. 여유%는 매력도 지표가 아니었다. 고점에서 얼마나 밀렸는지를 다시 적은 것이었다. 정렬해서 위에서부터 고르면 그날 가장 많이 빠진 종목부터 사게 된다.
재료가 있는 종목은 정의상 통과할 수 없었다
이 필터는 재료와 함께 쓴다. 뉴스나 공시가 붙은 종목 중에서 여유%가 양수인 것을 고르는 식이다.
그런데 재료가 붙어 오르는 종목은 고가 근처에 있다. 필터는 "고가에서 일정 폭 이상 밀렸을 것"을 요구한다. 두 조건은 함께 만족하기 어려운 정도가 아니라 서로의 여집합에 가깝다. 그날 판단을 네 번 돌려 세 번이 "살 것 없음"으로 끝났다. 판단이 실패한 게 아니라 필터가 정의대로 작동한 결과였다.
지표를 만들 때 "이 값이 살 자리와 아닌 자리를 가르는가"는 물었다. "이 값이 실제로 무엇의 다른 이름인가"는 묻지 않았다.
뒤 항이 정하는 날은 더 이상했다
열사흘 뒤, 재료가 확실한 종목이 하나 나왔다. 오전에 종목명이 적힌 기사가 다섯 건 나왔고, 재료 뒤에 고가가 재료 전 고가(20,150원)를 넘어 22,050원까지 갔다. 거래도 따라붙었다. 그런데 여유%가 음수라 걸렸다.
이번에 상한을 정한 것은 고가 쪽이 아니라 저가 쪽이었다. 장 시작 첫 분에 찍힌 저가 18,950원에서 나온 상한은 19,840원, 고가 쪽 상한은 21,408원이었다. 둘 중 작은 쪽이 상한이 된다.
여기서 성질 하나가 드러난다. 당일 고가는 하루 동안 올라가기만 하고, 당일 저가는 내려가기만 한다. 상한이 저가 쪽에 걸려 있으면 상한은 그날 올라갈 방법이 없다. 저가를 새로 내리면 상한도 같이 내려간다.
그러니 이 종목이 그날 필터를 통과하는 자리는 반드시 19,840원 이하다. 재료 전 고가 20,150원보다 −1.54% 아래다. 거기까지 내려왔다면 그날 재료에 대한 반응은 이미 부정된 것이다.
오전에 산술로 닫았고, 오후에 그 값이 왔다
오전 11시 21분, 이 논리로 그 종목을 그날 다시 보지 않기로 했다. 값을 기다린 게 아니라 산술로 닫았다.
오후 2시 20분, 그 종목의 여유%가 +0.51로 양전했다. 주가가 19,840원 아래로 내려온 것이다. 그 사이 등락률은 +5.14%에서 +3.51%로, 당일 범위 안 위치는 41.9%에서 25.5%로 내려가 있었다. 조건 충족과 근거 소멸이 같은 사건이었다. 오전의 예측이 그대로 맞았다.
💡 조건이 단조로 움직이는 값에 묶여 있으면, "조건이 충족되는 날"은 그 조건이 지키려던 것이 무너진 날일 수 있다. 그런 조건은 값을 지켜보는 대신 산술로 미리 닫는 편이 정확하다.
덤으로 하나 더 있었다. 그날 오전 상한 아래에서 거래된 시간은 12분뿐이었다. 판단은 정해진 간격으로만 돌았고, 그 간격은 12분보다 길었다. 살 수 있던 창은 판단이 닿기 전에 열렸다 닫혔다. 이건 판단력이 아니라 표본추출의 문제다.
남은 것
지표를 만들면 그 값을 다른 변수로 다시 적어 본다. 항등식으로 줄어든다면 그 지표는 새 정보가 아니라 이미 있는 정보의 다른 이름이다. 이름이 "여유"라고 해서 안전을 재는 것은 아니다.
두 조건을 AND로 묶기 전에 서로의 여집합인지 확인한다. 재료가 있는 종목은 고점 근처에 있고, 고점에서 밀린 종목을 고르는 필터는 그 종목을 정의상 지운다. "통과하는 게 없다"는 결과는 시장이 아니라 조건의 모양 때문일 수 있다.
min과 max로 만든 경계는 어느 항이 걸려 있는지에 따라 성질이 바뀐다. 고가 쪽에 걸리면 상한이 오르고, 저가 쪽에 걸리면 상한은 내리기만 한다. 같은 식이 날마다 다른 지표가 된다.