ISA · KODEX200 · 만기 · 실측 재현 페이지

ISA 만기 날 마이너스면,
빼서 예금에 둘까 1년 더 둘까

ISA 에 매달 100만원씩 3년 동안 KODEX200(069500) 을 샀다고 치고, 2002년 10월부터 시작 달을 한 달씩 바꿔 계좌 241개를 만들었습니다. 만기 날 계좌가 넣은 돈(3,600만원)보다 적었던 때만 골라 두 갈래를 견줍니다. ① 빼서 예금 — 만기 날 다 팔아 1년 예금(한국 3개월 금리 실제값 · 이자소득세 15.4%) ② 1년 더 — 만기를 늘리고 같은 ETF 를 1년 더 들고 있다가 판다

56 / 63만기 날 마이너스였던 63번 중 1년 더 둔 쪽이 더 남은 횟수
4,052만원2020년 3월 시작 사례 — 만기 날 3,496만원, 빼서 예금이면 1년 뒤 3,607만원
9번1년 더 두고도 넣은 돈보다 적었던 횟수 — 원금 회복 약속이 아닙니다

오늘 드리는 것 — 기준 한 줄

만기 날 계좌할 일
넣은 돈보다 적다(마이너스)해지하지 말고 만기를 1년 늘린다 — 연장 신청은 만기 날보다 먼저(증권사 앱)
넣은 돈 이상(플러스)이 페이지의 질문이 아닙니다 — 아래 대조 줄(178번 중 80번)은 참고만
확인할 것늘릴 수 있는 기간·세금 규정은 2026년 세제 개편 논의 중 — 신청할 때 증권사에서 확인

두 사례 — 이긴 쪽과 진 쪽

시작만기 날만기 평가빼서 예금 1년1년 더
2020-032023-03-023,496만원3,607만원4,052만원
2021-022024-02-013,599만원3,707만원3,481만원

2020년 3월 사례의 1년 더 ÷ 예금(1.123)은 마이너스 만기 63번의 가운데 값과 같습니다 — 고른 사례가 아니라 가운데 사례입니다. 1년 더가 진 만기: 2014-02 · 2014-10 · 2014-12 · 2015-01 · 2015-02 · 2023-12 · 2024-02. 만기 날 플러스였던 178번에서는 1년 더가 더 남은 것이 80번이었습니다.

마이너스 만기 63번 전부

시작만기 날만기 평가빼서 예금 1년1년 더더 남은 쪽
2005-092008-09-013,526만원3,634만원4,160만원1년 더
2005-102008-10-013,549만원3,649만원4,199만원1년 더
2005-112008-11-032,819만원2,892만원3,949만원1년 더
2005-122008-12-012,636만원2,698만원3,996만원1년 더
2006-012009-01-022,909만원2,974만원4,362만원1년 더
2006-022009-02-022,878만원2,942만원4,137만원1년 더
2006-032009-03-022,593만원2,651만원4,169만원1년 더
2006-042009-04-013,137만원3,208만원4,471만원1년 더
2006-052009-05-043,508만원3,588만원4,467만원1년 더
2006-062009-06-013,540만원3,620만원4,234만원1년 더
2006-072009-07-013,547만원3,628만원4,321만원1년 더
2010-072013-07-013,440만원3,518만원3,733만원1년 더
2010-082013-08-013,522만원3,602만원3,853만원1년 더
2010-092013-09-023,547만원3,627만원3,779만원1년 더
2011-022014-02-033,529만원3,603만원3,576만원예금
2011-102014-10-013,593만원3,651만원3,440만원예금
2011-112014-11-033,512만원3,567만원3,584만원1년 더
2011-122014-12-013,547만원3,601만원3,558만원예금
2012-012015-01-023,496만원3,548만원3,413만원예금
2012-022015-02-023,571만원3,624만원3,386만원예금
2012-082015-08-033,442만원3,488만원3,673만원1년 더
2012-092015-09-013,265만원3,309만원3,703만원1년 더
2012-102015-10-013,410만원3,454만원3,752만원1년 더
2012-112015-11-023,575만원3,622만원3,719만원1년 더
2012-122015-12-013,548만원3,593만원3,699만원1년 더
2013-012016-01-043,405만원3,448만원3,842만원1년 더
2013-022016-02-013,392만원3,435만원3,985만원1년 더
2013-032016-03-023,484만원3,528만원4,036만원1년 더
2013-042016-04-013,535만원3,579만원4,188만원1년 더
2013-052016-05-023,555만원3,599만원4,316만원1년 더
2013-062016-06-013,563만원3,606만원4,545만원1년 더
2015-112018-11-013,484만원3,535만원3,774만원1년 더
2016-012019-01-023,454만원3,504만원3,957만원1년 더
2016-062019-06-033,468만원3,510만원3,615만원1년 더
2016-072019-07-013,583만원3,624만원3,700만원1년 더
2016-082019-08-013,419만원3,456만원3,929만원1년 더
2016-092019-09-023,316만원3,350만원4,054만원1년 더
2016-102019-10-013,509만원3,543만원4,102만원1년 더
2016-112019-11-013,553만원3,585만원3,986만원1년 더
2016-122019-12-023,526만원3,556만원4,569만원1년 더
2017-032020-03-023,444만원3,467만원5,404만원1년 더
2017-042020-04-012,875만원2,894만원5,446만원1년 더
2017-052020-05-043,204만원3,224만원5,488만원1년 더
2017-062020-06-013,503만원3,524만원5,630만원1년 더
2019-072022-07-013,460만원3,563만원3,854만원1년 더
2019-092022-09-013,521만원3,632만원3,876만원1년 더
2019-102022-10-043,210만원3,313만원3,628만원1년 더
2019-112022-11-013,381만원3,490만원3,522만원1년 더
2019-122022-12-013,569만원3,683만원3,785만원1년 더
2020-012023-01-023,233만원3,336만원4,076만원1년 더
2020-022023-02-013,573만원3,686만원3,857만원1년 더
2020-032023-03-023,496만원3,607만원4,052만원1년 더
2020-042023-04-033,530만원3,643만원4,203만원1년 더
2020-052023-05-023,576만원3,691만원4,032만원1년 더
2020-072023-07-073,538만원3,651만원4,180만원1년 더
2020-092023-09-013,556만원3,669만원3,888만원1년 더
2020-102023-10-043,341만원3,446만원3,667만원1년 더
2020-112023-11-013,248만원3,349만원3,616만원1년 더
2020-122023-12-013,499만원3,607만원3,485만원예금
2021-022024-02-013,599만원3,707만원3,481만원예금
2021-122024-12-023,558만원3,642만원6,185만원1년 더
2022-012025-01-023,490만원3,571만원6,991만원1년 더
2022-022025-02-033,575만원3,657만원8,153만원1년 더

시작 달이 한 달씩 다른 계좌라 서로 많이 겹칩니다. 따로 떨어진 사건으로 세면 15번이고, 그중 1년 더가 과반 이긴 사건은 12번입니다.

미국 S&P500 으로 해 보면

SPY 수정종가 × 원/달러(환헤지 없음) · 같은 판: 만기 358번 중 마이너스 44번 → 1년 더가 더 남은 것 32번. 1년 뒤 넣은 돈 이상은 20번뿐(24번은 그대로 마이너스) — 2001~2003년 사건이 길었습니다. 2010년 이후 만기에는 마이너스가 한 번도 없었습니다.

한계 — 먼저 읽어 주세요

받아가기

돌리는 법: zip 을 풀고 python run_isa.py

그대로 돌린 출력

== KODEX200 · 만기 241번 (2005-10 ~ 2025-10)
  만기 날 마이너스 63번 → 1년 더가 빼서 예금보다 더 남은 것 56번
  1년 뒤 넣은 돈 이상 54번 · 넣은 돈보다 적었던 것 9번
  (대조) 만기 날 플러스 178번 → 1년 더가 더 남은 것 80번
  세금(비과세 일반형 200만원 넘는 이익에 9.9%)을 1년 더 쪽에 물려도: 56번
  세금(비과세 서민형 400만원 넘는 이익에 9.9%)을 1년 더 쪽에 물려도: 56번
  1년 더 ÷ 예금 가운데 값 1.123
  1년 더가 진 만기: 2014-02 · 2014-10 · 2014-12 · 2015-01 · 2015-02 · 2023-12 · 2024-02
  따로 떨어진 마이너스 사건 15번 · 그중 1년 더가 과반 이긴 사건 12번
  2010년 이후 만기 중 마이너스 52번

  [마이너스 만기 전부]  시작 → 만기 날 · 만기 평가 · 빼서 예금 1년 · 1년 더
    2005-09 → 2008-09-01 · 3,526만원 · 3,634만원 · 4,160만원 · 1년 더 승
    2005-10 → 2008-10-01 · 3,549만원 · 3,649만원 · 4,199만원 · 1년 더 승
    2005-11 → 2008-11-03 · 2,819만원 · 2,892만원 · 3,949만원 · 1년 더 승
    2005-12 → 2008-12-01 · 2,636만원 · 2,698만원 · 3,996만원 · 1년 더 승
    2006-01 → 2009-01-02 · 2,909만원 · 2,974만원 · 4,362만원 · 1년 더 승
    2006-02 → 2009-02-02 · 2,878만원 · 2,942만원 · 4,137만원 · 1년 더 승
    2006-03 → 2009-03-02 · 2,593만원 · 2,651만원 · 4,169만원 · 1년 더 승
    2006-04 → 2009-04-01 · 3,137만원 · 3,208만원 · 4,471만원 · 1년 더 승
    2006-05 → 2009-05-04 · 3,508만원 · 3,588만원 · 4,467만원 · 1년 더 승
    2006-06 → 2009-06-01 · 3,540만원 · 3,620만원 · 4,234만원 · 1년 더 승
    2006-07 → 2009-07-01 · 3,547만원 · 3,628만원 · 4,321만원 · 1년 더 승
    2010-07 → 2013-07-01 · 3,440만원 · 3,518만원 · 3,733만원 · 1년 더 승
    2010-08 → 2013-08-01 · 3,522만원 · 3,602만원 · 3,853만원 · 1년 더 승
    2010-09 → 2013-09-02 · 3,547만원 · 3,627만원 · 3,779만원 · 1년 더 승
    2011-02 → 2014-02-03 · 3,529만원 · 3,603만원 · 3,576만원 · 예금 승
    2011-10 → 2014-10-01 · 3,593만원 · 3,651만원 · 3,440만원 · 예금 승
    2011-11 → 2014-11-03 · 3,512만원 · 3,567만원 · 3,584만원 · 1년 더 승
    2011-12 → 2014-12-01 · 3,547만원 · 3,601만원 · 3,558만원 · 예금 승
    2012-01 → 2015-01-02 · 3,496만원 · 3,548만원 · 3,413만원 · 예금 승
    2012-02 → 2015-02-02 · 3,571만원 · 3,624만원 · 3,386만원 · 예금 승
    2012-08 → 2015-08-03 · 3,442만원 · 3,488만원 · 3,673만원 · 1년 더 승
    2012-09 → 2015-09-01 · 3,265만원 · 3,309만원 · 3,703만원 · 1년 더 승
    2012-10 → 2015-10-01 · 3,410만원 · 3,454만원 · 3,752만원 · 1년 더 승
    2012-11 → 2015-11-02 · 3,575만원 · 3,622만원 · 3,719만원 · 1년 더 승
    2012-12 → 2015-12-01 · 3,548만원 · 3,593만원 · 3,699만원 · 1년 더 승
    2013-01 → 2016-01-04 · 3,405만원 · 3,448만원 · 3,842만원 · 1년 더 승
    2013-02 → 2016-02-01 · 3,392만원 · 3,435만원 · 3,985만원 · 1년 더 승
    2013-03 → 2016-03-02 · 3,484만원 · 3,528만원 · 4,036만원 · 1년 더 승
    2013-04 → 2016-04-01 · 3,535만원 · 3,579만원 · 4,188만원 · 1년 더 승
    2013-05 → 2016-05-02 · 3,555만원 · 3,599만원 · 4,316만원 · 1년 더 승
    2013-06 → 2016-06-01 · 3,563만원 · 3,606만원 · 4,545만원 · 1년 더 승
    2015-11 → 2018-11-01 · 3,484만원 · 3,535만원 · 3,774만원 · 1년 더 승
    2016-01 → 2019-01-02 · 3,454만원 · 3,504만원 · 3,957만원 · 1년 더 승
    2016-06 → 2019-06-03 · 3,468만원 · 3,510만원 · 3,615만원 · 1년 더 승
    2016-07 → 2019-07-01 · 3,583만원 · 3,624만원 · 3,700만원 · 1년 더 승
    2016-08 → 2019-08-01 · 3,419만원 · 3,456만원 · 3,929만원 · 1년 더 승
    2016-09 → 2019-09-02 · 3,316만원 · 3,350만원 · 4,054만원 · 1년 더 승
    2016-10 → 2019-10-01 · 3,509만원 · 3,543만원 · 4,102만원 · 1년 더 승
    2016-11 → 2019-11-01 · 3,553만원 · 3,585만원 · 3,986만원 · 1년 더 승
    2016-12 → 2019-12-02 · 3,526만원 · 3,556만원 · 4,569만원 · 1년 더 승
    2017-03 → 2020-03-02 · 3,444만원 · 3,467만원 · 5,404만원 · 1년 더 승
    2017-04 → 2020-04-01 · 2,875만원 · 2,894만원 · 5,446만원 · 1년 더 승
    2017-05 → 2020-05-04 · 3,204만원 · 3,224만원 · 5,488만원 · 1년 더 승
    2017-06 → 2020-06-01 · 3,503만원 · 3,524만원 · 5,630만원 · 1년 더 승
    2019-07 → 2022-07-01 · 3,460만원 · 3,563만원 · 3,854만원 · 1년 더 승
    2019-09 → 2022-09-01 · 3,521만원 · 3,632만원 · 3,876만원 · 1년 더 승
    2019-10 → 2022-10-04 · 3,210만원 · 3,313만원 · 3,628만원 · 1년 더 승
    2019-11 → 2022-11-01 · 3,381만원 · 3,490만원 · 3,522만원 · 1년 더 승
    2019-12 → 2022-12-01 · 3,569만원 · 3,683만원 · 3,785만원 · 1년 더 승
    2020-01 → 2023-01-02 · 3,233만원 · 3,336만원 · 4,076만원 · 1년 더 승
    2020-02 → 2023-02-01 · 3,573만원 · 3,686만원 · 3,857만원 · 1년 더 승
    2020-03 → 2023-03-02 · 3,496만원 · 3,607만원 · 4,052만원 · 1년 더 승
    2020-04 → 2023-04-03 · 3,530만원 · 3,643만원 · 4,203만원 · 1년 더 승
    2020-05 → 2023-05-02 · 3,576만원 · 3,691만원 · 4,032만원 · 1년 더 승
    2020-07 → 2023-07-07 · 3,538만원 · 3,651만원 · 4,180만원 · 1년 더 승
    2020-09 → 2023-09-01 · 3,556만원 · 3,669만원 · 3,888만원 · 1년 더 승
    2020-10 → 2023-10-04 · 3,341만원 · 3,446만원 · 3,667만원 · 1년 더 승
    2020-11 → 2023-11-01 · 3,248만원 · 3,349만원 · 3,616만원 · 1년 더 승
    2020-12 → 2023-12-01 · 3,499만원 · 3,607만원 · 3,485만원 · 예금 승
    2021-02 → 2024-02-01 · 3,599만원 · 3,707만원 · 3,481만원 · 예금 승
    2021-12 → 2024-12-02 · 3,558만원 · 3,642만원 · 6,185만원 · 1년 더 승
    2022-01 → 2025-01-02 · 3,490만원 · 3,571만원 · 6,991만원 · 1년 더 승
    2022-02 → 2025-02-03 · 3,575만원 · 3,657만원 · 8,153만원 · 1년 더 승

[사례] 2020-03 시작 · 만기 2023-03-02 · 넣은 돈 3,600만원 · 만기 날 3,496만원 → 빼서 예금 1년 3,607만원 / 1년 더 4,052만원

[사례] 2021-02 시작 · 만기 2024-02-01 · 넣은 돈 3,600만원 · 만기 날 3,599만원 → 빼서 예금 1년 3,707만원 / 1년 더 3,481만원

== KODEX200 · 2009-05 이후 시작만 · 만기 162번 (2012-05 ~ 2025-10)
  만기 날 마이너스 52번 → 1년 더가 빼서 예금보다 더 남은 것 45번
  1년 뒤 넣은 돈 이상 43번 · 넣은 돈보다 적었던 것 9번
  (대조) 만기 날 플러스 110번 → 1년 더가 더 남은 것 42번
  세금(비과세 일반형 200만원 넘는 이익에 9.9%)을 1년 더 쪽에 물려도: 45번
  세금(비과세 서민형 400만원 넘는 이익에 9.9%)을 1년 더 쪽에 물려도: 45번
  1년 더 ÷ 예금 가운데 값 1.089
  1년 더가 진 만기: 2014-02 · 2014-10 · 2014-12 · 2015-01 · 2015-02 · 2023-12 · 2024-02
  따로 떨어진 마이너스 사건 14번 · 그중 1년 더가 과반 이긴 사건 11번
  2010년 이후 만기 중 마이너스 52번

== S&P500 원화(SPY 수정종가 × 원/달러) · 만기 358번 (1996-01 ~ 2025-10)
  만기 날 마이너스 44번 → 1년 더가 빼서 예금보다 더 남은 것 32번
  1년 뒤 넣은 돈 이상 20번 · 넣은 돈보다 적었던 것 24번
  (대조) 만기 날 플러스 314번 → 1년 더가 더 남은 것 232번
  세금(비과세 일반형 200만원 넘는 이익에 9.9%)을 1년 더 쪽에 물려도: 32번
  세금(비과세 서민형 400만원 넘는 이익에 9.9%)을 1년 더 쪽에 물려도: 32번
  1년 더 ÷ 예금 가운데 값 1.088
  1년 더가 진 만기: 2001-09 · 2001-10 · 2001-11 · 2001-12 · 2002-01 · 2002-02 · 2002-03 · 2002-04 · 2002-05 · 2002-06 · 2002-07 · 2003-11
  따로 떨어진 마이너스 사건 4번 · 그중 1년 더가 과반 이긴 사건 4번
  2010년 이후 만기 중 마이너스 0번

== 일본 닛케이 원화(가격지수 × 원/엔) · 만기 418번 (1991-01 ~ 2025-10)
  만기 날 마이너스 125번 → 1년 더가 빼서 예금보다 더 남은 것 73번
  1년 뒤 넣은 돈 이상 61번 · 넣은 돈보다 적었던 것 64번
  (대조) 만기 날 플러스 293번 → 1년 더가 더 남은 것 142번
  세금(비과세 일반형 200만원 넘는 이익에 9.9%)을 1년 더 쪽에 물려도: 73번
  세금(비과세 서민형 400만원 넘는 이익에 9.9%)을 1년 더 쪽에 물려도: 73번
  1년 더 ÷ 예금 가운데 값 1.047
  1년 더가 진 만기: 1991-01 · 1991-02 · 1991-03 · 1991-04 · 1991-05 · 1991-06 · 1991-07 · 1991-08 · 1991-09 · 1991-10 · 1991-11 · 1991-12 · 1992-02 · 1992-03 · 1997-09 · 1997-10 · 2000-08 · 2000-10 · 2000-11 · 2000-12 · 2001-01 · 2001-02 · 2001-03 · 2001-04 · 2001-05 · 2001-06 · 2001-07 · 2001-08 · 2001-09 · 2001-10 · 2001-11 · 2001-12 · 2002-01 · 2002-02 · 2002-03 · 2002-04 · 2002-05 · 2002-06 · 2002-07 · 2002-08 · 2008-02 · 2008-03 · 2008-04 · 2008-10 · 2008-12 · 2009-11 · 2010-09 · 2010-11 · 2011-09 · 2011-11 · 2011-12 · 2012-01
  따로 떨어진 마이너스 사건 23번 · 그중 1년 더가 과반 이긴 사건 14번
  2010년 이후 만기 중 마이너스 26번

끝.

코드 전문

# -*- coding: utf-8 -*-
"""ISA 만기 날 계좌가 마이너스면 — 빼서 예금에 둘까, 1년 더 둘까 (AlgoLab 재현 코드 · 표준 라이브러리만)

판
  · 매달 첫 거래일 100만원 × 36번(넣은 돈 3,600만원) · 사고팔 때 편도 0.1%
  · 만기 = 첫 납입 36개월 뒤 첫 거래일 · 만기 평가액 = 그날 다 팔았을 때(수수료 뺌)
  · 빼서 예금 = 만기 평가액을 12개월 예금(한국 3개월 금리 IR3TIB01KRM156N 월별 · 이자소득세 15.4%)
  · 1년 더   = 같은 ETF 를 12개월 더 들고 그날 판다(추가 납입 없음)
자료(data_isa/ · 2026-10-02 까지 얼림)
  · kodex200_splice.csv : KODEX200(069500) — 2009-04-17 전 네이버 종가(분배금 미반영) · 이후 야후 수정종가
  · SPY.csv(야후 adjclose) · DEXKOUS.csv(원/달러) · IR3TIB01KRM156N.csv(FRED)
  · N225.csv(야후 닛케이 가격지수 · 배당 미반영) · DEXJPUS.csv(엔/달러 · FRED)
돌리는 법: python run_isa.py
"""
import csv
import os
import statistics
import sys

sys.stdout.reconfigure(encoding="utf-8", errors="replace")

HERE = os.path.dirname(os.path.abspath(__file__))
D = os.path.join(HERE, "data_isa")
COST, TAX, MON = 0.001, 0.154, 100.0


def read(name, col):
    out = []
    with open(os.path.join(D, name), encoding="utf-8") as f:
        for r in csv.DictReader(f):
            v = float(r[col])
            if v > 0:
                out.append((r["date"], v))
    return out


def monthly_first(rows):
    m = {}
    for d, v in rows:
        k = d[:7]
        if k not in m:
            m[k] = (d, v)
    keys = sorted(m)
    for a, b in zip(keys, keys[1:]):  # 달이 비면 안 된다
        ya, ma = int(a[:4]), int(a[5:])
        assert (ya * 12 + ma) + 1 == int(b[:4]) * 12 + int(b[5:]), ("월 구멍", a, b)
    return keys, [m[k][0] for k in keys], [m[k][1] for k in keys]


RATE = {d[:7]: v for d, v in read("IR3TIB01KRM156N.csv", "IR3TIB01KRM156N")}


def rate_of(ym):
    ks = [k for k in RATE if k <= ym]
    return RATE[max(ks)] if ks else None  # 금리 자료 앞의 만기는 뺀다


def run(rows):
    keys, days, px = monthly_first(rows)
    out = []
    for i0 in range(0, len(px) - 48):
        sh = sum(MON * (1 - COST) / px[i0 + k] for k in range(36))
        paid = MON * 36
        im = i0 + 36
        vm = sh * px[im] * (1 - COST)
        w = vm
        rs = [rate_of(keys[im + j]) for j in range(12)]
        if None in rs:
            continue
        for rr in rs:
            w *= 1 + (rr / 100 / 12) * (1 - TAX)
        h = sh * px[im + 12] * (1 - COST)
        out.append(dict(start=keys[i0], mat=keys[im], matday=days[im], paid=paid, vm=vm, w=w, h=h))
    return out


def man(x):
    return f"{round(x):,}만원"


def report(name, rows):
    loss = [r for r in rows if r["vm"] < r["paid"]]
    gain = [r for r in rows if r["vm"] >= r["paid"]]
    win = [r for r in loss if r["h"] > r["w"]]
    rec = [r for r in loss if r["h"] >= r["paid"]]
    print(f"\n== {name} · 만기 {len(rows)}번 ({rows[0]['mat']} ~ {rows[-1]['mat']})")
    print(f"  만기 날 마이너스 {len(loss)}번 → 1년 더가 빼서 예금보다 더 남은 것 {len(win)}번")
    print(f"  1년 뒤 넣은 돈 이상 {len(rec)}번 · 넣은 돈보다 적었던 것 {len(loss) - len(rec)}번")
    print(f"  (대조) 만기 날 플러스 {len(gain)}번 → 1년 더가 더 남은 것 {sum(r['h'] > r['w'] for r in gain)}번")
    for lim, lab in ((200, "일반형 200만원"), (400, "서민형 400만원")):
        k = sum((r["h"] - max(0.0, r["h"] - r["paid"] - lim) * 0.099) > r["w"] for r in loss)
        print(f"  세금(비과세 {lab} 넘는 이익에 9.9%)을 1년 더 쪽에 물려도: {k}번")
    if loss:
        print(f"  1년 더 ÷ 예금 가운데 값 {statistics.median(r['h'] / r['w'] for r in loss):.3f}")
        print("  1년 더가 진 만기: " + " · ".join(r["mat"] for r in loss if r["h"] <= r["w"]))
    eps, cur = [], []
    for r in rows:
        if r["vm"] < r["paid"]:
            cur.append(r)
        elif cur:
            eps.append(cur); cur = []
    if cur:
        eps.append(cur)
    maj = sum(1 for e in eps if 2 * sum(r["h"] > r["w"] for r in e) > len(e))
    print(f"  따로 떨어진 마이너스 사건 {len(eps)}번 · 그중 1년 더가 과반 이긴 사건 {maj}번")
    n10 = sum(1 for r in loss if r["mat"] >= "2010-01")
    print(f"  2010년 이후 만기 중 마이너스 {n10}번")
    return loss


def main():
    k = read("kodex200_splice.csv", "close")
    rows = run(k)
    loss = report("KODEX200", rows)
    print("\n  [마이너스 만기 전부]  시작 → 만기 날 · 만기 평가 · 빼서 예금 1년 · 1년 더")
    for r in loss:
        mark = "1년 더 승" if r["h"] > r["w"] else "예금 승"
        print(f"    {r['start']} → {r['matday']} · {man(r['vm'])} · {man(r['w'])} · {man(r['h'])} · {mark}")
    for s in ("2020-03", "2021-02"):
        r = next(x for x in rows if x["start"] == s)
        print(f"\n[사례] {s} 시작 · 만기 {r['matday']} · 넣은 돈 {man(r['paid'])} · 만기 날 {man(r['vm'])}"
              f" → 빼서 예금 1년 {man(r['w'])} / 1년 더 {man(r['h'])}")
    report("KODEX200 · 2009-05 이후 시작만", [r for r in rows if r["start"] >= "2009-05"])
    spy = read("SPY.csv", "adjclose")
    fx = read("DEXKOUS.csv", "DEXKOUS")
    fxd = dict(fx)
    fxs = sorted(fxd)
    j, last, sp = 0, None, []
    for d, v in spy:
        while j < len(fxs) and fxs[j] <= d:
            last = fxd[fxs[j]]; j += 1
        if last:
            sp.append((d, v * last))
    report("S&P500 원화(SPY 수정종가 × 원/달러)", run(sp))
    # 일본 닛케이(가격지수 · 원화) — 원/엔 = 원/달러 ÷ 엔/달러
    jp = dict(read("DEXJPUS.csv", "DEXJPUS"))
    jk = sorted((d, fxd[d] / jp[d]) for d in fxd if d in jp)
    nk = read("N225.csv", "close")
    j, last, nkk = 0, None, []
    for d, v in nk:
        while j < len(jk) and jk[j][0] <= d:
            last = jk[j][1]; j += 1
        if last:
            nkk.append((d, v * last))
    report("일본 닛케이 원화(가격지수 × 원/엔)", run(nkk))
    print("\n끝.")


if __name__ == "__main__":
    main()

알고랩 Strategy Lab — 전략을 검증하고, 검증한 것만 자동매매로 옮깁니다. 마이너스 계좌를 보고도 정해 둔 규칙대로 움직이는 일은 사람보다 규칙이 잘합니다. 알고랩 자동매매 살펴보기 · 전략 검증 전체 보기

과거 데이터를 돌려 본 결과이며 미래 수익을 보장하지 않습니다. 투자 판단과 책임은 본인에게 있습니다.