콘텐츠로 이동
44 posts in the category “Quant”

기술적 분석 9장: 복합 기술지표의 포트폴리오 효과

기술적 지표 복합 신호

8장까지의 결과를 보면 거래량 돌파의 20일 평균수익률은 +9.75%, MACD 골든크로스는 +6.98%였습니다. 그렇다면 이동평균, RSI, MACD, 거래량을 동시에 만족시키면 더 강한 신호가 될까요? 여러 지표를 합치는 방식은 직관적이지만, 서로 비슷한 가격 정보를 반복해서 사용하거나 신호가 너무 늦어지는 문제가 생길 수 있습니다.

이번 분석에서는 다섯 조건 중 네 개 이상을 만족하면 복합 신호로 분류했습니다.

conditions = pd.concat(
[
df["close"] > df["ma20"],
df["ma20"] > df["ma60"],
df["rsi14"].between(40, 70),
df["macd"] > df["macd_signal"],
df["volume_ratio20"] > 1,
],
axis=1,
)
df["technical_score"] = conditions.sum(axis=1)
df["composite_state"] = df["technical_score"] >= 4
previous_state = df.groupby("code")["composite_state"].shift(1).fillna(False)
df["composite_entry"] = (
df["composite_state"] &
~previous_state
)

검증 구간에서 복합 신호 진입은 1,601회 발생했습니다.

신호발생 횟수20일 양수 비율평균 수익률중앙값
복합 신호 진입1,601회53.3%+7.03%+2.10%
거래량 돌파2,726회53.4%+9.75%+2.51%
MACD 골든크로스1,868회55.1%+6.98%+2.72%

복합 신호의 평균수익률 +7.03%는 거래량 돌파의 +9.75%보다 낮고, 중앙값 +2.10%도 거래량 돌파 +2.51%와 MACD +2.72%보다 낮았습니다. 양수 비율도 53.3%로 MACD의 55.1%를 넘지 못했습니다. 여러 조건을 요구했기 때문에 신호의 질이 자동으로 높아진 것이 아니라, 진입 시점이 늦어지고 상승 초기를 놓쳤을 가능성이 있습니다.

복합 신호의 장점은 신호의 설명력입니다. “왜 이 종목이 후보인가?”에 대해 추세, 모멘텀, 거래량으로 나눠 설명할 수 있습니다. 반면 조건을 추가할수록 표본 수가 줄고, 과거 기간에 맞춘 과최적화 위험이 커집니다.

따라서 복합 전략은 점수 자체보다 다음을 관리해야 합니다.

  • 조건을 추가하기 전후의 표본 수
  • 학습 구간과 검증 구간의 성과 차이
  • 평균과 중앙값의 차이
  • 산업별 편중
  • 신호 발생 후 최대 손실

이번 결과에서 복합 신호의 장점은 단일 지표보다 높은 수익률이 아니라, “추세·모멘텀·거래량 조건을 동시에 만족한 종목”이라는 설명력입니다. 반대로 성과 측면에서는 단일 거래량·MACD 신호를 압도하지 못했습니다. 복합 신호는 최종 매수 버튼이 아니라 다음 분석으로 넘어갈 종목을 줄이는 스크리닝 언어로 사용하는 것이 적절합니다.

다음 장에서는 이 스크리닝 결과가 산업과 시장 국면에 따라 얼마나 달라지는지 확인합니다.

기술적 분석 11장: 오늘의 후보 종목 스크리닝

기술적 분석 종목 스크리닝

앞 장에서는 복합 신호가 산업과 시장 국면에 따라 다른 결과를 보인다는 점을 확인했습니다. 이번에는 그 신호를 2026년 9월 4일 기준 종목 전체에 적용해 실제 후보군을 추출합니다. 여기서 중요한 질문은 “점수가 높은 종목이 곧 매수 종목인가?”가 아니라 “어떤 조건을 통과한 후보를 다음 분석 대상으로 좁힐 수 있는가?”입니다. 이 결과는 매수 추천 목록이 아니라, 동일한 규칙으로 다시 확인할 수 있는 분석 후보 목록입니다.

다섯 조건 중 네 개 이상을 만족하는 종목을 후보로 분류했습니다.

df["score"] = (
(df["close"] > df["ma20"]).astype(int)
+ (df["ma20"] > df["ma60"]).astype(int)
+ df["rsi14"].between(40, 70).astype(int)
+ (df["macd"] > df["macd_signal"]).astype(int)
+ (df["volume_ratio20"] > 1).astype(int)
)
latest = df[df["date"] == "20260904"]
screen = latest[latest["score"] >= 4].sort_values(
["score", "volume_ratio20"], ascending=False
)
종목시장종가RSI거래량 비율점수
카카오페이KOSPI47,30055.41.335
현대약품KOSPI7,95069.02.885
KCCKOSPI482,00054.71.295
디아이KOSPI31,25067.81.835
한화투자증권KOSPI5,10057.23.285
써니전자KOSPI2,18565.01.665
파인엠텍KOSDAQ9,35055.12.175
신스틸KOSDAQ2,10569.13.205

전체 30개 후보는 latest_screen.csv에서 확인할 수 있습니다. 기준일이 바뀌면 후보도 바뀌므로, 이 목록의 종목명을 고정해 추천처럼 사용해서는 안 됩니다.

이번 기준일 후보는 총 30개였고, 모두 5개 조건을 통과했습니다. 시장별로는 KOSPI 15개, KOSDAQ 15개였습니다. 따라서 이 결과에서 점수 5점과 4점의 우열을 비교할 수는 없고, 거래량 비율이나 산업·시장 구성을 추가 기준으로 사용해야 합니다.

스크리닝의 역할은 분석 대상을 줄이는 것입니다. 점수 5점이라고 해서 바로 매수할 수 있는 것은 아닙니다. 후보가 어떤 산업에 몰렸는지, 실적·현금흐름·수급·밸류에이션이 뒷받침되는지, 그리고 기준일 이후에도 조건이 유지되는지를 확인해야 합니다.

다음 장에서는 후보를 고르는 규칙을 실제 포트폴리오 전략으로 바꿀 때 성과와 낙폭이 어떻게 달라지는지 비교합니다.

기술적 분석 12장: 백테스트하는 기술적 전략

기술적 분석 전략 백테스트

앞 장의 후보 목록은 분석 대상을 줄여줄 뿐, 실제 투자 성과를 보여주지 않습니다. 기술적 분석의 마지막 질문은 “어떤 지표가 가장 유명한가?”가 아니라 “같은 조건과 비용을 적용했을 때 어떤 전략이 남는가?”입니다. 이번 장에서는 300개 종목에 같은 기간과 같은 비용 가정을 적용해 이동평균, MACD, 복합 신호를 비교합니다.

state = df["close"] > df["ma20"]
state &= df["ma20"] > df["ma60"]
# 당일 신호로 다음 거래일부터 보유
position = state.groupby(df["code"]).shift(1).fillna(False)
gross_return = position * df["return_1d"]
turnover = position.groupby(df["code"]).diff().abs().fillna(position)
net_return = gross_return - turnover * 0.0015

실제 포트폴리오 계산에서는 해당 날짜에 보유 중인 종목의 수익률을 동일 비중으로 평균냈습니다. 거래비용은 포지션 변경 시 0.15%를 차감했습니다.

검증 구간은 2026년 1월 1일부터 9월 4일까지입니다.

전략누적수익률연환산수익률변동성최대낙폭Sharpe 근사
MA 추세+63.55%+111.03%52.43%-31.05%2.12
MACD 추세+58.15%+100.55%50.36%-33.52%2.00
복합 신호+5.11%+7.86%63.69%-46.21%0.12
코스피+33.62%+55.69%61.14%-38.63%0.91

기술적 분석 전략 누적자산

이번 검증 구간에서는 MA와 MACD 추세 전략이 코스피를 앞섰습니다. MA 추세는 코스피보다 누적수익률이 높고 최대낙폭도 작았지만, -31.05%의 하락을 감수해야 했습니다. 반면 복합 신호 전략은 조건이 더 많았음에도 누적수익률이 +5.11%에 그쳤고 최대낙폭은 -46.21%였습니다.

이 표는 9장의 사건별 결과와 12장의 포트폴리오 결과가 다를 수 있다는 점도 보여줍니다. 복합 신호는 사건별 20일 평균수익률이 +7.03%였지만, 실제 진입·보유·거래비용을 적용한 전략의 누적수익률은 +5.11%였습니다. 신호가 발생한 사례의 평균과 투자자가 보유한 포트폴리오의 성과는 진입 시점, 신호 중복, 보유 종목 수, 거래비용에 의해 달라집니다.

이번 데이터에서 확인한 핵심은 다음과 같습니다.

  1. 거래량 돌파와 MACD 골든크로스는 20일 선행수익률에서 상대적으로 강했습니다.
  2. RSI 회복과 볼린저 하단 반등은 평균보다 중앙값이 낮아 일부 급등 사례의 영향을 크게 받았습니다.
  3. 높은 변동성 종목은 복합 신호가 나와도 양수 비율과 중앙값이 낮았습니다.
  4. 같은 기술 신호라도 산업별 결과가 달랐습니다.
  5. 조건을 많이 결합한다고 전략 성과가 자동으로 좋아지지는 않았습니다.
  6. 높은 수익률에는 항상 최대낙폭과 표본 편향을 함께 표시해야 합니다.

따라서 이번 분석에서 얻은 실전적인 순서는 다음과 같습니다.

  1. MA·MACD로 상승 추세에 있는 종목을 먼저 구분합니다.
  2. 거래량 돌파와 OBV로 추세에 거래량 확인이 붙었는지 봅니다.
  3. RSI·볼린저 반등은 단독 매수 신호가 아니라 시장·산업 조건과 함께 해석합니다.
  4. ATR로 종목별 포지션 크기와 손실 폭을 조정합니다.
  5. 산업·시장 국면으로 후보를 다시 나눈 뒤, 백테스트에서 거래비용과 최대낙폭을 확인합니다.

기술적 분석은 미래를 맞히는 주문이 아니라, 가격·거래량에서 반복적으로 관찰되는 조건을 정의하고 그 조건의 성과와 실패 범위를 측정하는 방법입니다. 이번 결과는 이 표본과 검증 기간에 대한 증거이지, 어떤 지표도 항상 작동한다는 보장은 아닙니다.

전체 원자료는 OHLCV, 신호 결과, 전략 결과, Python 코드에서 확인할 수 있습니다. 과거 검증 결과는 미래 수익을 보장하지 않으며, 실제 투자 전에는 체결 가능성·세금·슬리피지·생존자 편향을 추가로 검토해야 합니다.

기술적 분석 10장: 산업별 기술 신호의 차이

산업별 기술적 신호 분석

9장에서는 여러 조건을 합친 복합 신호의 평균수익률이 +7.03%였지만, 단일 거래량 돌파의 +9.75%를 앞서지 못했습니다. 이제 질문을 한 단계 바꿉니다. 복합 신호의 평균을 전체 종목에 적용하기보다, 어떤 산업과 시장 국면에서 결과가 달라지는가를 확인합니다. 기술적 신호는 모든 산업에서 같은 의미를 갖지 않으며, 반도체처럼 추세가 빠르게 이어지는 산업과 바이오처럼 급등락이 큰 산업에 같은 조건을 적용하면 결과가 달라질 수 있습니다.

selected = df[
(df["composite_entry"] == 1) &
(df["date"] >= "20260101")
].copy()
industry_result = (
selected.groupby("industry")
.agg(
events=("code", "size"),
positive_rate=("forward_return_20d", lambda x: (x > 0).mean()),
mean_return=("forward_return_20d", "mean"),
median_return=("forward_return_20d", "median"),
)
.query("events >= 5")
.sort_values("mean_return", ascending=False)
)

검증 구간에서 복합 신호가 5회 이상 발생한 산업 중 일부는 다음과 같습니다.

산업신호 수양수 비율평균 수익률중앙값
전자부품 제조업12962.8%+14.55%+10.53%
반도체 제조업4759.6%+14.07%+11.65%
기타 금융업16261.7%+9.53%+3.53%
기타 화학제품 제조업7048.6%+1.02%-1.67%
의약품 제조업4346.5%+6.46%-3.08%
소프트웨어 개발 및 공급업4240.5%+4.42%-3.94%

전자부품과 반도체는 양수 비율이 59.6~62.8%, 중앙값이 +10%를 넘었습니다. 반면 소프트웨어와 의약품은 평균은 플러스였지만 중앙값이 각각 -3.94%, -3.08%였습니다. 같은 복합 신호라도 산업에 따라 전형적인 결과가 달라지고, 평균만 보면 이 차이를 놓치게 됩니다.

시장 국면도 함께 봐야 합니다. 이번 분석에서는 코스피의 20일 수익률을 양수·음수로 나누고, 각 신호의 이후 수익률을 다시 계산합니다. 개별 종목 신호만으로는 시장 전체의 위험 선호 변화를 설명할 수 없기 때문입니다.

코스피 20일 모멘텀신호 수20일 양수 비율평균 수익률중앙값
양수3,39051.1%+5.57%+1.28%
음수1,41547.5%+3.78%0.00%

이번 결과에서 “이 지표의 평균 수익률은 얼마인가?”보다 더 좋은 질문은 “어떤 산업과 시장 상태에서 이 지표가 작동했는가?”입니다. 전자부품·반도체처럼 평균과 중앙값이 함께 높은 산업은 우선 검토 대상이 될 수 있지만, 소프트웨어·의약품처럼 평균과 중앙값이 엇갈리는 산업은 개별 종목과 손실 관리가 더 중요합니다.

코스피 20일 모멘텀이 양수인 국면에서는 양수 비율 51.1%, 평균 +5.57%였고, 음수 국면에서는 각각 47.5%, +3.78%로 낮아졌습니다. 시장 국면이 우호적일 때 신호의 결과도 개선됐지만, 양수 국면에서도 양수 비율은 절반을 조금 넘는 수준입니다. 시장 필터는 확률을 보완할 뿐, 결과를 보장하지 않습니다.

표본 수가 적은 산업의 높은 수익률은 과대해석하지 않아야 하며, 여러 산업을 동시에 비교할 때 우연히 좋은 그룹을 고르는 문제도 주의해야 합니다. 다음 장에서는 이 조건을 기준일 종목 목록으로 바꿀 때 실제 후보가 어떻게 만들어지는지 확인합니다.

산업별 원자료는 industry_summary.csv, 시장 국면 결과는 regime_summary.csv에서 확인할 수 있습니다.

실적은 늘었는데 주가는 왜 못 오를까? 이익의 질과 밸류에이션 변화 분석

이익의 질과 밸류에이션 변화 분석 대표 이미지

실적 발표에서 매출과 영업이익이 모두 증가했는데 주가는 오히려 하락하는 경우가 있습니다. 이것은 시장이 실적을 보지 않아서가 아니라, 이익의 지속 가능성과 이미 가격에 반영된 기대를 함께 평가하기 때문입니다.

이 글에서는 원론적인 설명으로 끝내지 않고, 실제 분석 가능 종목을 같은 기준으로 훑어 “실적은 늘었지만 주가는 못 오른 종목”의 후보군을 추출합니다. 이 후보군은 매수 추천이 아니라, 왜 주가가 실적을 따라가지 못했는지 후속 확인할 출발점입니다.

회계상 이익과 현금이 같은 방향인지 확인하기

섹션 제목: “회계상 이익과 현금이 같은 방향인지 확인하기”

가장 먼저 볼 지표는 순이익 자체가 아니라 영업활동현금흐름입니다. 매출채권이나 재고가 빠르게 늘면서 매출이 증가했다면, 손익계산서의 이익이 아직 현금으로 회수되지 않았을 수 있습니다.

이익의 현금 전환 정도는 다음처럼 계산할 수 있습니다.

현금전환율영업활동현금흐름순이익
import pandas as pd
# df: 연도별 재무 데이터. 금액 단위는 동일하게 맞춥니다.
df = df.sort_values("fiscal_year").copy()
df["sales_growth"] = df["revenue"].pct_change()
df["operating_margin"] = df["operating_profit"] / df["revenue"]
df["cash_conversion"] = df["operating_cash_flow"] / df["net_income"]
df["receivable_growth"] = df["receivables"].pct_change()
print(df[[
"fiscal_year", "sales_growth", "operating_margin",
"cash_conversion", "receivable_growth"
]])

현금전환율이 낮다고 항상 부정적인 것은 아닙니다. 성장기 기업은 재고 확보나 매출채권 증가로 일시적인 차이가 생길 수 있습니다. 다만 이익은 증가하는데 영업활동현금흐름이 반복해서 따라오지 않고, 매출채권 증가율까지 높다면 이익의 질을 더 자세히 확인해야 합니다.

EPS 증가는 주주에게도 돌아가는 성장인가?

섹션 제목: “EPS 증가는 주주에게도 돌아가는 성장인가?”

순이익이 증가해도 유통주식수가 더 빠르게 늘면 주당순이익(EPS)은 줄어들 수 있습니다. 반대로 자사주 매입과 소각이 진행되면 순이익 증가율보다 EPS 증가율이 높아질 수 있습니다.

df["eps_growth"] = df["eps"].pct_change()
df["share_count_growth"] = df["shares_outstanding"].pct_change()
df["eps_gap"] = df["eps_growth"] - df["net_income"].pct_change()

따라서 “순이익이 증가했다”는 문장만으로는 부족합니다. 순이익, EPS, 주식 수의 방향을 함께 비교해야 실제 주주가 얻는 이익의 변화를 파악할 수 있습니다.

좋은 실적도 밸류에이션 하락을 이기지 못할 수 있습니다

섹션 제목: “좋은 실적도 밸류에이션 하락을 이기지 못할 수 있습니다”

주가는 대략 다음 두 요소의 곱으로 이해할 수 있습니다.

주가

EPS가 증가하더라도 시장이 적용하는 PER이 더 큰 폭으로 하락하면 주가는 내려갈 수 있습니다. 예를 들어 기업의 이익 전망이 개선되어도 금리 상승, 산업 성장률 둔화, 경쟁 심화 등으로 투자자가 지불하려는 배수가 낮아질 수 있습니다.

df["per"] = df["close"] / df["eps"]
df["per_change"] = df["per"].pct_change()
df["price_change"] = df["close"].pct_change()
print(df[["fiscal_year", "eps_growth", "per_change", "price_change"]])

이때 실적 증가와 주가 하락은 모순이 아닙니다. 시장의 질문이 “이번 반기 이익이 늘었는가?”에서 “이 성장률이 몇 년 더 유지될 수 있는가?”로 바뀐 결과일 수 있습니다.

전체 종목을 먼저 스크리닝했습니다

섹션 제목: “전체 종목을 먼저 스크리닝했습니다”

앞에서 설명한 지표를 실제 시장에 적용했습니다. 분석 기준일은 2026년 9월 4일입니다. 2025년 상반기와 2026년 상반기의 연결 기준 누적 재무 데이터를 비교하고, 주가는 2026년 6월 30일 종가부터 9월 4일 종가까지 측정했습니다.

전체 활성 종목 4,308개 중 재무제표·현금흐름·두 날짜의 주가가 모두 존재한 1,834개를 대상으로 다음 조건을 적용했습니다.

  • 매출액, 영업이익, 순이익이 모두 전년 동기 대비 5% 이상 증가
  • 2026년 6월 30일 이후 주가 수익률이 -10% 이하
  • 시가총액 3,000억 원 이상

그 결과 62개 종목이 남았습니다. 조건을 완화해 시가총액과 5% 성장 기준을 제외하면, 이익 세 항목이 모두 증가했는데 주가가 하락한 종목은 191개이고, 그중 주가가 10% 이상 하락한 종목은 110개였습니다.

아래는 주가 하락률이 큰 순서로 정렬한 상위 후보입니다. 숫자가 클수록 좋아 보인다는 뜻이 아니라, 시장이 실적 개선을 주가에 반영하지 않은 정도가 컸다는 뜻입니다.

종목산업주가 변화매출 증가영업이익 증가순이익 증가현금전환율 변화
브이엠특수 목적용 기계-51.7%+182.2%+696.3%+1,086.3%279.6% → 115.4%
신세계종합 소매업-49.3%+8.0%+75.7%+195.4%362.3% → 224.2%
성호전자전자부품-47.2%+30.6%+245.5%+8,582.5%247.1% → -11.0%
코리아써키트전자부품-46.6%+20.6%+918.7%+2,411.7%954.4% → 79.7%
씨어스의료용 기기-45.6%+406.6%+2,886.6%+2,839.6%-45.5% → 58.7%
로킷헬스케어의료용품·의약 관련-43.6%+67.6%+6,924.6%+742.3%466.4% → 131.4%
LG이노텍전자부품-42.7%+24.1%+296.4%+418.4%1,142.3% → 99.8%
케이씨텍정밀기기-40.8%+53.4%+149.4%+179.9%72.7% → 23.2%
SK하이닉스반도체-37.8%+230.8%+489.4%+788.9%120.4% → 68.3%
DB하이텍반도체-37.7%+21.9%+36.2%+91.2%103.6% → 83.9%
삼성전기전자부품-35.9%+20.7%+74.3%+108.4%241.7% → 182.5%
피에스케이특수 목적용 기계-35.5%+54.0%+125.6%+120.3%108.5% → 95.7%
에스에이엠티기계장비·도매-35.5%+160.1%+1,036.5%+1,207.9%-299.2% → -128.6%
와이지-원금속 가공제품-34.6%+44.0%+251.4%+741.1%-335.1% → -6.8%
SK기타 금융업-31.3%+28.6%+1,320.6%+535.2%60.4% → 15.9%

실적은 증가했지만 주가는 하락한 종목 스크리닝

이 표에서 바로 확인되는 것은 세 가지입니다. 첫째, SK하이닉스·삼성전기처럼 규모가 큰 반도체·전자부품주도 상위 15개에 들어옵니다. 둘째, 신세계처럼 현금전환율이 224.2%로 여전히 높아도 주가가 49.3% 하락할 수 있습니다. 셋째, 성호전자·에스에이엠티·와이지-원처럼 이익은 늘었지만 현금전환율이 음수인 종목도 있습니다. 같은 “실적 증가”라도 후속 확인의 우선순위가 달라지는 이유입니다.

분석에 사용한 파일은 반기 재무 데이터 CSV, 주가 데이터 CSV, 전체 후보군 CSV, 통합 JSONL입니다. 필드 설명과 계산식은 원자료 README에 정리했습니다.

후보군을 세 그룹으로 나눠야 합니다

섹션 제목: “후보군을 세 그룹으로 나눠야 합니다”

현금흐름도 따라오는 종목은 실적 증가와 현금 유입이 함께 나타난 경우입니다. 신세계의 현금전환율은 362.3%에서 224.2%로 낮아졌지만 여전히 100%를 크게 웃돕니다. 삼성전기도 241.7%에서 182.5%로 하락했지만 영업활동현금흐름의 절대 금액은 늘었습니다. 이 그룹은 “왜 주가가 이렇게까지 하락했는가”를 산업 전망과 밸류에이션에서 찾아야 합니다.

이익은 늘었지만 현금전환이 약해진 종목은 더 엄격하게 봐야 합니다. SK하이닉스는 상반기 영업이익이 489.4% 증가했지만 현금전환율은 120.4%에서 68.3%로 낮아졌습니다. LG이노텍도 1,142.3%에서 99.8%로 하락했습니다. 재고, 매출채권, 선급금, 세금 납부 시점 등 운전자본 변동을 사업보고서에서 확인해야 합니다.

기저효과가 큰 종목도 따로 분류해야 합니다. 성호전자처럼 순이익 증가율이 수천 퍼센트에 달하는 경우에는 전년 기준값이 작았거나 일회성 손익이 있었을 수 있습니다. 이때는 증가율 자체보다 올해 상반기 이익의 절대 규모, 다음 분기에도 유지되는지, 영업활동현금흐름이 플러스로 전환됐는지를 확인해야 합니다.

  • 매출 증가가 영업이익률 개선과 함께 나타났는가
  • 순이익 증가가 영업활동현금흐름 증가로 이어졌는가
  • EPS가 증가했으며 희석 주식 수는 어떻게 변했는가
  • PER·PBR이 과거와 업종 평균 대비 어느 수준인가

네 지표가 모두 긍정적이어도 주가가 즉시 상승한다는 뜻은 아닙니다. 이미 높은 기대가 주가에 반영되어 있거나, 산업 전체의 밸류에이션이 낮아지는 국면일 수 있기 때문입니다. 반대로 단기 이익이 둔화되어도 현금흐름과 수주, 재투자 효율이 개선된다면 시장이 미래 성장을 먼저 평가할 가능성도 있습니다.

이번 분석의 결론은 “실적이 좋아도 주가는 오를 수 있다”는 원론이 아닙니다. 실적이 개선된 종목을 실제로 쭉 뽑아보면, 1,834개 중 191개가 주가 하락 상태였고, 엄격한 기준에서도 62개가 남았습니다. 따라서 다음 질문은 ‘실적이 좋아졌나?’가 아니라 ‘이 62개 중 어떤 종목의 이익이 현금으로 이어지고, 어떤 종목이 기저효과나 운전자본 때문에 착시를 보이는가?’가 되어야 합니다.

후속 분석의 우선순위도 분명합니다.

  • SK하이닉스·삼성전기처럼 규모가 큰 종목: 산업 사이클과 기대 밸류에이션이 얼마나 낮아졌는지 확인합니다.
  • 신세계처럼 현금전환율이 100%를 웃도는 종목: 실적 대비 주가 하락의 원인이 소비 경기, 유통 업황, 배수 축소인지 확인합니다.
  • 성호전자·에스에이엠티·와이지-원처럼 현금전환율이 음수인 종목: 매출채권·재고·일회성 이익을 먼저 확인합니다.

즉, 이 글의 스크리닝 결과는 매수 목록이 아니라 검증 순서가 붙은 후보 목록입니다. 다음 분기에도 영업현금흐름과 이익이 함께 유지되는지, EPS와 주식 수가 같은 방향인지, PER이 실적 개선을 이미 반영했는지를 다시 대조해야 합니다.

이 글은 투자 판단을 위한 분석 방법을 설명하며, 특정 종목의 매수·매도를 권유하지 않습니다.

외국인 순매수 종목을 따라 사도 될까? 실제 데이터로 확인한 수급의 함정

외국인 수급과 주가 흐름을 분석하는 연구 공간

외국인 순매수 상위 종목은 많은 투자자가 참고하는 대표적인 수급 지표입니다. 하지만 외국인이 많이 샀다는 사실만으로 다음 상승을 기대해도 될까요? 순매수는 강력한 정보일 수 있지만, 매수 기간·거래대금·다른 투자자 수급·이미 진행된 주가 상승을 함께 보지 않으면 신호를 잘못 해석하기 쉽습니다.

이 글에서는 퀀티랩이 수집한 일별 투자자 매매와 주가 데이터를 이용해 2026년 8월 7일부터 9월 4일까지 최근 20거래일을 분석했습니다. 분석 대상은 해당 기간 데이터가 15거래일 이상 존재하는 종목 중 외국인 순매수 금액이 가장 큰 5개 종목입니다.

최근 20거래일 외국인 순매수와 같은 기간 주가 수익률

투자자별 매매 금액은 순매수 기준으로 집계했습니다. 금액은 억 원 단위이며, 주가 수익률은 분석 구간의 첫 종가와 마지막 종가를 비교한 단순 수익률입니다. 최대낙폭은 같은 구간 안에서 종가 기준 누적수익률이 고점 대비 얼마나 하락했는지를 계산한 값입니다.

순위종목외국인 순매수매수 우위 일수주가 수익률최대낙폭
1우리금융지주(316140)4,004억9일-4.6%-9.3%
2한미반도체(042700)1,840억15일+19.6%-8.7%
3실리콘투(257720)1,791억11일+22.1%-11.4%
4한국금융지주(071050)1,737억19일+0.4%-10.2%
5파마리서치(214450)1,685억17일+2.1%-17.4%

결과는 단순합니다. 외국인 순매수 상위 종목이라고 해서 모두 같은 방향으로 움직이지 않았습니다. 우리금융지주는 외국인 순매수 금액이 가장 컸지만 주가는 오히려 4.6% 하락했습니다. 반면 한미반도체와 실리콘투는 외국인 매수와 주가 상승이 함께 나타났습니다. 한국금융지주와 파마리서치는 외국인 매수 우위 일수가 많았지만 주가 상승폭은 제한적이었습니다.

순매수 금액이 큰 것과 매수가 지속되는 것은 다르다

섹션 제목: “순매수 금액이 큰 것과 매수가 지속되는 것은 다르다”

우리금융지주의 외국인 순매수는 4,004억 원으로 다른 종목보다 크게 나타났습니다. 그러나 9개 거래일만 매수 우위였고, 9월 3일 하루 외국인 순매수가 약 4,317억 원으로 기록되었습니다. 하루의 대규모 거래가 누적값을 크게 끌어올린 사례입니다.

이런 경우 누적 순매수만 보면 외국인이 꾸준히 매수했다고 착각할 수 있습니다. 따라서 다음 세 지표를 함께 확인해야 합니다.

  • 순매수 누적 금액
  • 순매수 우위 일수와 연속성
  • 최대 단일 거래일 순매수 금액이 전체 누적값에서 차지하는 비중

한 번의 블록성 거래나 지수 편입·편출 관련 거래가 전체 신호를 왜곡할 수 있기 때문입니다. 누적 금액이 크더라도 며칠에 걸쳐 반복된 매수인지, 특정 하루에 집중된 매수인지에 따라 해석은 달라져야 합니다.

다른 투자자의 매매 방향도 함께 봐야 한다

섹션 제목: “다른 투자자의 매매 방향도 함께 봐야 한다”

이번 구간에서 한미반도체는 외국인 순매수 1,840억 원과 함께 주가가 19.6% 상승했습니다. 하지만 기관은 약 2,303억 원 순매도했고 개인은 약 455억 원 순매수했습니다. 외국인 매수가 주가를 지지했지만, 기관의 반대 매매도 동시에 나타난 것입니다.

실리콘투는 외국인 순매수 1,791억 원, 주가 상승률 22.1%를 기록했지만 기관과 개인은 각각 약 645억 원, 1,119억 원을 순매도했습니다. 이런 패턴은 외국인 수급이 가격을 끌어올린 사례로 볼 수 있지만, 외국인 매수세가 약해지면 매수 주체가 빠르게 사라질 위험도 있습니다.

반대로 한국금융지주는 외국인 순매수 우위 일수가 19일로 가장 안정적이었지만, 기관은 약 63억 원, 개인은 약 1,653억 원 순매도했습니다. 그럼에도 주가 수익률은 0.4%에 그쳤습니다. 지속적인 외국인 매수가 있었지만 다른 매도 물량을 상쇄하는 데 대부분 사용되었을 가능성이 있습니다.

거래대금 대비 순매수 비율은 신호의 강도를 보여준다

섹션 제목: “거래대금 대비 순매수 비율은 신호의 강도를 보여준다”

절대 금액만 비교하면 대형주가 항상 상위에 오릅니다. 그래서 평균 거래대금 대비 외국인 누적 순매수 규모도 확인했습니다.

종목평균 일 거래대금외국인 순매수 / 20일 거래대금
우리금융지주약 899억 원22.3%
한미반도체약 1,182억 원7.8%
실리콘투약 971억 원9.2%
한국금융지주약 398억 원21.8%
파마리서치약 697억 원12.1%

우리금융지주와 한국금융지주는 평균 거래대금 대비 외국인 순매수 비중이 상대적으로 컸습니다. 그러나 우리금융지주의 주가가 하락했다는 점에서, 비율이 높다는 것만으로 상승을 보장할 수 없다는 사실도 확인됩니다. 매수 가격대와 매도 압력, 거래가 발생한 시점이 함께 중요합니다.

외국인 순매수를 따라가기 위한 조건

섹션 제목: “외국인 순매수를 따라가기 위한 조건”

외국인 순매수를 매매 신호로 활용하려면 최소한 다음 순서를 권합니다.

  1. 최근 20일과 60일의 누적 순매수 방향이 같은지 확인합니다.
  2. 순매수 우위 일수와 최대 단일 거래일 비중을 확인합니다.
  3. 외국인 순매수가 평균 거래대금의 어느 정도인지 계산합니다.
  4. 기관과 개인이 같은 방향인지, 반대 방향인지 구분합니다.
  5. 주가가 이미 단기 급등했는지와 최대낙폭을 확인합니다.
  6. 공매도 거래와 공매도 잔고가 매수 신호를 상쇄하지 않는지 살펴봅니다.

간단한 필터로 표현하면 다음과 같습니다.

signal = (
(foreign_net_20 > 0)
& (foreign_buy_days_20 >= 12)
& (foreign_net_20 / turnover_20 >= 0.05)
& (return_20 < 0.20)
)

이 조건은 매수 추천 공식이 아니라 수급의 지속성과 과열 여부를 함께 보려는 분석 예시입니다. 임계값은 시장과 투자 기간에 따라 다시 검증해야 합니다.

최근 20거래일 데이터에서 외국인 순매수와 주가 상승이 동시에 나타난 종목은 한미반도체와 실리콘투였습니다. 그러나 두 종목 모두 구간 중 최대낙폭이 각각 8.7%, 11.4% 발생했습니다. 수급이 좋았던 종목도 중간 변동성을 피할 수 없었다는 뜻입니다.

우리금융지주는 가장 큰 외국인 순매수 금액에도 주가가 하락했고, 한국금융지주는 외국인 매수 우위 일수가 가장 많았지만 거의 제자리였습니다. 따라서 외국인 수급은 매수 버튼을 누르게 하는 단독 신호라기보다, 주가·거래대금·다른 투자자 수급과 함께 사용하는 확인 신호에 가깝습니다.

외국인이 순매수한 종목을 따라 사는 전략은 단순하고 직관적이지만, 누적 금액만 보면 중요한 정보를 잃게 됩니다. 실제 분석에서는 매수의 지속성, 거래대금 대비 규모, 다른 투자자의 반대 매매, 이미 발생한 수익률과 최대낙폭을 함께 봐야 합니다.

이번 사례의 핵심은 외국인 순매수 상위라는 순위와 이후 주가 성과가 일치하지 않았다는 것입니다. 순매수는 관심 종목을 좁히는 유용한 출발점이지만, 최종 판단을 위해서는 수급이 가격을 실제로 지지하고 있는지, 그리고 그 흐름이 며칠의 이벤트가 아닌지 검증해야 합니다.

분석 기준일은 2026년 9월 4일이며, 데이터 집계 방식과 거래비용에 따라 결과가 달라질 수 있습니다. 이 글은 투자 판단을 위한 참고 자료이며 특정 종목의 매수·매도를 권유하지 않습니다.

ETF 상관계수만으로 분산효과를 판단하면 안 되는 이유

서로 다른 자산의 움직임과 상관관계를 표현한 연구 공간

ETF를 여러 개 담으면 포트폴리오가 자동으로 안전해질까요? 흔히 ETF 사이의 상관계수가 낮으면 분산효과가 크다고 설명합니다. 방향은 맞지만, 상관계수 하나만으로 실제 위험을 판단하기에는 부족합니다. 평소에는 서로 다르게 움직이던 자산도 시장 충격이 발생하면 함께 하락할 수 있기 때문입니다.

이 글에서는 상관계수의 의미와 한계를 살펴보고, ETF 포트폴리오를 구성할 때 함께 확인해야 할 지표를 정리합니다.

두 ETF의 수익률을 , 라고 할 때 피어슨 상관계수는 다음과 같이 계산합니다.

값이 1에 가까우면 같은 방향으로, -1에 가까우면 반대 방향으로 움직이는 경향이 있다는 뜻입니다. 0에 가까우면 선형적인 동조화가 뚜렷하지 않습니다.

문제는 이 값이 어떤 기간과 수익률 간격을 사용했는지에 따라 달라진다는 점입니다. 일간 수익률로 계산한 상관계수와 월간 수익률로 계산한 상관계수는 서로 다를 수 있습니다. 상승장, 하락장, 금리 변동기처럼 시장 국면을 나누면 결과가 더 크게 달라질 수 있습니다.

낮은 상관계수가 항상 낮은 위험은 아니다

섹션 제목: “낮은 상관계수가 항상 낮은 위험은 아니다”

포트폴리오의 분산은 각 자산의 변동성과 자산 사이의 공분산에 의해 결정됩니다.

따라서 상관계수는 중요한 요소이지만 전체가 아닙니다. 상관계수가 낮아도 한 자산의 변동성이 매우 크면 포트폴리오 위험이 커질 수 있습니다. 반대로 상관계수가 다소 높더라도 변동성이 낮고 비중이 적절하면 전체 변동성을 완화할 수 있습니다.

예를 들어 주식 ETF와 원자재 ETF를 섞었다고 해도, 두 상품의 가격 변동폭과 환율 민감도가 크게 다르면 단순 상관계수만으로 체감 위험을 설명하기 어렵습니다. ETF의 기초자산뿐 아니라 환헤지 여부, 선물 롤오버, 분배금 정책도 함께 봐야 합니다.

위기 때 상관관계가 높아지는 현상

섹션 제목: “위기 때 상관관계가 높아지는 현상”

평상시에는 서로 다른 자산군으로 보이던 상품이 급락장에서 동시에 하락하는 현상을 흔히 관찰할 수 있습니다. 투자자가 위험자산을 한꺼번에 줄이거나, 유동성이 낮은 자산부터 매도하기 때문입니다.

이런 현상을 확인하려면 전체 기간의 상관계수 하나보다 다음 결과를 나누어 보는 편이 낫습니다.

  • 전체 기간의 상관계수
  • 하락한 날만 추린 하방 상관계수
  • 최근 60일 또는 120일 이동 상관계수
  • 두 ETF가 같은 날 손실을 기록한 비율
  • 포트폴리오의 최대낙폭과 회복 기간

특히 하방 상관계수가 전체 상관계수보다 높다면, 평소에는 분산되어 보여도 손실이 커지는 시점에 함께 움직일 가능성을 경계해야 합니다.

ETF 분산효과를 확인하는 실전 순서

섹션 제목: “ETF 분산효과를 확인하는 실전 순서”

먼저 비교할 ETF의 총수익률 기준을 통일해야 합니다. 분배금을 제외한 가격 수익률만 비교하면 실제 투자자가 경험하는 결과와 차이가 생길 수 있습니다. 그다음 동일한 기간과 빈도의 수익률로 상관계수와 변동성을 계산합니다.

returns = prices.pct_change().dropna()
summary = returns[['etf_a', 'etf_b', 'etf_c']].agg(['mean', 'std'])
correlation = returns[['etf_a', 'etf_b', 'etf_c']].corr()
downside_correlation = returns[returns[['etf_a', 'etf_b', 'etf_c']].min(axis=1) < 0].corr()

마지막으로 동일한 비중을 가정한 포트폴리오 수익률을 계산하고, 월별 또는 분기별 리밸런싱을 적용해 결과가 어떻게 바뀌는지 확인합니다. 상관계수가 낮더라도 한 상품이 계속 상승해 비중이 커지면, 시간이 지나면서 포트폴리오의 위험 구조가 달라질 수 있습니다.

상관계수 외에 확인할 체크리스트

섹션 제목: “상관계수 외에 확인할 체크리스트”
  • 기초자산과 지역이 실제로 얼마나 겹치는가
  • 상위 보유종목의 중복 비중은 얼마인가
  • 환율과 환헤지 여부가 성과에 어떤 영향을 주는가
  • 하락장에서 동시 손실 빈도는 어느 정도인가
  • 최대낙폭과 회복 기간이 감당 가능한 수준인가
  • 거래량과 스프레드가 리밸런싱 비용을 키우지 않는가

ETF 이름이 다르거나 운용사가 달라도 상위 보유종목이 비슷하면 실질적인 분산효과는 작을 수 있습니다. 반대로 상관계수가 낮아 보이는 상품도 구조가 복잡하거나 거래비용이 크면 장기 보유에 적합하지 않을 수 있습니다.

상관계수는 ETF 포트폴리오를 분석하는 좋은 출발점이지만, 분산효과의 최종 답은 아닙니다. 기간과 수익률 빈도를 바꾸어도 결과가 유지되는지 확인하고, 하락장 상관관계·변동성·최대낙폭·보유종목 중복도를 함께 살펴야 합니다.

좋은 분산 포트폴리오는 단순히 서로 다른 이름의 ETF를 모은 포트폴리오가 아닙니다. 손실이 커지는 국면에서 위험이 어떻게 겹치는지 설명할 수 있는 포트폴리오에 가깝습니다.

이 글은 ETF와 포트폴리오 분석 방법을 설명하기 위한 자료이며, 특정 상품의 매수·매도를 권유하지 않습니다.

퀀티랩 Long-Term Trading (QL) 모델 개선 작업

퀀티랩 주식투자 대표 모델인 Quantylab Long-Term Trading (QL) 모델을 업데이트 했습니다. 기존 모델에 비해 다양한 시장지표 및 종목지표를 추가하고 레이블링을 조정하는 작업이었습니다.

Feature 수는 412개로 326개 시장지표 자질과 86개 종목지표 자질로 구성했습니다. 각종 지표에 Moving Average 등을 적용하여 자질 수는 부풀려진 면이 있습니다.

시장지표는 코스피/코스닥 지수, 해외 주식 시장 지수, 환율, 채권, 금리, 원자재, GSCI, 달러 지수, BDI, 필라델피아 반도체 지수, 미국시장 변동성 지수, MSCI 지수 등을 포함합니다. 종목지표는 종목 주가, 거래량, 시가총액, Bollinger Band, MACD, RSI, 수급, PER, PBR, ROE, 배당수익률, 기관/외국인/개인 수급, 공매도 비율, 대차잔고액 등을 포함합니다. 이들 시장지표 및 종목지표 자질들을 모아서 표준화 (Standardization) 했습니다.

레이블링은 수익성, 변동성, 거래규모 지표를 만들어 조합했습니다. 수익성 지표는 중장기 기간에서 종가의 변곡점을 찾아서 현재 종가와 다음 변곡점과의 차이를 기대 수익률로 삼았습니다. 변동성 지표는 변곡점 사이에서의 표준편차로 구했습니다. 거래규모 지표는 종목의 거래대금에 log를 취해 사용했습니다.

이렇게 자질과 레이블링을 마치고 적당히 심층신경망 레이어를 구성하여 학습했습니다. 중간에 이런저런 실수로 시행착오를 겪었지만 다 생략하고 결과를 바로 공유하려 합니다.

학습에는 2015~2019년 기간내의 데이터를 사용했습니다. 이렇게 학습한 모델로 2020년부터 현재까지 일단위로 종목 점수를 구하여 매수/매도를 판단해서 종가매매 백테스팅을 수행했습니다. 즉, 학습과 백테스팅 데이터가 겹쳐지지 않게하여 의미있는 백테스팅이 되도록 했습니다.

백테스팅

백테스팅 결과 2020년 부터 2021-09-17 까지의 평가 수익률은 +73.07%로 동기간 코스피 대비 30% 정도 높았습니다. QL 모델로 매수/매도를 판단한 내역은 다음과 같습니다.

날짜매매종목명단가수량수익률평가총액
2021-08-19매도현대자동차206,50058+20.41%173,831,949
2021-05-06매수LG전자151,50066177,219,388
2021-05-06매수SK케미칼256,00039177,220,888
2021-05-06매수LG화학938,00010177,222,386
2021-05-06매도포스코395,50051+103.87%177,223,793
2021-03-23매도현대모비스286,50049+40.79%172,520,635
2021-03-23매수셀트리온292,50034172,517,645
2021-03-23매수삼성전기185,00054172,519,136
2021-01-13매도삼성SDI754,00026+100.80%178,728,737
2021-01-08매도삼성전기193,000112+116.37%179,837,188
2020-11-16매도NAVER278,00055+53.17%148,783,070
2020-09-24매수SK텔레콤230,50043136,101,988
2020-09-24매수현대자동차171,50058136,103,475
2020-09-24매수케이티앤지80,400124136,104,967
2020-09-24매도셀트리온245,50261+51.06%136,106,463
2020-08-03매도LG화학635,00031+102.23%137,605,846
2020-07-24매수현대모비스203,50049131,218,600
2020-07-24매수포스코194,00051131,215,651
2020-07-24매수삼성SDI375,50026131,217,135
2020-07-24매도엔씨소프트802,00017+41.95%131,220,096
2020-06-29매도SK케미칼134,500163+120.49%128,438,310
2020-03-23매수삼성전기89,20011281,295,074
2020-03-23매도케이티앤지63,600108-31.24%81,296,573
2020-03-17매수SK케미칼61,00016385,736,761
2020-03-17매도현대자동차80,10084-32.12%85,738,252
2020-03-16매도삼성SDI253,00043+10.48%86,948,811
2020-03-16매도포스코162,00042-31.36%86,977,640
2020-03-16매수삼성전자48,90020486,945,828
2020-03-16매수셀트리온162,5226186,947,324
2020-03-13매도현대모비스171,50040-30.71%91,169,271
2020-01-03매수이마트122,5008199,845,350
2020-01-03매수NAVER181,5005599,846,838
2020-01-03매수케이티앤지92,50010899,848,336
2020-01-03매수삼성SDI229,0004399,849,834
2020-01-03매수엔씨소프트565,0001799,851,311
2020-01-02매수LG화학314,0003199,994,081
2020-01-02매수현대모비스247,5004099,995,541
2020-01-02매수현대자동차118,0008499,997,026
2020-01-02매수LG생활건강1,266,000799,992,752
2020-01-02매수포스코236,0004299,998,513

퀀티랩에서 매일 올라오는 QL 모델의 매매내역과 보유종목을 확인해 보세요.

퀀티랩 단타 모델 - 딥러닝으로 내일의 주가 방향을 예측하는게 가능할까?

기존의 퀀티랩 모델은 중/장기 투자를 목적으로 하는 딥러닝 모델입니다. 이 포스트에서는 데이트레이딩(일명 단타)를 위한 모델 구축에 대해 다룹니다.

이 글은 기계학습에 대한 기초 지식을 요합니다.

단타를 독려하는 것이 아니니 오해 없으셨으면 좋겠습니다.

우선 데이트레이딩에 대해 알아봅시다. 데이트레이딩에 대한 정의는 제각각이지만 대부분 다음 원칙을 가지고 있습니다.

  • 하루 안에서 모든 거래를 마친다. (오버나잇 하지 않는다.)
  • 종목을 발굴한다.
  • 현금을 많은 비중으로 둔다. (Ex. 90% 현금 보유)
  • 목표 수익률, 손절 라인을 설정한다. (1~2%의 낮은 손익률로 잡는다.)
  • 미수는 자제한다.
  • 장이 안좋을땐 관망한다.

데이트레이딩은 많은 지표들을 보고 종목을 발굴하고 하루동안 수십, 수백번의 매매를 하면서 수익을 내기위해 노력합니다. 매매를 위해 기술적 분석이 주로 사용되는데 기술적 분석 기법은 너무나도 다양해서 나열하기도 어렵습니다.

단타에서 주요 결정 사항 중 하나인 “어떤 종목을 노릴 것인가?”를 해결하기 위한 딥러닝 모델을 구축했습니다. 모델은 파이썬으로 구축했으며 사용한 프레임워크, 라이브러리는 다음과 같습니다.

  • TensorFlow 2.4 (with Keras)
  • Scikit-learn 0.22.1

학습데이터는 약 100개의 자질과 2.5M개의 인스턴스로 구성했습니다. 지도학습(Supervised Learning)으로 레이블(label)은 다음 거래일의 등락률의 sigmoid로 정했습니다. 그 수식은 다음과 같습니다.

y = sigmoid(next_close / today_close - 1)

자질들은 자세히 다루기 어렵지만 크게 다음 종류의 자질군으로 구성됩니다.

  • 종목 주가
  • 종목의 기본적 분석 지표
  • 종목의 기술적 분석 지표
  • 국내 주식 시장 지수
  • 해외 주식 시장 지수
  • 주요국 환율
  • 원자재 가격
  • … (기타 등등)

자질 값들의 스케일(Scale)이 달라서 Standardization 했습니다. 세 가지 스케일러(Scaler)를 시도해 봤는데 그 중에서 Robust Scaler를 채택했습니다.

신경망 아키텍처는 기본적인 Dense(Fully Connected) Layer를 다음과 같이 쌓았습니다.

model = tf.keras.models.Sequential([
tf.keras.layers.Dense(256, activation='linear'),
tf.keras.layers.Dense(128, activation='linear'),
tf.keras.layers.Dense(64, activation='linear'),
tf.keras.layers.Dense(1, activation='sigmoid'),
])

이렇게 마지막 레이어의 활성화 함수(Activation Function)을 Sigmoid로 정해서 0과 1사이의 값으로 Prediction 하도록 했습니다. 직관적으로는 Prediction 값이 0.5 이상(초과)이면 내일 오늘보다 주가가 오를 것이라 판단하는 것이고 0.5 이하(미만)이면 주가가 내릴 것이라 판단하는 것입니다.

이렇게 학습한 모델로 테스팅 데이터를 넣어서 내일의 주가 방향을 얼마나 잘 맞추는지 알아보았습니다. 테스팅 데이터는 20210101~20210305 동안의 인스턴스이며 당연히 학습 데이터에 없는 인스턴스들 입니다.

Prediction 값을 score라고 하겠습니다. score가 0.5, 0.6, 0.7, 0.8, 0.9 이상일 때의 Accuracy를 다음과 같이 확인했습니다.

  • score 0.5 이상: 313,319개 인스턴스에서 정확도 57.99%
  • score 0.6 이상: 51,390개 인스턴스에서 정확도 68.81%
  • score 0.7 이상: 10,962개 인스턴스에서 정확도 84.22%
  • score 0.8 이상: 3,864개 인스턴스에서 정확도 89.73%
  • score 0.9 이상: 113개 인스턴스에서 정확도 49.56%

1

Score가 마냥 높다고 정확도가 높아지는 것은 아니였습니다. 0.8 까지는 높아지다가 0.9 이상에서는 정확도가 오히려 급격하게 감소했습니다. 정확도가 가장 높은 범위를 찾아봤습니다.

Score 0.83 이상 0.835 미만의 295개 인스턴스에서 정확도 94.58%를 얻을 수 있었습니다.

2

여기에 포함된 Score Top 50 종목들은 다음과 같습니다.

동전주, 거래대금이 적은 종목은 제외(Filter Out)했습니다.

datenameclosescorediffratio_nextday
20200325삼강엠앤티2,3200.8350-0.43%
20200324E123,6500.83508.03%
20200325휴비스3,6250.83501.10%
20200325미창석유공업47,8500.83491.78%
20200409빙그레54,2000.8349-0.55%
20200323엘티씨5,1300.83498.38%
20200325갤럭시아머니트리1,9250.83490.78%
20200325한솔제지9,0000.83492.89%
20200325KC그린홀딩스2,5950.83495.97%
20200325이월드2,7300.834828.21%
20200325푸른기술5,9440.83475.82%
20200325신화인터텍1,6550.83478.76%
20200619아진엑스텍4,1230.83473.10%
20200325신세계건설16,4500.83478.81%
20200325애니플러스1,0300.83464.85%
20200323노랑풍선5,7200.83465.77%
20200325미래에셋생명2,5700.83469.14%
20200323유티아이7,0600.83467.51%
20200325스카이이앤엠1,5050.83451.33%
20200422코오롱생명과학41,1000.83453.53%
20200324디와이2,5000.83449.60%
20200325HSD엔진2,2200.83443.60%
20200325가온전선12,1000.83436.20%
20200325슈피겐코리아32,3000.8343-2.94%
20200323동국S&C1,1950.834310.88%
20200325케이씨티1,2100.83437.02%
20200325태림포장2,4550.83424.07%
20200325서플러스글로벌1,2500.83422.00%
20200325태웅4,2200.8342-1.66%
20200324노랑풍선6,0500.834210.74%
20200323일진다이아11,0000.834217.27%
20200324일진디스플1,8920.834111.89%
20200325하나마이크론3,7250.83416.58%
20200325파워넷2,2400.83414.69%
20200325홈캐스트2,4000.83403.12%
20200325유니온1,9400.83402.06%
20200325SCI평가정보1,4550.83404.12%
20200325우노앤컴퍼니2,5150.834029.82%
20200325화승알앤에이1,3000.83393.08%
20200324웨이브일렉트로8,5630.833914.56%
20200325잇츠한불9,5300.83398.60%
20200325파인디앤씨1,0000.83385.50%
20200323서연1,5550.833829.90%
20200323화신1,3900.83384.68%
20200325신도리코21,2000.83370.94%
20200323큐렉소2,4600.83376.71%
20200325휴스틸4,8050.83374.06%
20200325예림당1,7500.83379.71%
20200325빛샘전자3,2200.83376.21%
20200325정원엔시스1,0700.833714.02%

그럼 어제(20210304)의 상위 종목들 살펴보겠습니다.

datenameclosescorediffratio_nextday
20210304일양약품35,0000.6188-1.14%
20210304수산아이앤티28,5500.5753-5.43%
20210304대한그린파워1,4000.55327.50%
20210304진양산업4,3650.51960.46%
20210304이녹스11,0000.51742.27%
20210304인지컨트롤스18,6000.5040-3.23%
20210304웅진씽크빅2,6350.49853.04%
20210304세원셀론텍1,9950.4923-1.50%
20210304기가레인1,8250.4921-1.37%
20210304파루1,4500.49170.69%

최근 장이 안좋아서 그런지 Score 가장 높은게 0.6 정도입니다. 그럼 오늘 날짜의 Score 상위 종목에는 어떤 종목들이 있을까요?

datenameclosescore
20210305팬엔터테인먼트7,6700.8676
20210305풍강3,9900.8056
20210305중앙에너비스9,2000.5439
20210305플리토13,9000.5383
20210305한국주강1,7800.5381
20210305일양약품34,6000.5241
20210305극동유화3,4750.5151
20210305한일진공1,0400.5141
20210305인성정보2,3150.5056
20210305텔콘RF제약5,2700.4999

다음 거래일에 이 종목들이 어떤 움직임을 보일지 지켜보면 재미있을 것 같습니다.

어디까지나 투자는 본인이 결정하는 것입니다. 퀀티랩에서 제공하는 정보는 참고만 하시길 당부드립니다.

[2021-02-26] 딥러닝 모델 종목추천

퀀티랩 AI 주식 종목 랭킹 모델을 개선했습니다. 다양한 자질을 추가했고 학습 방식도 많이 변경했습니다. 백테스팅 결과 기존의 모델에 비해 더 나은 결과를 얻을 수 있었습니다.

특이 사항으로 거래 대금이 적은 종목에 약간의 패널티를 부여했습니다. 너무 거래가 적은 종목들은 피하자는 의도입니다.

개선한 모델의 2021년 2월 26일자 상위 랭크 종목들은 다음과 같습니다.

1

이들 중에 특히 주가가 많이 내려와 있는 KT&G, 한국전력이 눈에 뜁니다.

매일 업데이트 되는 랭킹 결과를 퀀티랩에서 확인하세요. 퀀티랩 AI 매매내역 페이지에서는 퀀티랩 AI의 수익률 차트, 현재 보유 종목, 매매 내역을 볼 수 있습니다.

요증 인플레이션 우려와 함께 미국 금리 인상이 앞당겨질 수 있다는 추측이 많아서 주식 시장이 좋지 않습니다. 잘 대응하셔서 성투하세요.

어디까지나 투자는 본인이 결정하는 것입니다. 퀀티랩에서 제공하는 정보는 참고만 하시길 당부드립니다.