NOONOO TRADING봇에서 시작하기

베이즈 승률 업데이트 — 베타 분포로 전략 승률을 거래마다 다시 추정하기

전략을 20번 돌려 12번 이겼다면 승률은 60%라고 말하기 쉽습니다. 하지만 20건으로는 진짜 승률이 45%인지 70%인지 구분하기 어렵습니다. 베이즈 업데이트는 "진짜 승률은 이 근처일 가능성이 높다"는 믿음을 분포로 들고 있다가, 거래가 끝날 때마다 그 분포를 고쳐 나가는 방법입니다. 승패처럼 결과가 둘뿐인 경우에는 베타 분포를 쓰면 계산이 덧셈 두 번으로 끝납니다. 이 글에서는 계산법, 표본 수에 따른 차이, 연패 뒤의 변화, 사전 분포를 고르는 문제를 차례로 정리합니다. 승률이라는 숫자 자체의 한계는 승률의 의미에서 먼저 볼 수 있습니다. 본문의 승패 기록과 수수료 수치는 모두 설명용 가정입니다.

왜 "지금까지의 승률"만으로는 부족한가

승률 60%라는 숫자는 진짜 승률의 추정치 하나일 뿐입니다. 동전을 10번 던져 앞면이 6번 나와도 그 동전이 60% 확률로 앞면이 나온다고 결론 내리지 않습니다. 매매 기록도 같습니다. 표본이 적을수록 우연히 좋게 나온 기록과 실제로 좋은 전략이 섞여 보입니다. 표본 수가 얼마나 필요한지는 거래 표본 수 글에서 다뤘고, 이 글은 그 불확실성을 숫자 하나 대신 분포로 들고 다니는 방법을 다룹니다.

베이즈 방식은 세 단계로 움직입니다. ① 거래 전에 갖고 있던 믿음(사전 분포)을 정하고 ② 거래 결과(승·패)를 관찰한 뒤 ③ 둘을 합쳐 새 믿음(사후 분포)을 만듭니다. 다음 거래에서는 방금 만든 사후 분포가 다시 사전 분포가 됩니다.

계산식 — 베타 분포는 덧셈으로 갱신된다

승률처럼 0과 1 사이의 값에 대한 믿음은 베타 분포 Beta(a, b)로 표현합니다. a는 "이긴 횟수처럼 취급하는 값", b는 "진 횟수처럼 취급하는 값"으로 생각하면 됩니다.

정의
· 사전 분포: Beta(a, b)
· 관찰: W승, L패
· 사후 분포: Beta(a + W, b + L)
· 사후 평균(추정 승률) = (a + W) ÷ (a + b + W + L)

사전 분포 예
· Beta(1, 1) → 0~100% 모든 승률을 똑같이 가능하다고 봄
· Beta(5, 5) → 평균 50%, "50% 근처에서 10건쯤 본 것"만큼의 믿음
· Beta(20, 20) → 평균 50%, 40건 분량의 강한 믿음

새 거래가 이기면 a에 1을 더하고, 지면 b에 1을 더하는 것이 전부입니다. 기록을 전부 다시 계산할 필요가 없어서 자동매매 시스템의 상태값으로 두기에도 간단합니다.

예시 1 — 20건 12승 8패

사전 분포를 Beta(5, 5)로 두고, 전략이 20건에서 12승 8패를 기록했다고 가정합니다.

갱신
· 사전 Beta(5, 5) + 12승 8패 → 사후 Beta(17, 13)
· 사후 평균 = 17 ÷ 30 = 56.7% (단순 승률 60%보다 50% 쪽으로 당겨짐)

불확실성
· 90% 구간 = 41.7% ~ 71.1%
· 진짜 승률이 41.7%보다 낮을 확률 5%, 71.1%보다 높을 확률 5%

추정치가 60%에서 56.7%로 내려간 것을 "축소(shrinkage)"라고 합니다. 적은 표본에서 극단적으로 나온 값을 사전 분포 쪽으로 끌어당겨, 우연히 좋게 나온 기록에 과하게 반응하지 않게 합니다. 이 효과는 표본이 커질수록 약해집니다.

예시 2 — 손익분기 승률을 넘을 확률

평균 승률보다 실전에서 더 쓸모 있는 질문은 "이 전략의 진짜 승률이 손익분기점을 넘을 확률이 얼마인가"입니다. 손익분기 승률은 손익비와 비용으로 정해집니다.

손익분기 승률 (가정)
· 익절 +1.00%, 손절 −1.00%, 거래당 왕복 비용 0.06%
· 이기면 +0.94%, 지면 −1.06%
· 본전 조건: p × 0.94 = (1 − p) × 1.06 → p = 1.06 ÷ 2.00 = 53%

예시 1의 사후 분포 Beta(17, 13)에서
· P(진짜 승률 > 53%) ≈ 66%
· 즉 3번 중 1번꼴로 "사실은 손해 보는 전략"일 가능성이 남아 있음

단순 승률 60%만 보면 손익분기 53%를 7%p나 넘는 것처럼 보이지만, 분포로 보면 아직 확신하기 어려운 상태입니다. 비용이 손익분기점을 얼마나 밀어 올리는지는 수수료 포함 손익분기 승률에서 자세히 계산할 수 있습니다.

예시 3 — 같은 60%, 다른 표본 수

승률이 똑같이 60%여도 거래 수에 따라 확신의 정도가 크게 달라집니다. 사전 분포는 모두 Beta(5, 5)입니다.

10건 (6승 4패)
· 사후 Beta(11, 9), 평균 55.0%
· 90% 구간 36.8% ~ 72.6%
· P(승률 > 53%) ≈ 58%

20건 (12승 8패)
· 사후 Beta(17, 13), 평균 56.7%
· 90% 구간 41.7% ~ 71.1%
· P(승률 > 53%) ≈ 66%

100건 (60승 40패)
· 사후 Beta(65, 45), 평균 59.1%
· 90% 구간 51.3% ~ 66.7%
· P(승률 > 53%) ≈ 90%

10건에서는 동전 던지기와 크게 다르지 않은 58%이고, 100건이 되어야 90%까지 올라갑니다. 구간의 폭도 35.8%p에서 15.4%p로 좁아집니다. 표본이 적은 상태에서 "60% 전략"이라고 부르는 것이 왜 위험한지가 숫자로 드러납니다.

예시 4 — 연패가 들어온 뒤

예시 1의 전략이 이어서 10건 중 3승 7패를 기록했다고 가정합니다.

갱신
· 이전 Beta(17, 13) + 3승 7패 → Beta(20, 20)
· 사후 평균 = 20 ÷ 40 = 50.0%
· 90% 구간 = 37.1% ~ 62.9%
· P(승률 > 53%) ≈ 35% (66% → 35%)

단순 승률로 보면
· 30건 15승 15패 = 50%

최근 10건만 보면 30% 승률이라 전략이 망가진 것처럼 느껴집니다. 하지만 전체 정보를 합친 추정치는 50%이고, 손익분기점을 넘을 확률이 35% 남아 있습니다. 반대로 66%였던 확신이 절반 가까이 깎였다는 점도 같이 읽어야 합니다. 최근 결과에 과하게 반응하는 문제는 최근성 편향, 정상적인 전략에서도 연패가 얼마나 자주 나오는지는 연패 확률 글에서 계산할 수 있습니다.

예시 5 — 사전 분포를 어떻게 고르나

같은 12승 8패라도 사전 분포에 따라 결과가 달라집니다.

12승 8패 관찰 후 사후 평균
· Beta(1, 1) → Beta(13, 9) → 59.1%
· Beta(5, 5) → Beta(17, 13) → 56.7%
· Beta(20, 20) → Beta(32, 28) → 53.3%

읽는 법
· 사전 분포가 강할수록(a + b가 클수록) 새 기록이 추정치를 덜 움직임
· a + b는 "사전 믿음이 거래 몇 건 분량인가"와 같음

코인 매매 전략 대부분은 비용을 빼면 승률이 50% 근처에 몰린다는 것을 전제로 하면, 평균 50%에 적당한 무게를 둔 사전 분포가 무난합니다. 근거 없이 Beta(1, 1)을 쓰면 적은 표본의 행운이 그대로 추정치에 반영되고, 너무 강한 사전 분포를 쓰면 실제로 좋은 전략을 오래 알아보지 못합니다. 중요한 것은 사전 분포를 결과를 보기 전에 정해 두는 것입니다. 결과를 본 뒤 원하는 결론이 나오는 사전 분포를 고르면 과적합과 같은 문제가 됩니다.

시장이 바뀌는 경우 — 오래된 기록의 무게 줄이기

베타 분포 갱신은 모든 거래를 같은 무게로 셉니다. 시장 성격이 바뀌어 1년 전 거래가 지금 전략의 성능을 덜 대변한다면, 갱신할 때마다 기존 a, b에 1보다 작은 값(예: 0.95)을 곱한 뒤 새 결과를 더하는 방법을 씁니다.

망각 계수 λ = 0.95
· 갱신: a ← λ × a + (이기면 1), b ← λ × b + (지면 1)
· 오래 지나면 a + b는 약 1 ÷ (1 − 0.95) = 20건 분량에서 멈춤
· → 사실상 "최근 20건 정도를 중심으로 본 승률"이 됨

λ를 작게 잡을수록 변화에 빨리 반응하지만 표본이 줄어 추정이 흔들립니다. 예시 3에서 본 것처럼 20건 분량으로는 구간이 넓으므로, 망각 계수를 쓰면 확신의 상한이 낮아진다는 점을 감수해야 합니다.

한계

이 계산은 거래 결과가 서로 독립이고 진짜 승률이 일정하다는 가정 위에 있습니다. 같은 급락에 여러 종목이 동시에 손절되는 식으로 결과가 묶여 있으면 실제 불확실성은 더 큽니다. 이럴 때는 블록 부트스트랩 신뢰구간처럼 묶음 단위로 재표본하는 방법이 보완이 됩니다. 또 승률은 손익의 절반만 설명합니다. 승률이 올라가도 이길 때 버는 폭이 줄면 결과는 나빠질 수 있으므로, 손익비와 비용을 같이 봐야 합니다. 과거 기록으로 추정한 값은 워크포워드 분석처럼 고르지 않은 구간에서 다시 확인해야 의미가 있습니다.

점검 순서

① 사전 분포를 먼저 정했는지
· 결과를 보기 전에 a, b를 고정

② 평균 대신 확률로 보는지
· P(승률 > 손익분기 승률)을 계산

③ 손익분기 승률에 비용을 넣었는지
· 손익비 + 수수료 + 미끄러짐

④ 연패를 전체 기록과 합쳐 읽는지
· 최근 구간만 떼어 판단하지 않기

⑤ 결과가 독립인지
· 동시 진입·같은 원인 손절이 많으면 불확실성을 더 크게 잡기

정리

베이즈 승률 업데이트는 승률을 Beta(a, b) 분포로 들고 있다가 이기면 a, 지면 b에 1을 더하는 방법입니다. 사전 Beta(5, 5)에 12승 8패를 더하면 평균 56.7%, 90% 구간 41.7~71.1%가 되고, 손익분기 승률 53%를 넘을 확률은 66%입니다. 같은 60%라도 10건이면 58%, 100건이면 90%로 확신이 달라집니다. 이어진 3승 7패는 추정치를 50%로, 확률을 35%로 낮췄습니다. 사전 분포는 결과를 보기 전에 정해야 하고, 결과가 묶여 있거나 시장이 바뀌면 불확실성을 더 크게 잡아야 합니다.

주의

본문의 승패 기록, 손익비, 수수료 수치는 모두 계산 구조를 설명하기 위한 가정 예시이며 실제 측정값이나 미래 수익을 뜻하지 않습니다. 실제 값은 전략·종목·기간·거래소에 따라 다르므로 직접 확인해야 합니다. 이 글은 교육 정보이며 특정 자산·전략의 매수·매도 권유가 아닙니다. 코인과 선물·레버리지 거래는 원금 손실 위험이 있고, 투자 판단과 그 결과는 본인 책임입니다.

NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.

봇에서 시작하기

📈 OKX 신규 가입 시 거래 수수료 할인

OKX 수수료 할인 가입 →