승률이 높아도 계좌가 녹는 이유 — 손익비와 기대값

작성자

카테고리:

결론부터 말씀드리면, 자동매매에서 계좌의 생사를 가르는 것은 승률이 아니라 기대값입니다. 열 번 중 일곱 번을 맞혀도, 이길 때 조금 벌고 질 때 크게 잃으면 계좌는 천천히 녹습니다. 반대로 승률이 낮아도 한 번의 이익이 여러 번의 손실을 덮으면 살아남습니다.

솔직히 고백하면, 저는 처음에 ‘손익비’라는 말이 무슨 뜻인지도 몰랐습니다. 코딩은 물론이고 이런 트레이딩 용어조차 낯선 채로 봇을 만들기 시작했으니까요. 그래서 모르는 단어가 나올 때마다 트레이딩 용어 사전을 하나씩 찾아봤습니다. 오늘 글은 그렇게 하나씩 배운 개념을, 제 첫 봇이 실제로 무너진 자리에 겹쳐서 풀어보는 이야기입니다.

승률보다 먼저 봐야 할 숫자

제가 용어 사전에서 찾은 기대값(expectancy)의 정의는 이렇습니다. ‘과거 성적을 근거로, 매매 한 번당 평균적으로 얼마를 벌거나 잃을지 추정하는 통계값’입니다(트레이딩 교육 사이트 Babypips의 용어사전 정의). 말은 어렵지만 뼈대는 단순합니다. 계산식도 그 사전에 그대로 나와 있었습니다.

기대값 = (승률 × 평균 이익) − (패률 × 평균 손실)

이길 확률에 이길 때 버는 돈을 곱하고, 거기서 질 확률에 질 때 잃는 돈을 곱한 값을 뺍니다. 이 결과가 양(+)이면 계좌가 살고, 음(−)이면 아무리 오래 돌려도 결국 녹습니다. 같은 사전은 승률(win rate)을 ‘전체 매매 중 이긴 매매의 비율’로, 손익비(payoff ratio)를 ‘이긴 매매의 평균 이익을 진 매매의 평균 손실과 비교한 값’으로 정의합니다. 즉 ‘평균 이익 ÷ 평균 손실’이 손익비입니다.

이 세 단어를 나란히 놓고 나서야 저는 제 실수가 보였습니다. 승률과 손익비는 따로 노는 숫자가 아니라 한 몸이고, 계좌의 운명은 이 둘의 조합이 정합니다. 초보가 승률만 보다가 무너지는 이유가 여기 있습니다. 승률은 이야기의 절반일 뿐이고, 나머지 절반인 손익비를 보지 않으면 “맞히고도 잃는” 함정에 그대로 빠집니다. 저는 그 절반만 보고 있었습니다.

내 첫 봇의 손익비는 0.07이었다

제 첫 봇의 손익비는 0.07까지 떨어졌습니다. 이길 때 버는 돈이 질 때 잃는 돈의 14분의 1 수준이었다는 뜻입니다. 이 초라한 숫자는 하늘에서 떨어진 게 아니라, 제 세 가지 습관이 겹쳐 만든 결과였습니다.

가장 큰 문제는 익절은 짧고 손절은 길었다는 것입니다. 조금 오르면 겁이 나 팔아버리고, 떨어지면 “곧 오르겠지” 하며 버텼습니다. 이익은 잘라내고 손실은 키우는, 손익비를 무너뜨리는 정확히 반대의 행동을 매번 반복한 셈입니다. 두 번째는 손절이 감에 의존했다는 점입니다. 어디서 자를지 규칙이 없으니 손절선이 그날의 기분을 따라 계속 밀렸습니다. 규칙 없는 손절은 사실상 손절이 아니었습니다. 세 번째는 손절 직후의 충동적 재진입이었습니다. “본전은 찾아야지” 하는 조급함에 급하게 다시 들어갔고, 한 번의 손실이 연쇄 손실로 번졌습니다.

한 가지는 분명히 해 두고 싶습니다. 이 이야기의 핵심은 ‘얼마를 잃었나’라는 금액이 아니라 ‘왜 잃는 구조였나’입니다. 실계좌에 넣은 투입 원금과 확정된 손실액은 전혀 다른 개념이고, 투입한 원금을 잃은 돈인 것처럼 말하는 건 사실이 아닙니다. 저는 손익비라는 구조를 이야기하는 것이지, 특정 손실 금액을 무슨 성과처럼 내세우려는 게 아닙니다. 숫자를 정직하게 다루는 것부터가 이 일의 시작이라고 믿습니다.

같은 승률도, 손익비가 뒤집으면 정반대가 된다

말로만 들으면 잘 와닿지 않아서, 원리를 보여주는 예시를 하나 그려보겠습니다. 아래 숫자는 개념을 설명하기 위한 가정이지, 제 봇의 실제 임계값이나 진입·청산 수치가 아닙니다.

승률 손익비 100회 매매의 기대 결과 판정
70% 0.07 벌이 70×0.07 = 4.9 vs 잃음 30×1 = 30 → −25.1 계좌 녹음
50% 0.9 45 vs 50 → −5 서서히 감소
40% 2.0 80 vs 60 → +20 생존·성장
30% 3.5 105 vs 70 → +35 생존·성장

맨 윗줄을 보십시오. 열 번 중 일곱 번을 맞혀도 계좌는 25만큼 줄어듭니다. 그게 손익비 0.07의 세계이고, 제 첫 봇이 서 있던 자리입니다. 반대로 맨 아랫줄은 열 번 중 세 번밖에 못 맞혀도 계좌가 자랍니다. 승률이 절반도 안 되는데 말입니다. 같은 승률이라도 손익비가 뒤집히면 결과가 정반대가 된다는 것, 이 한 장의 표가 제가 넉 달간 계좌를 녹이며 배운 전부였습니다.

승률과 손익비 조합에 따른 100회 매매 기대 결과 막대그래프 (개념 예시): 승률 70%·손익비 0.07은 계좌 손실, 승률 30%·손익비 3.5는 수익.

그래서 무엇을 바꿔야 했나

무너진 자리를 하나씩 뒤집는 것이 두 번째 봇의 출발점이었습니다. 조금 오르면 팔아버리던 익절은, 규칙으로 정한 목표까지 이익을 달리게 두는 쪽으로 바꿨습니다. 감에 밀리던 손절은 변동성을 기준으로 손절선을 미리 못 박아, 그날의 기분이 끼어들 틈을 없앴습니다. 충동적으로 다시 들어가던 재진입은 조건을 규칙으로 정하고, 그 조건이 아니면 그냥 쉬기로 했습니다. 그리고 승률만 보던 눈을, 손익비와 기대값, 그리고 최대낙폭(MDD)을 함께 보는 쪽으로 넓혔습니다. 최대낙폭은 자산 가치가 고점에서 저점까지 가장 크게 떨어진 폭을 뜻하는데(재무 교육기관 CFI의 정의), 봇이 최악의 구간에서 얼마나 깊이 파였는지를 보여주는 위험 지표입니다.

항목 첫 봇 (무너진 구조) 바꾼 원칙
익절조금 오르면 즉시 매도정해둔 목표까지 이익을 달리게 둔다
손절감에 의존, 계속 밀림변동성 기준으로 손절선을 미리 명문화
재진입손절 직후 충동 재진입조건을 규칙화하고, 아니면 쉰다
관리 지표승률만 봄손익비·기대값·MDD를 함께 본다

돌이켜보면 이 표는 전략을 새로 짠 목록이 아니라, 내가 넘어진 자리의 목록이었습니다. 좋은 원칙은 대개 좋은 실패에서 나옵니다.

기대값을 지키는 마지막 장치, 포지션 사이징

기대값이 양(+)이어도 안심하긴 이릅니다. 한 번에 너무 크게 걸면, 운 나쁜 연속 손실 몇 번에 계좌가 먼저 죽어버리기 때문입니다. 기대값이 실현될 만큼 오래 버티려면, 한 종목에 자산의 얼마를 거는가를 정하는 포지션 사이징이 필요합니다. 한 번의 매매에 계좌의 얼마를 걸지를 일정 비율 안으로 제한하라는 건, 제가 지어낸 규칙이 아니라 트레이딩에서 오래 통용된 리스크 관리 원칙이었습니다(이 개념도 Babypips의 리스크 관리 자료에서 배웠습니다). 원칙은 세 가지입니다. 한 번의 손실이 계좌 전체에 주는 충격을 미리 정한 한도 안으로 묶고, 연속으로 여러 번 져도 버티도록 회당 비중은 작게 두며, 이 규칙을 봇에 숫자로 박아 감정이 개입할 틈을 없애는 것입니다.

여기서 정직하게 선을 하나 긋겠습니다. 제가 실제로 쓰는 회당 리스크 비중이나 손절 폭의 구체적 수치, 피처 임계값 같은 ‘작동하는 값’은 이 글에 적지 않습니다. 그건 각자의 자산 규모와 성향, 다루는 종목군에 따라 달라져야 하는 값이고, 남의 숫자를 그대로 베끼는 순간 그 사람의 실수까지 함께 베끼게 되기 때문입니다. 제가 나눌 수 있는 건 ‘무엇을 왜 보는가’라는 구조까지이고, 그 안을 채우는 숫자는 각자의 몫입니다. 이 글도 딱 그 선까지만 안내합니다.

코딩을 몰라도 기대값은 관리할 수 있다

다행히 이 숫자들을 직접 계산할 필요는 없습니다. 봇이 남기는 알림 로그가 이미 재료이기 때문입니다. 진입·청산·손절 기록을 유형별로 세어 평균 이익과 평균 손실을 비교하면 손익비가 나오고, 이기고 진 횟수를 세면 승률이 나옵니다. 저는 이 집계를 AI에게 시킵니다. “이 로그에서 평균 이익, 평균 손실, 승률, 손익비를 유형별로 세어줘”라고만 해도, 코딩을 몰라도 내 봇의 기대값이 지금 양인지 음인지 확인할 수 있습니다. 그다음 할 일은 아주 단순합니다. 음이면 실계좌에 올리지 않는 것.

맺으며

봇을 만들던 반년을 돌아보면, 제가 진짜로 배운 건 화려한 전략이 아니라 이 담담한 산수 한 줄이었습니다. 손익비라는 말조차 몰랐던 사람이, 이제는 봇의 기대값이 양인지 음인지를 따지고 있습니다. 승률은 기분을 좋게 하지만 계좌를 지키지는 못합니다. 계좌를 지키는 건 손익비와 기대값, 그리고 그걸 무너뜨리지 않게 잡아주는 포지션 사이징입니다.

당장 오늘 할 수 있는 일은 세 가지입니다. 내 봇이나 모의 기록의 손익비와 승률을 로그에서 뽑아 기대값이 양인지부터 확인하는 것, 손절선을 감이 아니라 규칙으로 미리 못 박는 것, 그리고 회당 비중을 연속으로 여러 번 져도 버티는 크기로 낮추는 것. 어느 것 하나 대단한 기술이 아닙니다. 그런데도 이 셋이, 제가 아는 어떤 전략보다 계좌를 오래 살립니다.

그러니 승률이 높다고 너무 기뻐하지 마십시오. 그 기쁨 뒤에 손익비가 무너져 있으면, 계좌는 웃는 얼굴로 천천히 줄어듭니다. 자동매매에서 오래 살아남는 사람은 많이 맞히는 사람이 아니라, 질 때 적게 잃고 이길 때 충분히 버는 구조를 만든 사람이었습니다. 저는 그것을 첫 봇을 잃고, 모르는 단어를 하나씩 찾아가고 나서야 알았습니다.

본 글은 코딩을 모르는 개인이 AI를 도구로 자동매매 봇을 만들며 겪은 실전 기록과 원리를 정리한 것으로, 투자 자문이나 수익 보장이 아닙니다. 손익비 0.07 등은 저자의 첫 봇에서 확인된 실제 기록이며, 예시 표의 수치는 원리를 설명하기 위한 가정치입니다. 실계좌 투입 원금과 확정 손실액은 다른 개념이고, 본 글은 특정 종목을 추천하지 않습니다. 모든 매매의 책임은 본인에게 있습니다.

참고 — 이 글의 개념 정의를 확인한 자료

자주 묻는 질문

승률이 높으면 자동매매로 돈을 버나요?

꼭 그렇지는 않습니다. 승률이 높아도 손익비(이길 때 이익 ÷ 질 때 손실)가 낮으면 계좌는 줄어듭니다. 계좌의 생사를 결정하는 것은 승률이 아니라 기대값, 즉 ‘(승률 × 평균 이익) − (패률 × 평균 손실)’입니다.

손익비란 무엇인가요?

한 번 이길 때의 평균 이익을 한 번 질 때의 평균 손실로 나눈 값입니다. 예를 들어 손익비 0.07은 이길 때 버는 돈이 질 때 잃는 돈의 약 14분의 1이라는 뜻으로, 이 상태에서는 승률이 높아도 손실이 쌓입니다.

승률이 낮은데도 수익이 나는 전략이 가능한가요?

가능합니다. 승률이 30~40%라도 손익비가 2~3 이상이면 기대값이 양(+)이 되어 장기적으로 살아남고 성장할 수 있습니다. 이익을 길게 가져가고 손실을 짧게 끊는 구조가 핵심입니다.

코딩을 몰라도 내 봇의 기대값을 확인할 수 있나요?

네. 봇의 진입·청산·손절 알림 로그를 AI에게 넘겨 “평균 이익, 평균 손실, 승률, 손익비를 세어줘”라고 요청하면 됩니다. 기대값이 음(−)이면 실계좌에 올리지 않는 것이 원칙입니다.

포지션 사이징은 왜 중요한가요?

기대값이 양이어도 한 번에 너무 크게 걸면 운 나쁜 연속 손실에 계좌가 먼저 파산할 수 있습니다. 회당 리스크를 미리 정한 한도 안으로 작게 묶어야 연속 손실을 견디고 기대값을 실현할 수 있습니다.

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다