왜 하루에 7%가 빠질까? 손절이 손절을 부르는 연쇄
주가가 하루에 7%나 빠지려면 아주 큰 나쁜 소식이 있어야 할 것 같지요. 그런데 많은 사람이 "여기까지 빠지면 판다"는 손절선을 정해 두고 있다면 어떨까요? 작은 충격에 누군가 팔고, 그 매도가 가격을 더 밀어 다음 사람의 손절선을 건드립니다. 이 모델의 첫 판에서 처음 충격은 −2%뿐이었는데 하루가 끝날 때는 −8.9%였습니다. 무엇이 작은 충격을 큰 폭락으로 키우고, 무엇이 연쇄를 끊을까요? 실제 시장·종목이 아니라 가상의 시장으로 구조만 돌려 봅니다.
모델은 이렇게 움직입니다
- 가상의 시장에 주식을 가진 사람 2,000명이 있습니다. 사람마다 손절선이 있어서, 장 시작 가격보다 그만큼 내려가면 가진 것을 모두 팝니다. 손절선은 평균 6% 아래에 모여 있고, 손절선이 퍼진 정도(1 아주 촘촘 ~ 5 아주 퍼짐)로 얼마나 한곳에 몰렸는지를 바꿉니다.
- 그중 빚을 낸 사람은 가진 양이 2배이고 손절선이 절반 거리(평균 3% 아래)라서 더 일찍, 더 많이 강제로 팝니다(청산). 큰손은 시장 전체 보유량의 일정 비중을 가진 한 묶음으로, 손절선 하나를 넘으면 한꺼번에 팝니다.
- 저가 매수자(보유자 수 대비 비율)는 가격이 1~9% 중 자기가 정한 만큼 내려가면 한 번 삽니다. 사는 만큼 파는 힘이 줄어듭니다.
- 장이 열리자마자 바깥 소식으로 가격이 외부 충격만큼 떨어집니다. 그 뒤 라운드마다 ① 지금 가격이 손절선에 닿은 사람이 모두 팔고 ② 매수선에 닿은 저가 매수자가 사며 ③ 가격이 (판 양 − 산 양)에 비례해 내려갑니다. 시장이 얇을수록(사려는 사람이 적을수록) 같은 양에 더 많이 밀립니다. 작은 흔들림도 더해집니다. 40라운드가 하루이고, 하루 끝 가격이 시작보다 7% 이상 낮으면 큰 폭락으로 셉니다(이 기준은 이 프로젝트가 정한 것).
직접 돌려보기
① 거래소 화면: 손절이 손절을 부르는 순간
맨 위 계기판은 지금 가격, 연쇄가 이어진 라운드 수, 처음 충격보다 몇 배 빠졌는지, 판 사람과 강제로 판 빚 낸 사람입니다. 왼쪽 캔들 하나가 한 라운드(빨강 하락, 초록 반등)이고, 그 아래 막대가 그 라운드에 팔린 양과 산 양이에요. 오른쪽 손절선 지도는 가격 축과 같은 높이에 "이 가격이 되면 팔 물량"(오른쪽)과 "살 물량"(왼쪽)을 쌓은 것입니다. 빨간 가격 줄이 칸에 닿으면 그 물량이 번쩍이며 사라지고 거래량으로 들어가요. 바로 아래 칸에 물량이 쌓여 있으면 연쇄가 이어집니다. 맨 아래 객장은 점 하나가 한 사람으로, 손절선이 가까운 사람부터 왼쪽에 앉혔습니다. 옅은 회색 선은 같은 설정의 다른 날 20판이에요.
② 오늘 하루 가격
재생이 지난 시점까지만 그립니다. 빨간 선이 장 시작 대비 가격, 아래 파란 막대가 그 라운드에 손절해서 판 양이에요. 막대가 이어지는 동안 가격이 계단처럼 내려가는지 보세요. 붉은 점선이 큰 폭락 기준(−7%)입니다.
③ 같은 설정으로 100번 돌린 하루 낙폭 (집계)
지금 설정 그대로 사람들의 손절선과 흔들림만 새로 뽑아 100번 돌린 하루 낙폭입니다. 재생과 상관없이 미리 계산한 집계예요. 빨간 막대가 큰 폭락(−7% 이상)이고, 이번 판 표시는 장이 끝난 뒤에 나타납니다. 가운데가 비고 양쪽에 몰리는지(조금 빠지거나, 통째로 무너지거나) 보세요.
④ 무엇을 바꾸면 큰 폭락이 잦아질까 (집계: 막대 하나 = 100판)
나머지는 지금 설정 그대로 두고 하나만 바꿔 100판씩 돌렸을 때 큰 폭락(−7% 이상)이 나온 판의 비율입니다. 진한 막대가 지금 설정이에요. 재생과 상관없이 미리 계산한 집계입니다.
이 결과가 말하는 것, 말하지 않는 것
말하는 것:
- 손절선이 한곳에 몰려 있으면 작은 충격엔 꿈쩍 않다가 어느 선을 넘으면 통째로 무너지고, 넓게 퍼져 있으면 작은 충격도 늘 몇 배로 커지지만 통째 붕괴는 천천히 늘었어요.
- 누군가 손절하면 그 매도가 가격을 밀어 다음 사람의 손절선에 닿게 해요. 첫 판은 −2%로 시작해 25단계 연쇄 끝에 −8.9%로 마감했고, 같은 설정 100판 중 48판이 −7% 이상이었어요.
- 몰린 손절선은 절벽처럼 갈렸어요. 충격 −2%면 100판 중 2판만 큰 폭락이었는데 −3.5%면 98판이었어요. 퍼진 손절선은 충격 −1%도 가운데 판 −4.2%까지 키웠어요.
- 그렇다면 연쇄는 어디서 끊길까요? 이 모델에선 빚과 받아 줄 사람이 갈랐어요. 빚 낸 사람 0%면 큰 폭락 0판, 40%면 100판이었고, 저가 매수자가 0%면 67판, 30%면 9판이었어요.
상세 설명
말하는 것: 기본 설정(처음 충격 −2%, 손절선 퍼짐 보통, 빚 낸 사람 20%, 시장 두께 보통, 큰손 10%, 저가 매수자 10%)의 첫 판은 −2%로 시작해 25단계 연쇄 끝에 −8.9%로 마감했고 보유자의 98%가 팔았습니다. 같은 설정 100판 중 48판이 큰 폭락(−7% 이상)이었고, 가운데 판의 낙폭은 −6.8%로 처음 충격의 3.4배였습니다. 손절선이 촘촘히 몰려 있으면 충격 −2%에서는 100판 중 2판만 큰 폭락이었지만 −3.5%에서는 98판으로, 충격이 1.5%포인트 커지는 사이에 거의 0에서 거의 전부로 바뀌었습니다. 손절선이 넓게 퍼져 있으면 충격 −1%도 가운데 판 −4.2%로 늘 몇 배씩 커졌지만, 큰 폭락은 3판 → 31판(−2%) → 65판(−2.5%) → 91판(−3%)으로 천천히 늘었습니다. 빚 낸 사람이 0%면 큰 폭락 0판, 20%면 48판, 40%면 100판이었고, 시장이 아주 두꺼우면 0판, 얇으면 92판이었습니다. 큰손 비중은 폭락이 일어날 확률보다 크기를 키웠습니다(0% → 40%: 큰 폭락 38판 → 49판, 큰 폭락 판의 평균 낙폭 −8.1% → −11.6%). 저가 매수자가 0%면 67판, 20%면 26판, 30%면 9판, 50%면 0판으로 연쇄가 끊겼습니다.
말하지 않는 것:
- 가상의 시장 하루를 단순화한 모델이에요. 실제 시장·종목을 설명하거나 폭락을 예측하지 않고, 투자 조언도 아니에요. 손절을 정해 두는 게 좋은지 나쁜지도 판정하지 않아요.
- 뉴스와 생각의 변화, 거래 중단 장치, 여러 날에 걸친 회복은 빠져 있어요. 손절선 분포·빚의 크기·−7% 기준은 이 프로젝트가 정한 값이라, 현실에선 실제 거래 자료로 따로 확인해야 해요.
- 큰손 비중은 폭락이 일어날 확률보다 크기를 키웠어요(큰 폭락 38→49판, 평균 낙폭 −8.1→−11.6%). '큰손이 폭락을 일으킨다'고 이 모델이 보여 준 건 아니에요.
상세 설명
말하지 않는 것: 이 모델은 가상의 시장 하루를 단순화한 것이며 실제 시장·종목·사건을 설명하거나 앞으로의 폭락을 예측하지 않습니다. 투자 조언이 아닙니다. 손절을 정해 두는 것이 좋다/나쁘다를 판정하지도 않습니다. 실제 시장에는 뉴스와 사람들의 생각 변화, 거래 중단 장치, 시장을 만드는 사람들, 여러 날에 걸친 회복, 다른 상품과의 연결이 있지만 이 모델에는 없습니다. 손절선 분포(평균 6%), 빚을 낸 사람의 2배 보유와 절반 거리, 가격 충격 계수, 큰 폭락 기준(−7%)은 모두 이 프로젝트가 정한 값이고, 숫자는 모두 이 모델에서 나온 예시입니다.
이론적 근거와 구현 메모
- 모델의 뿌리: 한 사람의 행동이 다음 사람의 "문턱"을 넘게 만드는 연쇄는 Granovetter (1978)의 문턱 모델(사람마다 "몇 명이 하면 나도 한다"는 기준이 다르다)과 같은 구조입니다. 작은 자극이 대부분은 금방 멈추지만 가끔 전체로 번지는 모습은 Bak, Tang, Wiesenfeld (1987)의 모래더미 모델과도 닮았습니다. 손절과 강제 청산이 가격 하락을 키울 수 있다는 설명은 금융에서 널리 이야기되지만, 이 모델은 특정 연구나 실제 사건을 재현하지 않습니다.
- 핵심 가정과 수식: 로그 가격
x = ln(P / 시작 가격). 장 시작 직후x = ln(1 − 충격). 보유자 i의 손절 거리di ~ 정규(6%, s)(최소 0.2%), 빚을 낸 사람은di/2, 보유량 2(나머지 1). 큰손 묶음 하나는 보유량W = 전체 × 비중/(1 − 비중), 손절 거리는 같은 분포에서 하나. 저가 매수자 j의 매수 거리uj ~ 고른(1%, 9%), 1씩 한 번. 라운드마다x ≤ ln(1 − d)인 사람이 모두 팔고x ≤ ln(1 − u)인 매수자가 산 뒤x ← x − λ (판 양 − 산 양) / N + ε,N = 2,000,ε ~ 정규(0, 0.1%). 손절선 퍼짐 1~5는s = 0.4, 0.8, 1.5, 2.5, 4%, 시장이 얇은 정도 1~5는λ = 0.025, 0.04, 0.055, 0.075, 0.10. 라운드 40번이 하루입니다. - 이 프로젝트의 단순화: 하루만 보고, 판 사람은 그날 다시 사지 않으며, 가격은 사고판 양에만 반응합니다. 뉴스·사람들의 생각 변화·거래 중단 장치·시장을 만드는 사람·다른 상품과 나라는 없습니다. 빚의 크기는 "보유량 2배, 손절 거리 절반" 한 가지로만 나타냈고, 큰손은 손절선 하나를 가진 한 묶음으로만 단순화했습니다. 저가 매수자는 한 번만 사고, 매수 거리는 이 프로젝트가 정한 1~9%입니다.
- 이론값과 시뮬레이션: 이 모델에는 맞춰 볼 정확한 이론값이 없어 시뮬레이션 값만 적고, 건전성을 확인합니다(
node tools/validate-crash.js, 시드 고정). 흔들림을 끄고 모든 보유자가 한 라운드에 팔게 하면 로그 가격이 정확히λ × 보유량/N만큼 내려가고(차이 0), 판 사람과 남은 사람을 더하면 2,000명, 같은 시드는 같은 결과를 냅니다. 극단도 예상과 맞습니다: 빚 낸 사람이 없으면(0%) 연쇄가 거의 일어나지 않고(판 사람 1%), 저가 매수자가 50%면 큰 폭락이 0판입니다. 손절선이 몰릴수록 결과가 "조금 빠짐"과 "통째로 무너짐" 둘로 갈리는 것은 문턱 모델에서 알려진 성질과 같은 방향입니다. - 더 읽을거리: Granovetter (1978), 「Threshold Models of Collective Behavior」, American Journal of Sociology 83(6): 1420–1443. Bak, Tang, Wiesenfeld (1987), 「Self-organized criticality: An explanation of the 1/f noise」, Physical Review Letters 59: 381–384. 이 사이트의 모래더미·혁명 실험이 같은 구조를 다룹니다.
- 이 프로젝트가 직접 설계한 단순화 구현입니다. 손절선이 가까운 순서로 줄 세워 두고 가격이 닿은 사람부터 차례로 팔게 해서, 한 판(2,000명 × 40라운드)을 1밀리초 안팎에 계산합니다. 화면의 첫 판(장 #1)은 연쇄가 끝까지 이어지는 모습이 잘 보이는 판으로 골랐고(내부 시드 8), ③④의 100판은 시드 1~100이라 첫 판만 보고 판단하지 않게 했습니다. ②와 통계 카드는 재생이 지난 시점까지만, ③④는 지금 설정으로 미리 계산한 집계입니다(④는 나머지를 지금 설정으로 두고 하나만 바꿈). ① 거래소 화면은 같은 계산을 그대로 그리며, 라운드 사이의 움직임(캔들이 자라고 물량이 번쩍이며 거래량으로 떨어지는 연출)만 부드럽게 이어 그릴 뿐 결과에 영향이 없습니다. 재생이 도달한 라운드까지만 그리고, 가격 축은 모두가 팔고 아무도 사지 않았을 때의 낙폭까지로 미리 정해 결과를 알려 주지 않습니다. 옅은 회색 선은 같은 설정의 다른 날 20판(③과 같은 시드 1번부터, 이번 판 시드는 건너뜀)이고, 이것도 재생 라운드까지만 보입니다. 거래량 축은 전체 보유량의 1/4이며 넘는 막대는 끊김 표시를 합니다.