모든 매매 심리 글은 같은 방식으로 끝납니다: 규율을 지켜라, 감정을 통제하라, 계획대로 하라. 이 조언은 옳으면서 동시에 쓸모가 없습니다 — 정확히 필요한 순간에 작동하지 않기 때문입니다. 침착할 때 규칙을 어기는 사람은 없습니다. 규칙은 연속 손실 뒤, “이번 한 번만”이 합리적인 선택처럼 느껴지고 계획이 오늘 시장을 이해하지 못한 사람이 쓴 것처럼 보이는 순간에 깨집니다.
우리의 관점: 규율은 성격적 자질이 아닙니다. 공학 문제입니다. 머릿속에 있는 규칙은 제안입니다. 시스템 안에 있는 규칙 — 검증되는 파라미터, 하드 바운드, 소프트웨어가 묻지 않고 실행하는 정지 — 은 제약입니다. 이 글은 우리 시뮬레이터와 봇이 실제로 강제하는 제약을 하나씩 살펴보고, 강제하지 않는 것에 대해 정직하게 밝히고, 독자가 자기 매매에서 구조로 바꿀 수 있는 목록으로 끝납니다.
왜 의지력은 지는가
여기에 통계는 필요 없습니다 — 나쁜 하루를 매매로 견뎌 본 사람이라면 누구나 그 메커니즘을 압니다. 규칙은 침착한 버전의 내가 씁니다. 그런데 시험대에 오르는 건 기울어진 버전의 나입니다: 하루 내내 잃었고, 시장이 환불해 줄 거라 확신하며, 갑자기 협상 가능해 보이는 계획과 협상 중인 나. 그 순간에 내리는 모든 즉석 결정은, 그 순간 사용 가능한 나 중 가장 손상된 버전이 내립니다.
해법은 절대 흔들리지 않는 사람이 되는 게 아닙니다. 흔들림을 무의미하게 만드는 것입니다: 침착할 때 결정하고, 그 결정을 코드로 옮기고, 기계가 나 대신 거절하게 하는 것. 규칙에는 세 가지 형태가 있습니다 — 의도, 문서화된 계획, 기계적 제약. 내가 무너졌을 때도 여전히 작동하는 건 세 번째뿐입니다.
우리 시뮬레이터가 실제로 강제하는 가드
이것들은 포부가 아니라 엔진의 요청 필드와 경계값입니다. 각각은 특정 결정을 순간의 열기에서 떼어내기 위해 존재합니다 — 그리고 우리 제품을 쓰지 않더라도 그대로 베낄 수 있는 패턴입니다.
하드 레버리지 상한. 시뮬레이션 API는 레버리지를 1배에서 125배 사이로만 받고, 스키마 레벨에서 검증합니다 — 잘못 입력한 500배는 경고가 아니라 거부를 받습니다. 그리고 허용 범위 안에서도 엔진은 실질적 파멸 구간에 라벨을 붙입니다: 레버리지 × 손절 비율이 90 이상이면, 대부분의 거래가 청산으로 끝나며 총합은 예시일 뿐이라는 명시적 경고가 결과에 붙습니다. 패턴: 상한, 그리고 “기술적으로 허용됨”이 “생존 가능함”을 의미하지 않게 되는 구간에 대한 정직한 라벨.
출구 없이는 전략도 없다. 전략 빌더의 손절·익절 슬라이더는 1–50%로 제한됩니다 — “손절 없음” 옵션은 존재하지 않습니다. 전략은 단 하나의 봉을 돌리기 전에 출구를 먼저 선언해야 합니다. 보유 시간도 제한됩니다: 최대 168봉의 시간 기반 청산 — “다시 올라올 거야”에 포지션 자체에 내장된 마감 시한이 생깁니다.
자기 신뢰 대신 시간 필터. 실행 시 특정 UTC 시간대(avoid_hours, 0–23)와 특정 월(avoid_months)의 진입을 통째로 배제할 수 있습니다. 어떤 세션이 전략에 나쁘다면, 정직한 대응은 “그 시간엔 조심해야지”가 아니라 그 시간의 거래를 불가능하게 만드는 것입니다.
저변동 필터. min_vol_regime 파라미터는 최소 ATR 비율 — 현재 ATR 대 14봉 평균 ATR — 을 설정하고, 그 미만이면 진입을 건너뜁니다. 0.7로 설정하면 전략은 죽어 있는 횡보 구간을 그냥 거래하지 않습니다. 저변동 구간의 과잉 매매라는 규율 실패를, 이 파라미터는 필터로 바꿔 놓습니다.
레짐 필터. btc_trend_filter를 켜면 롱 진입은 BTC가 50봉 SMA 위에 있을 때만 허용됩니다. “시장 리더와 싸우지 마라”를 주문이 아니라 불리언으로.
끌 수 없는 경고. 엔진은 결과에 신뢰성 경고를 붙이고, 이를 끄는 설정은 없습니다. 거래 0건은 증거 없음으로 라벨링됩니다 — 명시적으로, 0% 저위험 결과가 아니라고. 30건 미만의 거래는 노이즈 밴드 안의 작은 표본으로 라벨링됩니다. 단일 코인 결과는 엣지가 아니라 그 코인의 레짐이라고 라벨링됩니다. 그리고 시뮬레이션 자본이 도중에 바닥나면 결과가 그렇게 말합니다: 표시된 총합은 -100%이며, 회복 가능한 낙폭이 아니라고. 백테스트가 무엇을 증명했는지에 대한 자기기만도 규율 실패입니다 — 이 가드는 그것을 겨냥합니다. (좋아 보이는 위험 수치가 여전히 거짓말하는 경로는 샤프·소르티노·MDD 읽는 법에서 다뤘고, 비용은 정산 이벤트 펀딩을 포함해 자동으로 부과됩니다.)
실거래 봇 쪽의 가드
시뮬레이션 규율은 값싸지만, 돈이 새는 건 실거래 규율에서입니다. 우리 자동매매 쪽에는 구조적 가드가 둘 있고, 둘 다 베낄 가치가 있습니다.
소프트웨어가 강제하는 일일 손실 한도. 트레이딩 설정에는 USDT 단위 일일 손실 한도(기본값 200)가 있습니다. 하루 손실이 이를 초과하면 거래가 중지됩니다 — 대시보드 상태에 “일시 중지 (손실 한도)“가 뜹니다. 이것이 흔들림에 면역인 하루의 끝입니다: 의지력에 묻지 않고, “만회할 딱 한 번의 거래”도 없습니다. 고정 사이즈 모드에서는 설정 화면이 한도가 비일관되게 설정된 경우까지 경고합니다 — 현재 포지션 크기와 레버리지에서 거래 한 번으로 일일 한도 전체가 소진될 수 있다면, 저장 전에 그렇게 알려 줍니다.
연속 손실 서킷 브레이커. 3연속 손실이 나면 실행기가 세션을 자동으로 정지합니다. 이것이 실제로 만들 수 있는 «복수 매매 차단»에 가장 가까운 형태입니다: 감정 상태를 추측하지 않고, 그냥 연속 손실 속으로 계속 쏘기를 거부합니다.
일일 거래 횟수 캡. 실행기는 하루 최대 거래 횟수(기본값 20)도 강제합니다. 과잉매매는 가장 조용한 규율 누수입니다 — 이 캡은 하루를 지침이 아니라 규칙으로 끝냅니다.
스위치를 올리기 전에는 아무것도 거래되지 않는다. 전략을 활성화해도 거래가 시작되지 않습니다. «봇 활성화» 스위치 자체가 확인 관문을 엽니다: 세 개의 명시적 리스크 체크 — 실제 자금이 거래되며 손실이 가능하다는 것; 봇이 서버에서 24/7 돌아가므로 브라우저를 닫아도 멈추지 않는다는 것; 그리고 정지 경로(«봇 활성화» 토글, «봇 중지» 위젯, 거래소 연결 해제)를 알고 있다는 것 — 셋을 전부 체크하기 전까지 활성화 버튼은 비활성 상태로 남습니다. 패턴: 동의는 구조화되고, 모든 정지 스위치는 첫 거래 전에 열거됩니다 — 낙폭 한가운데서 찾아 헤매는 게 아니라. (전략이 그 스위치를 받을 자격을 얻기 전에 무엇을 통과해야 하는지는 별도의 체크리스트입니다.)
우리가 하지 않는 것 — 그리고 하는 척하지 않을 것
정직 섹션입니다. 우리 시뮬레이터와 봇에는 틸트 감지와 낙폭 후 자동 포지션 축소가 없습니다. 이 기능들은 제품에 존재하지 않으며, 사용자의 감정 상태를 감지한다고 주장하는 도구는 측정할 수 없는 것을 파는 것입니다. 위의 가드들은 같은 문제에 대한 가장 무딘 도구입니다 — 그리고 정확히 무디기 때문에 작동합니다.
즉, 구조의 일부는 필연적으로 독자가 직접 지어야 합니다.
독자가 직접 구조화해야 하는 규율
옮겨 갈 수 있는 목록입니다. 각 항목은 같은 규칙을 따릅니다: 침착할 때 결정하고, 재협상이 불가능한 곳에 새겨라.
- 세션 전에 설정을 먼저 써라. 진입, 출구, 크기, 그리고 아무것도 하지 않을 조건 — 의도가 아니라 파라미터로. 규칙으로 쓸 수 없다면 아직 규칙이 없는 것입니다.
- 레버리지는 거래별이 아니라 계정 레벨에서 상한을 걸어라. 대부분의 거래소는 계정이나 포지션 모드에 최대치를 설정할 수 있습니다. 거래별 다짐은 거래마다 재협상되지만, 계정 레벨 상한은 그렇지 않습니다.
- 일일 정지선을 기계적 대응과 함께 사전 약속하라. 고정 손실 금액, 그리고 도달 시의 정의된 행동 — 터미널을 닫는다, 그날은 API 키를 회수한다, 자리를 뜬다. “그 뒤로는 조심한다”는 정의된 행동이 아닙니다.
- 최악의 시간대를 캘린더에서 배제하라. 늦은 밤이나 특정 세션에 일관되게 나쁜 매매를 한다면, 해법은 경계심이 아니라 캘린더 레벨의 배제입니다 — 시간 필터와 같은 수를 자기 자신에게 적용하는 것.
- 재협상이 불가능한 연속 손실 휴식 규칙. 봇 거래에서는 실행기가 이를 강제합니다(3연속 손실이면 세션 자동 정지). 수동 매매에서는 스스로 실행기가 되어야 합니다: 두세 번 연속 손실이면 그날은 끝 — 그리고 그 약속은 머리 밖에, 누군가에게 말해 두거나 지우기 민망한 곳에 적어 둡니다.
- 고통 뒤가 아니라 일정에 따라 복기하라. 손실 직후의 복기는 심문이고, 정기 복기는 정비입니다. 요일을 정하고 좋은 주든 나쁜 주든 지키십시오. 가장 깊은 구조적 규칙인 포지션 사이징 자체는 리스크 관리 101에서 다룹니다.
시험
스스로 지킨다고 주장하는 모든 규칙에 한 가지 질문을 던지십시오: 내일이 나쁘게 흘러가도, 이 규칙은 내 협조 없이 유지되는가? 답이 내 기분에 달려 있다면 아직 규율이 아닙니다 — 계획이 붙어 있는 희망일 뿐입니다. 구조는 최악의 하루에서도 살아남는 버전입니다. 최악의 하루에게 허락을 구한 적이 없기 때문입니다.
연습하기 가장 값싼 곳은 돈이 진짜가 아닌 곳입니다: 규칙 세트를 시뮬레이터 파라미터로 옮기고, 실행하고, 끌 수 없는 경고와 함께 결과를 읽어 보십시오 — 시뮬레이터에서 해보기.