거래량이 지지하지 않는 가격 움직임은 오래가지 못한다는 것이 자금흐름 계열 지표의 전제다. 차이킨 자금흐름(CMF)은 마크 차이킨이 만든 지표로, 하루 종가가 그날의 고가·저가 범위 안 어디서 끝났는지를 거래량과 곱해 누적한다. 종가가 고가 쪽에 가깝게 끝난 날은 매수 우위로, 저가 쪽에 가깝게 끝난 날은 매도 우위로 본다. 이 값을 일정 기간 합산해서 0을 기준으로 위아래를 가르면, 그 구간 동안 돈이 어느 쪽으로 쏠렸는지가 하나의 선으로 나온다.
삼성SDI(006400)는 이 지표를 시험하기에 좋은 재료를 갖고 있었다. 6월 중순 550,000원대에서 출발해 7월 말 358,500원까지 35% 넘게 미끄러졌다가, 8월 마지막 거래일 하루 만에 9.88% 뛰어오르며 이 구간 최고 종가로 마감했다. 하락과 반등이 뚜렷하게 갈리는 구간이라, 자금흐름이 방향을 얼마나 일찍 알아챘는지 확인하기 좋다.
종목 삼성SDI (006400)
코드 006400
구간 2026-06-17 ~ 2026-08-27 (50거래일)
출처 stockanalysis.com, KRX 일봉
최고 종가 567,000원 (2026-08-27, 구간 마지막 날)
최저 종가 358,500원 (2026-07-30)
낙폭 -35.41% (2026-06-19 종가 555,000원 → 2026-07-30 종가 358,500원)이 글은 투자 권유가 아니다. 실린 모든 수치는 과거 시세를 계산한 결과이며 앞으로의 수익을 보장하지 않는다.
계산은 이렇게 했다
CMF는 세 단계로 계산한다. 하루의 자금흐름 승수(MFM)를 구하고, 여기에 거래량을 곱해 자금흐름량(MFV)을 만든 뒤, 정해진 기간만큼 MFV와 거래량을 각각 합산해서 나눈다.
MFM ((종가-저가) - (고가-종가)) ÷ (고가-저가)
--------------------------------------------------
MFV MFM × 거래량
--------------------------------------------------
CMF N일 MFV 합계 ÷ N일 거래량 합계전 구간을 numpy로 직접 짰다. 라이브러리가 제공하는 지표 함수는 쓰지 않았고, 고가와 저가가 같아 분모가 0이 되는 날은 MFM을 0으로 처리하도록 예외 처리만 했다(이번 구간에는 그런 날이 없었다). 기간은 20일을 썼다. 대다수 차트 플랫폼이 기본값으로 쓰는 길이고, 한 달 거래일 수에 가까워 앞서 발행한 다른 이동평균 계열 지표 글들과 파라미터 기준을 맞출 수 있어서다.
2026-08-27 하루를 예로 들면 이렇다. 시가 526,000원, 고가 571,000원, 저가 522,000원, 종가 567,000원이었다. MFM은 ((567,000-522,000)-(571,000-567,000)) ÷ (571,000-522,000) = (45,000-4,000) ÷ 49,000 = +0.8367이다. 종가가 이날 범위의 고가 쪽 끝에 바짝 붙었다는 뜻이다. 이 값에 거래량 847,539주를 곱하면 이날의 MFV가 나온다.
최근 20일 MFV 합계 2,490,839
최근 20일 거래량 합계 9,215,837주
CMF(20) +0.270320일 구간이 있어야 값이 나오는 지표라 앞의 19개 봉은 표본이 부족해 CMF(20)가 비어 있다. 실제 유효한 값은 2026-07-14부터 2026-08-27까지 31개뿐이다. 50거래일을 모았는데 지표가 살아 있는 구간은 그중 62%다.
실제 움직임

가격은 6월 17일 종가 550,000원에서 출발해 6월 19일 555,000원(장중 고가 582,000원)까지 오른 뒤 7월 30일 종가 358,500원(장중 저가는 하루 전인 7월 29일 341,500원)까지 내리 밀렸다. 이후 8월 들어 완만하게 반등하다가, 8월 27일 하루에만 9.88% 오르며 567,000원으로 마감해 구간 전체를 통틀어 가장 높은 종가를 기록했다. 구간 시작 종가와 비교하면 최종 상승률은 3.09%에 그치지만, 그 사이에 35%가 넘는 낙폭을 한 번 거쳤다.

CMF(20) 라인을 겹쳐 보면 이야기가 단순해진다. 유효값이 시작되는 7월 14일부터 8월 11일까지 19거래일 내내 0 아래에 머물렀다. 최저치는 7월 20일 기록한 -0.2221이다. 그러다 8월 12일 +0.0110으로 처음이자 이 구간 유일하게 0선을 상향 돌파했다. 이후 8월 27일 +0.2703까지 한 번도 다시 음수로 내려가지 않았다. 두 달 가까운 구간에서 부호가 바뀐 시점은 단 한 번뿐이었다.
신호, 맞은 것과 틀린 것
CMF(20)의 0선 교차만 놓고 보면 이번 구간은 신호가 하나뿐이다. 8월 12일 종가 485,500원에서 신호가 떴고, 5거래일 뒤인 8월 20일 종가는 499,500원으로 2.88% 올랐다. 방향은 맞았지만 폭은 크지 않았다. 이 신호를 그대로 들고 갔다면 구간 마지막 날인 8월 27일 종가 567,000원까지 16.79% 올랐다. 짧게 끊어 보면 소폭 적중이고, 끝까지 들고 갔다면 큰 폭 적중이다.
문제는 신호가 하나뿐이라 “맞았다"는 말 자체가 통계적으로 별 의미가 없다는 점이다. CMF(20)은 20일 치를 누적하는 만큼 방향을 늦게, 하지만 드물게 알려준다. 같은 구간에서 더 빠르게 반응하는 지표라면 신호가 몇 번이나 났을지, 그리고 그 신호들의 승률은 어땠을지를 다음 절에서 기간을 10일로 좁혀 확인했다.

기간을 10일로 좁힌 CMF(10)은 같은 구간에서 0선을 일곱 번 넘나들었다. 그중 상승 교차(음수에서 양수로)가 네 번, 하락 교차(양수에서 음수로)가 세 번이다. 신호가 뜬 날의 종가와 5거래일 뒤 종가를 전수 대조했다.
- 7월 7일 상승 교차(값 +0.0091), 종가 445,000원 → 5거래일 뒤(7월 14일) 427,500원, -3.93%. 실패(상승 신호인데 하락)
- 7월 8일 하락 교차(-0.0966), 종가 412,000원 → 5거래일 뒤(7월 15일) 454,000원, +10.19%. 실패(하락 신호인데 큰 폭 상승)
- 7월 10일 상승 교차(+0.0562), 종가 434,000원 → 5거래일 뒤(7월 20일) 401,000원, -7.60%. 실패
- 7월 13일 하락 교차(-0.1814), 종가 440,000원 → 5거래일 뒤(7월 21일) 416,500원, -5.34%. 적중
- 8월 5일 상승 교차(+0.0753), 종가 429,000원 → 5거래일 뒤(8월 12일) 485,500원, +13.17%. 적중
- 8월 6일 하락 교차(-0.0544), 종가 427,000원 → 5거래일 뒤(8월 13일) 487,000원, +14.05%. 실패(하락 신호인데 이 구간 가장 큰 폭 상승)
- 8월 7일 상승 교차(+0.0734), 종가 459,000원 → 5거래일 뒤(8월 14일) 516,000원, +12.42%. 적중
일곱 번 중 세 번 적중, 네 번 실패다. 특히 7월 8일과 8월 6일의 하락 교차는 실제로는 이 구간에서 손꼽히게 큰 상승을 코앞에 두고 나온 신호였다. 교차 시점의 CMF 절댓값이 작을수록(0에 가까울수록) 노이즈성 신호일 가능성이 크다는 것도 눈에 띈다. 7월 7일(+0.0091)과 8월 6일(-0.0544)처럼 0선에 바짝 붙어 교차한 경우가 특히 자주 빗나갔다.
파라미터를 바꾸면

기간을 20일에서 10일로 줄이면 반응 속도와 진폭이 모두 달라진다. 8월 13일 기준으로 CMF(20)은 +0.0217이었지만 CMF(10)은 +0.3654로, 같은 날 같은 종가를 두고도 “막 양전환한 참"과 “이미 강한 매수 우위"라는 서로 다른 해석이 나온다. 7월 30일 저점에서는 CMF(20) -0.1998, CMF(10) -0.3159로 둘 다 음수였지만 폭의 차이는 뚜렷했다. 짧은 기간일수록 극단값에 더 민감하게 반응한다는 뜻이다.
교차 횟수도 크게 갈린다. CMF(20)은 50거래일 동안 딱 한 번 부호를 바꿨는데 CMF(10)은 일곱 번 바꿨다. 신호가 잦아지면 그만큼 빗나가는 신호도 늘어난다는 게 이번 대조에서 드러난 트레이드오프다. 20일 쪽은 신호를 거의 안 내는 대신 났다 하면 방향이 맞았고(1승 0패), 10일 쪽은 신호를 자주 내는 대신 절반 넘게 틀렸다(3승 4패). 어느 쪽이 낫다고 단정할 문제는 아니고, 포지션을 얼마나 자주 조정할 여력이 있는지에 따라 고를 파라미터가 달라진다.
봇 게이트에 넣을 것인가
CMF 단독으로 매수·매도를 결정하는 방식은 이번 표본만 놓고 보면 근거가 약하다. 20일 기준은 표본이 하나뿐이라 통계로 부를 수 없고, 10일 기준은 승률이 43%에 그쳤다. 다만 방향이 아니라 “돈이 들어오고 있는 국면인가"를 걸러내는 필터로는 쓸모가 있어 보인다. 이번 구간에서 CMF(20)가 양수로 돌아선 8월 12일 이후 가격은 실제로 한 번도 7월 저점을 다시 시험하지 않았다. 다른 진입 신호가 떴을 때 CMF(20) 부호를 확인해서 역행하는 신호를 걸러내는 정도로, 보조 필터로 봇 게이트에 넣는 편이 이번 데이터로는 더 합리적이다.
남는 것
이번 구간에서 눈에 남는 숫자는 두 개다. 하나는 CMF(20)이 두 달 동안 부호를 딱 한 번 바꿨다는 것, 다른 하나는 그 한 번이 3승 4패인 CMF(10)보다 오히려 결과가 좋았다는 것이다. 표본 하나로 지표의 우열을 가릴 수는 없다. 다음 라운드에 같은 종목이 돌아오면 이번 8월 12일 신호가 끝까지 유효했는지, 아니면 또 다른 되돌림을 맞았는지부터 확인하는 게 순서일 것 같다.
약어 풀이
* 이 글에 나온 영어 약어를 풀어 둔다.
- CMF (Chaikin Money Flow): 차이킨 자금흐름. 종가가 하루 범위(고가~저가)의 어디서 끝났는지를 거래량과 곱해 누적한 뒤 거래량 합으로 나눈 값. 0을 기준으로 매수·매도 우위를 가른다.
- MFM (Money Flow Multiplier): 자금흐름 승수. 하루의 종가 위치를 -1~+1 사이 값으로 나타낸 것. 종가가 고가에 붙을수록 +1로, 저가에 붙을수록 -1로 향한다.
- MFV (Money Flow Volume): 자금흐름량. MFM에 그날 거래량을 곱한 값. CMF를 구성하는 기본 단위다.
- KRX (Korea Exchange): 한국거래소. 코스피·코스닥을 운영하는 국내 유일의 증권 거래소.