글

전자공시(DART)란? 초보자가 먼저 볼 공시 5가지와 보는 법

이미지
전자공시(DART)란 상장회사가 법에 따라 내야 하는 보고서와 중요한 소식을 누구나 무료로 볼 수 있게 모아 둔 금융감독원의 온라인 공시 시스템입니다. 뉴스 기사나 커뮤니티 글은 결국 이 공시를 누군가 한 번 옮겨 적은 것이라, 원문을 직접 볼 줄 알면 정보가 왜곡될 틈이 줄어듭니다. 처음 들어가면 메뉴도 많고 보고서 이름도 낯설어서 막막한데, 초보자는 다섯 가지만 먼저 익히면 충분합니다. 1. 공시는 왜 봐야 할까? 주가는 회사에 대한 정보가 나올 때마다 움직입니다. 그런데 그 정보의 '공식 원본'은 대부분 공시입니다. 기사 제목이 "대규모 계약 체결"이라고 해도, 공시를 열어 보면 계약 금액이 매출액의 몇 퍼센트인지, 계약 기간이 몇 년인지까지 나와 있습니다. 같은 소식이라도 숫자를 직접 보면 판단이 달라지는 경우가 많습니다. 비유하자면 공시는 회사가 직접 쓴 '공식 알림장'이고, 기사는 그 알림장을 읽고 쓴 '후기'입니다. 후기도 도움이 되지만, 중요한 결정을 할 때는 알림장을 직접 읽는 편이 안전합니다. 2. DART 공시 유형 한눈에 보기 DART(dart.fss.or.kr)의 공시 통합검색 화면에서는 공시를 정기공시, 주요사항보고, 발행공시, 지분공시, 기타공시, 외부감사관련, 펀드공시, 자산유동화, 거래소공시, 공정위공시로 나눠 고를 수 있습니다. 초보자가 자주 보게 되는 것만 추리면 아래와 같습니다. 공시 유형 대표 보고서 이럴 때 확인 정기공시 사업보고서, 반기보고서, 분기보고서 회사가 무슨 일로 돈을 버는지, 실적이 어떤지 주요사항보고 주요사항보고서 (유상증자, 자기주식 취득 결정 등) 주식 수나 회사 구조가 바뀌는 큰 결정 발행공시 증권신고서 새 주식이나 채권을 발행할 때 조건 지분공시 주식등의대량보유상황보고서, 임원·주요주주 소유상황보고서 누가 지분을 사고팔았는지 거래소공시 수시공시, 공정공시 계약 체결, 실적 잠정치 등 그때그때 나오는 소식 3. 초보자가 먼저 볼 ...

파이썬 yfinance로 ETF 주봉 MACD 직접 계산하기 (6·13·5 골든크로스 찾는 코드)

이미지
이 블로그에서 매주 올리는 ETF 주봉 MACD 점검 글은 ETF 24개의 주간 종가로 MACD를 직접 계산해서 만듭니다. 이번 글에서는 그 계산을 파이썬 코드 30줄 정도로 누구나 직접 해 볼 수 있게 공개합니다. 설정값은 주봉 MACD 6·13·5 글에서 설명한 값을 그대로 씁니다. 1. 준비: yfinance 설치 주간 종가는 야후 파이낸스 데이터를 받아 주는 yfinance 라이브러리로 가져옵니다. 국내 ETF는 종목코드 뒤에 .KS 를 붙이면 됩니다(예: KODEX 200 → 069500.KS ). pip install yfinance pandas 2. MACD 계산 원리 (코드로 옮기기 전에) 값 계산 pandas 코드 빠른 평균 주간 종가의 6주 지수이동평균 close.ewm(span=6, adjust=False).mean() 느린 평균 주간 종가의 13주 지수이동평균 close.ewm(span=13, adjust=False).mean() MACD 빠른 평균 − 느린 평균 ema6 - ema13 시그널 MACD의 5주 지수이동평균 macd.ewm(span=5, adjust=False).mean() adjust=False 를 넣으면 “오늘 값 × 2/(n+1) + 어제 평균 × (1 − 2/(n+1))”이라는 우리가 아는 지수이동평균 공식과 같아집니다. 증권사 차트와 비교할 때 이 옵션이 빠지면 값이 조금씩 달라질 수 있습니다. 3. 전체 코드: 여러 ETF를 한 번에 점검 import yfinance as yf import pandas as pd ETFS = { "069500.KS": "KODEX 200", "091160.KS": "KODEX 반도체", "266420.KS": "KODEX 헬스케어", "360750.KS": "TIGER 미국S&P5...

손절 원칙 세우는 법: 손실을 작게 끊어야 하는 이유와 3가지 기준

이미지
주식에서 가장 어려운 버튼은 매수 버튼이 아니라 손절(손실을 확정하고 파는 것) 버튼입니다. 머리로는 알아도 막상 −10%가 찍힌 계좌를 보면 “조금만 기다리면 오르겠지”라는 생각이 먼저 듭니다. 그렇게 버티다 −30%, −50%가 된 경험이 한 번쯤은 있을 겁니다. 이 글에서는 손절이 왜 필요한지 숫자로 확인하고, 초보자가 지킬 수 있는 손절 기준을 세우는 방법을 정리합니다. 1. 숫자로 보는 손절의 이유 손실이 커질수록 원금을 회복하는 데 필요한 수익률은 훨씬 더 빠르게 커집니다. 손실률 원금 회복에 필요한 수익률 −10% +11.1% −20% +25% −30% +42.9% −50% +100% 100만 원이 50만 원이 되면, 다시 100만 원이 되려면 50만 원이 두 배가 되어야 합니다. 작은 손실은 회복이 가능하지만 큰 손실은 회복 자체가 어려워집니다. 손절은 “지는 것”이 아니라 다시 싸울 수 있는 돈을 지키는 것 입니다. 2. 손절이 어려운 이유 사람은 같은 금액이라도 얻는 기쁨보다 잃는 고통을 더 크게 느낍니다. 그래서 손실을 확정하는 순간을 최대한 미루고 싶어집니다. 또 “내가 산 가격”이 기준점으로 머리에 박혀서, 그 가격으로 돌아오기 전에는 팔기 싫어집니다. 이런 심리는 의지로 이기기 어렵기 때문에, 사기 전에 규칙으로 정해 두는 것 이 유일하게 효과적인 방법입니다. 3. 손절 기준 세우는 세 가지 방법 ① 비율 기준 매수가 대비 일정 비율(예: −8%, −10%)이 되면 팝니다. 가장 단순하고 지키기 쉬운 방법이라 처음 시작할 때 권합니다. 다만 평소에도 하루 5~6%씩 움직이는 종목에 −5%를 걸면 정상적인 흔들림에도 계속 손절하게 되니, 종목의 평소 변동 폭을 고려해야 합니다. ② 차트 기준 “20일선을 종가로 깨면”, “직전 저점을 아래로 뚫으면”처럼 차트의 의미 있는 지점을 기준으로 정합니다. 매수할 때 근거로 삼았던 지지선이 무너지면, 산 이유가 사라졌다고 보는 것입니다. 이동평균선 지지·저항은 차트 기초 시리즈에서 다뤘습니다. ...

10편. 실전 자동화 6: 공공데이터 API + 텔레그램으로 관심 종목 종가 매일 받기

이미지
8편에서 텔레그램 봇으로 메시지를 보내는 법을, 9편 에서 공공데이터포털 오픈 API로 주식 시세를 받는 법을 배웠습니다. 이번 10편에서는 두 가지를 하나로 합쳐서 관심 종목의 전날 종가와 등락률을 매일 텔레그램으로 받아 보는 봇 을 완성합니다. 코드 한 파일이면 됩니다. 1. 완성하면 이런 메시지가 옵니다 📈 관심 종목 종가 (10/29 기준) 삼성전자 71,200원 (+1.42%) SK하이닉스 185,000원 (-0.54%) NAVER 198,500원 (+0.25%) 위 숫자는 화면 모양을 보여 주기 위한 예시입니다. 실제로는 API에서 받은 값이 그대로 들어갑니다. 2. 준비물 3가지 준비물 어디서 참고 글 공공데이터포털 인증키(Decoding) 금융위원회_주식시세정보 활용신청 9편 텔레그램 봇 토큰 텔레그램 BotFather 8편 내 채팅방 chat_id 봇에게 메시지를 보낸 뒤 getUpdates 주소로 확인 - 3. 언제 실행해야 할까? (중요) 9편에서 설명했듯 이 API는 실시간이 아니라 기준일 다음 영업일 오후 1시 이후 에 데이터가 갱신됩니다. 그래서 아침 8시에 돌리면 어제 종가가 아니라 그 전 영업일 종가가 옵니다. 매일 저녁(예: 오후 6시) 에 실행하면 전날 종가를 안정적으로 받을 수 있습니다. 코드는 날짜를 직접 정하지 않고 “최근 10일 데이터 중 가장 최신 날짜”를 고르도록 만들어서, 주말이나 공휴일에도 오류 없이 돌아갑니다. 4. 전체 코드 import requests from datetime import datetime, timedelta SERVICE_KEY = "공공데이터포털_Decoding_인증키" BOT_TOKEN = "텔레그램_봇_토큰" CHAT_ID = "내_chat_id" API_URL = "https://apis.data.go.kr/1160100/GetStockSecuritiesInfoService_V2/ge...

분할매수 방법: 물타기와 다른 분할매수 계획 세우는 5단계

이미지
“이 가격이면 싸다” 싶어서 가진 돈을 한 번에 넣었는데, 다음 날부터 주가가 더 내려가 손도 못 쓰고 지켜본 경험이 있다면 분할매수 가 답이 될 수 있습니다. 분할매수는 살 돈을 여러 번에 나눠 사는 방법입니다. 단순해 보이지만 계획 없이 하면 “물타기”가 되어 오히려 손실을 키웁니다. 이 글에서는 분할매수가 왜 효과가 있는지, 그리고 실제로 계획을 세우는 순서를 정리합니다. 1. 분할매수가 필요한 이유 바닥이 어디인지 정확히 맞히는 건 누구에게도 불가능합니다. 한 번에 모두 사면 그 하루의 가격에 결과가 전부 걸립니다. 나눠 사면 여러 가격대에서 사게 되어 평균 매수가가 한쪽 끝으로 치우치지 않습니다. 또 하나 중요한 효과는 마음의 여유 입니다. 현금이 남아 있으면 주가가 떨어져도 “다음 차례에 더 싸게 살 수 있다”고 생각할 수 있어, 공포에 팔아버리는 실수를 줄여줍니다. 투자 심리에 대해서는 투자 성공을 가로막는 심리적 함정 글에서 더 자세히 다뤘습니다. 2. 분할매수와 물타기의 차이 구분 분할매수 물타기 계획 시점 사기 전에 미리 정함 떨어진 뒤에 즉흥적으로 결정 총 투자금 처음부터 상한이 정해져 있음 떨어질 때마다 계속 늘어남 중단 조건 “이렇게 되면 멈춘다”가 있음 없음, 본전 생각이 기준 겉모습은 둘 다 “떨어질 때 더 산다”로 같지만, 핵심 차이는 사기 전에 계획이 있었느냐 입니다. 3. 분할매수 계획 세우는 5단계 ① 이 종목에 넣을 최대 금액 정하기 먼저 “이 종목에는 최대 얼마까지만”을 정합니다. 전체 투자금에서 한 종목 비중이 지나치게 커지지 않도록, 포트폴리오 전체 그림 안에서 정하는 게 좋습니다. 비중 잡는 법은 포트폴리오 구성과 리밸런싱 글을 참고하세요. ② 몇 번에 나눌지 정하기 보통 3회가 관리하기 쉽습니다. 너무 잘게 나누면 매번 판단해야 할 일이 많아지고, 2회는 분산 효과가 작습니다. ③ 비율 정하기 가장 단순한 방법은 똑같이 나누는 것(예: 3분의 1씩)입니다. 첫 매수를 조금 적게 하고 뒤로 갈수록 늘리는 방법(예:...

주봉 MACD로 점검한 ETF 24개 (10월 5주차): 인도·차이나전기차 골든크로스, KODEX 200은 하락 힘 축소

이미지
주요 ETF 24개의 주봉 MACD(6·13·5)를 직접 계산해 기록하는 두 번째 주입니다. 이번 주(10월 26일~30일) 결론을 한 줄로 요약하면 “골든크로스는 KODEX 인도Nifty50·TIGER 차이나전기차 2개, 국내 대형주 ETF는 데드크로스 이후 처음으로 하락 힘(히스토그램)이 줄었다” 입니다. 지난주와 비교하면 시그널선 위에 있는 ETF가 2개(헬스케어·바이오)에서 2개(인도·차이나전기차)로 숫자는 같지만 종목이 완전히 바뀌었습니다. 지난주 유일한 골든크로스였던 KODEX 헬스케어는 1주 만에 다시 데드크로스가 났습니다. 그리고 24개 모두 MACD가 아직 0선 아래입니다. 설정값 6·13·5의 뜻과 읽는 법은 주봉 MACD 골든크로스란? 6·13·5 설정으로 ETF 추세 읽는 법 에, 지난주 결과는 주봉 MACD로 점검한 ETF 24개 (10월 4주차) 에 있습니다. 1. 점검 방법 데이터: 각 ETF의 주간 종가(Yahoo Finance), 2026년 10월 30일(금) 종가까지 약 3년치 지표: MACD = 6주 지수이동평균 − 13주 지수이동평균, 시그널 = MACD의 5주 지수이동평균, 히스토그램 = MACD − 시그널 판정: MACD가 시그널선을 아래에서 위로 넘으면 골든크로스, 위에서 아래로 내려가면 데드크로스 ‘간격 벌어짐/줄어듦’: 히스토그램 막대 길이를 지난주와 비교한 것 2. 이번 주 전체 결과 (24개) ETF (코드) 10/30 종가 4주 등락 주봉 MACD 상태 KODEX 인도Nifty50 (453810) 10,810원 +1.7% 골든크로스 (이번 주) TIGER 차이나전기차SOLACTIVE (371460) 8,245원 −7.5% 골든크로스 (이번 주) KODEX 헬스케어 (266420) 14,960원 −7.7% 데드크로스 (이번 주, 골든 1주 만에) KODEX 바이오 (244580) 7,230원 −12.9% 데드크로스 (이번 주) KODEX 200 (069500) 90,800원 −19.0% 데드크로스 (10...

RSI 보는 법: 과매수 70·과매도 30, 그대로 믿으면 안 되는 이유

이미지
차트 아래쪽에 0부터 100까지 오르내리는 선이 하나 있다면 대부분 RSI 입니다. “RSI 70 넘었으니 과열이다”, “30 밑이면 바닥이다”라는 말을 자주 듣지만, 이 숫자를 그대로 믿고 사고팔면 오히려 손해를 보기 쉽습니다. 이 글에서는 RSI가 무엇을 재는지, 70과 30을 어떻게 해석해야 하는지, 그리고 초보자가 실전에서 쓰기 좋은 방법을 정리합니다. 1. RSI는 “최근 상승의 힘”을 재는 온도계 RSI(Relative Strength Index, 상대강도지수)는 1978년 J. 웰스 와일더가 만든 지표입니다. 일정 기간 동안 오른 폭과 내린 폭 중 오른 폭이 얼마나 컸는지 를 0~100 사이 숫자로 바꿔 보여줍니다. 계산 원리는 이렇습니다. 보통 14일 동안 오른 날의 상승폭 평균과 내린 날의 하락폭 평균을 구한 뒤, 상승폭 평균 ÷ 하락폭 평균을 RS라고 부릅니다. 그리고 RSI = 100 − 100 ÷ (1 + RS)로 계산합니다. 공식을 외울 필요는 없고, 오른 힘이 셀수록 100에 가까워지고 내린 힘이 셀수록 0에 가까워진다 는 것만 기억하면 됩니다. 체온계에 비유하면 50이 평온한 상태, 70 이상은 열이 많이 오른 상태, 30 이하는 몸이 많이 식은 상태입니다. 2. 70과 30, 그대로 믿으면 안 되는 이유 구간 흔히 부르는 이름 실제 의미 70 이상 과매수 최근 상승이 하락보다 훨씬 강했다 30~70 중립 상승과 하락의 힘이 비슷하다 30 이하 과매도 최근 하락이 상승보다 훨씬 강했다 문제는 “과매수”라는 이름 때문에 70을 넘으면 곧 떨어질 거라고 생각하기 쉽다는 점입니다. 실제로 강한 상승 추세에서는 RSI가 70 위에서 몇 주씩 머무르며 주가가 계속 오르는 일이 흔합니다. 70을 넘자마자 팔면 큰 상승을 놓치게 됩니다. 반대로 강한 하락 추세에서는 30 아래에서 더 떨어지는 경우도 많습니다. 그래서 RSI 숫자는 “지금 방향이 바뀐다”는 신호가 아니라 “지금 한쪽으로 힘이 많이 쏠려 있다”는 상태 표시 로 읽는 게 정확합니다. ...