OptiNod アカデミー

거래일지를 데이터셋으로 — 내 편향은 체결 기록에 남는다

일찍 익절한다는 느낌은 증거가 되지 못합니다. 모든 체결에 셋업과 1R을 태깅하면 편향은 셋업별 기댓값과 실현 비율로 측정됩니다.

> 일찍 익절한다는 느낌, 손절을 자주 어긴다는 자책은 표본이 몇 건뿐인 *기억*입니다. 같은 판단을 모든 체결마다 한 열에 적어 두면, 편향은 셋업별 기댓값과 실현 비율로 계산됩니다.

거래일지는 모든 체결의 기록입니다. 이 기록을 데이터셋으로 다루면, 한 거래가 한 행이 되고 그 거래의 속성이 각 열이 됩니다. 진입 시각, 청산 시각, 셋업 이름, 진입 근거, 계획한 손절폭(1R), 실현한 손익(R)이 열입니다. 한 거래를 이렇게 여러 열로 적어 두면, 수백 건이 쌓였을 때 어떤 질문이든 열을 골라 집계로 답할 수 있습니다.

대다수의 일지는 반성문으로 쓰이고, "오늘은 조급했다, 다음엔 참자" 같은 문장이 쌓입니다. 이런 기록은 다시 읽을 때 위안을 주지만, 집계할 수 없습니다. 조급함이 실제로 손실을 키웠는지, 어떤 셋업에서 기댓값이 음수인지는 문장에서 계산되지 않습니다. 반성문은 표본이 한 건인 감상이고, 감상으로는 편향을 측정할 수 없습니다.

"나는 이익을 너무 일찍 실현한다"는 느낌은 분포를 두고 하는 주장입니다. 이런 주장은 분포로만 확인할 수 있습니다. 한 셋업의 기댓값은 한 줄로 계산됩니다. 승률에 평균이익 R을 곱한 값에서, 패배 확률(1에서 승률을 뺀 값)에 평균손실 R을 곱한 값을 빼면 됩니다. 거래를 셋업별로 나눠 이 값을 각각 계산하면, 막연한 느낌은 셋업마다 붙는 숫자 하나가 됩니다. 그 숫자가 음수인 셋업이 계좌를 줄이는 원인입니다.

판단은 최근 몇 건에 좌우됩니다

사람은 모든 거래를 같은 비중으로 기억하지 않습니다. 최근에 끝난 거래와 크게 이기거나 크게 진 거래는 실제보다 크게 남고, 평범하게 끝난 다수는 흐릿해집니다. 그래서 "요즘 잘 안 된다" 또는 "이 셋업은 잘 맞는다"는 느낌은 인상 깊었던 몇 건을 전체인 것처럼 부풀린 것입니다. 실제 분포와는 자주 다릅니다.

거래일지를 데이터셋으로 다루면 모든 체결이 같은 한 행으로 들어갑니다. 크게 이긴 거래도, 평범하게 끝난 거래도 각각 한 행입니다. 집계는 이 행 전체를 쓰므로, 요약이 최근 몇 건에 끌려가지 않습니다. 승률은 60%인데 계좌는 줄어드는 상황처럼, 느낌과 기댓값이 맞지 않는 지점은 전체 행을 집계할 때 숫자로 확인됩니다.

체감 평균과 데이터 평균 차이

열이 없으면 편향은 계산되지 않습니다

편향을 측정하려면 원시 거래 목록에 열을 직접 더해야 합니다. 거래소가 내려 주는 목록은 진입가, 청산가, 손익 정도입니다. 이 세 열만으로는 처분효과도 추격 진입도 계산되지 않습니다. 편향마다 필요한 열이 정해져 있고, 그 열을 진입·청산 시점에 직접 적어야 합니다.

원시 거래 기록에서 지표로 변환
  • [ ] 셋업 태그: 이 거래가 어떤 진입 규칙에서 나왔는지 한 단어로 적습니다(돌파·눌림목·역추세 등). 셋업별 집계의 기준 열입니다.
  • [ ] 계획 1R: 진입 시점에 정한 손절폭을 R의 기준으로 적습니다. 이후 모든 손익은 이 1R로 나눠 R 단위로 기록합니다.
  • [ ] 실현 R: 청산 손익을 1R로 나눈 값입니다. 승패와 크기를 한 숫자로 담습니다.
  • [ ] 보유시간: 진입과 청산 시각의 차입니다. 승자·패자로 나눠 평균을 내면 처분효과가 시간으로 계산됩니다.
  • [ ] 진입 슬리피지: 신호가 난 봉의 종가와 실제 진입가의 거리를 R로 적습니다. 추격 진입의 크기가 여기서 나옵니다.
  • [ ] 손절 준수: 계획한 손절에서 청산했는지, 미뤘는지를 예·아니오로 적습니다. 위반율이 앵커링과 물타기의 지표입니다.
  • [ ] 직전 결과·감정 태그: 직전 거래의 승패와 진입 순간의 상태(조급·확신 과다 등)를 범주로 적습니다. 문장으로 적지 않습니다.

이 열들은 진입과 청산 순간에만 정확히 적을 수 있습니다. 며칠 지나 기억으로 채우면 그 숫자 자체에 편향이 끼어 있습니다.

열을 교차하면 편향별 지표가 나옵니다

열이 갖춰지면 편향은 열을 교차한 집계로 계산됩니다. 각 편향마다 고유한 열 조합이 있습니다.

실현 R의 부호와 미청산 포지션 수를 쓰면 처분효과의 PGR/PLR이 나옵니다. 이익을 실현한 비율이 손실을 실현한 비율보다 높으면 출구가 비대칭입니다. 보유시간 열을 승자·패자로 나누면 같은 비대칭이 시간으로 다시 확인됩니다.

진입 슬리피지 열의 평균은 신호와 집행 사이의 거리를 R로 잰 값입니다. 이 값이 클수록 신호 시점에서 늦게 들어갔다는 뜻이고, 늦은 만큼 목표까지 거리가 줄어 손익비가 낮아집니다.

손절 준수 열의 위반율은 손실을 계획보다 키운 빈도입니다. 위반한 거래의 평균 실현 R을 준수한 거래와 비교하면, 손절을 미루는 습관이 평균손실을 몇 배로 늘렸는지 계산됩니다.

직전 결과 열을 쓰면 손실 직후 재진입의 기댓값이 나옵니다. 손실 거래 바로 뒤 N봉 안에 들어간 거래만 골라 기댓값을 내고, 전체 기댓값과 비교합니다. 이 값이 더 낮으면 복수매매 때문에 계좌가 조금씩 줄어들고 있다는 뜻입니다.

지표 하나하나는 이미 앞선 편들에서 정의했습니다. 이 편이 더하는 것은 그 지표들이 모두 같은 데이터에서 나온다는 사실입니다. 처분효과의 PGR/PLR도, 추격의 진입 슬리피지도, 복수매매의 손실 직후 기댓값도 같은 거래 목록의 열을 다르게 묶은 결과입니다. 열을 한 번 갖춰 두면 여러 편향을 한 데이터셋에서 계산할 수 있습니다.

셋업별 기댓값이 폐기 대상을 정합니다

가장 직접적인 집계는 셋업별 기댓값입니다. 셋업 태그로 행을 묶고, 각 묶음에서 승률·평균이익 R·평균손실 R을 계산해 기댓값을 냅니다. 예를 들어 돌파 셋업 50건의 승률이 45%, 평균이익이 2.0R, 평균손실이 1.0R이면, 승률 45%에 평균이익 2.0R을 곱한 값에서 패배 확률 55%에 평균손실 1.0R을 곱한 값을 뺀 0.35R이 기댓값입니다. 같은 계좌의 역추세 셋업 30건은 승률이 55%, 평균이익이 0.8R, 평균손실이 1.3R인데, 승률 55%에 평균이익 0.8R을 곱한 값에서 패배 확률 45%에 평균손실 1.3R을 곱한 값을 빼면 기댓값은 −0.145R이 됩니다.

전체 기댓값 하나로 보면 두 셋업이 섞여 양수처럼 보일 수 있습니다. 셋업별로 나누면 역추세 셋업이 계좌를 줄이는 원인이라는 것이 숫자로 확인됩니다. 폐기 후보는 승률이 낮은 셋업이 아닙니다. 기댓값이 음수인 셋업입니다. 위 예에서 역추세 셋업은 승률이 10%포인트 더 높은데도 기댓값이 음수입니다.

다만 표본이 적은 셋업의 음수 기댓값은 폐기의 근거가 되기 어렵습니다. 8건에서 나온 −0.2R은 우연의 범위 안일 수 있습니다. 표본이 충분히 쌓인 셋업만 폐기하고, 표본이 적으면 태깅을 이어 가며 값이 안정될 때까지 판단을 미룹니다.

셋업별 유지와 폐기 판단

태깅과 폐기는 반복하는 작업입니다

거래일지를 데이터셋으로 쓰는 작업은 한 번의 정리로 끝나지 않습니다. 매주 새로 쌓인 행을 더해 셋업별 기댓값과 편향 지표를 다시 계산하고, 음수 셋업은 폐기하거나 진입 조건을 좁히고, 출구 지표가 비대칭이면 손절·목표 규칙을 조정합니다. 조정한 뒤에는 그 변경이 다음 표본에서 기댓값을 바꿨는지 다시 집계합니다.

이 집계는 손으로 할 수도 있지만, 거래 목록을 CSV로 내려 CSV 분석에 올리면 승률·손익비·기댓값·낙폭 같은 지표가 한 번에 계산됩니다. 셋업 열을 채워 두면 같은 지표를 셋업별로 나눠 볼 수 있습니다. 도구가 하는 일은 집계이고, 태깅은 사람이 진입·청산 순간에 해야 합니다. 열이 비어 있으면 어떤 도구도 편향을 계산하지 못합니다.

이 반복 작업의 목적은 승률을 올리는 데 있지 않습니다. 음수 기댓값 셋업을 매매 목록에서 줄이고 양수 셋업의 비중을 늘려, 전체 기댓값을 조금씩 양수 쪽으로 끌어올리는 것입니다. 한 주의 표본은 작아 값이 흔들리지만, 같은 절차를 반복하면 어떤 셋업이 계좌를 줄이는지가 몇 주에 걸쳐 안정된 숫자로 확인됩니다.

두 가지 함정

*감정 열을 반성문으로 채우는 습관.* 감정 열에 "조급했다, 반성한다" 같은 문장을 적으면 그 열은 집계되지 않습니다. 감정은 몇 개의 범주(조급·확신 과다·공포 등)로 정해 태그로 적어야, 실현 R과 교차해 "확신이 과했던 거래의 기댓값" 같은 숫자가 계산됩니다. 문장은 다시 읽는 용도이고, 태그는 집계하는 용도입니다.

*표본이 적은 셋업을 성급히 폐기하는 판단.* 몇 건의 손실만 보고 셋업을 버리면, 그 판단은 최근성 편향을 규칙으로 포장한 것입니다. 양의 기댓값 셋업도 짧은 구간에서는 연속 손실이 자연히 나옵니다. 폐기는 표본 크기와 기댓값의 신뢰 구간을 함께 본 뒤에 결정해야 합니다.

태깅한 열에서만 편향이 숫자로 보입니다

거래일지를 반성문으로 쓰면 편향은 계속 막연한 감각으로 남습니다. 이 감각은 다음 손실에서 다시 흔들리고, 흔들릴 때마다 판단이 바뀝니다. 그러나 같은 기록을 데이터셋으로 다루면 "나는 이익을 너무 일찍 실현한다"는 인상은 승자·패자 평균보유의 격차가 되고, "이 셋업은 잘 맞는다"는 느낌은 셋업별 기댓값 하나가 됩니다. 처분효과·추격·복수매매의 지표 역시 앞선 편들이 각각 다루었지만, 결국은 같은 데이터셋의 열을 서로 다르게 교차한 집계일 뿐입니다. 모든 체결에 셋업과 1R을 적어 이 인상과 느낌을 계산할 수 있는 열로 바꿀 때, 앞선 편들이 다룬 편향들도 하나의 데이터셋 안에서 함께 집계됩니다.