주봉 MACD 골든크로스란? 6·13·5 설정으로 ETF 추세 읽는 법

이미지
 ETF를 살 때 가장 고민되는 건 “언제 사야 하나” 입니다. 좋은 ETF를 골랐어도 하락이 이어지는 중간에 사면 한참을 버텨야 합니다. 그래서 저는 매수 후보를 고를 때 주봉 MACD 골든크로스 를 확인합니다. 이 글에서는 MACD가 무엇인지, 왜 일봉이 아니라 주봉을 보는지, 그리고 왜 기본값(12·26·9) 대신 6·13·5를 쓰는지 정리해 보겠습니다. 1. MACD는 “두 평균선의 거리”입니다 MACD는 이름이 어렵지만 원리는 간단합니다. 짧은 평균선에서 긴 평균선을 빼서 , 두 선이 얼마나 벌어져 있는지 보는 지표입니다. MACD선 = 짧은 지수이동평균(EMA) − 긴 지수이동평균 시그널선 = MACD선을 다시 평균 낸 선 히스토그램 = MACD선 − 시그널선 (막대로 표시) 최근 가격이 오르면 짧은 평균선이 긴 평균선보다 먼저 올라가서 MACD가 커집니다. 반대로 내리면 MACD가 작아집니다. 즉 MACD는 추세의 힘이 세지는지, 약해지는지 를 보여주는 지표입니다. 2. 골든크로스는 “힘이 다시 붙기 시작했다”는 신호 MACD선이 시그널선을 아래에서 위로 뚫고 올라가는 순간 을 골든크로스라고 합니다. 히스토그램으로 보면 막대가 0 아래(음수)에서 0 위(양수)로 바뀌는 지점입니다. 쉬운 비유를 들면 이렇습니다. 자동차가 느려지다가 다시 가속 페달을 밟기 시작한 순간입니다. 아직 속도가 빠르지는 않지만, 방향이 바뀌었다는 뜻이죠. 반대로 위에서 아래로 뚫고 내려가면 데드크로스 라고 하고, 힘이 빠지기 시작했다는 신호로 봅니다. 3. 왜 일봉이 아니라 주봉인가 일봉(하루 단위) MACD는 신호가 자주 나옵니다. 하루 이틀 오르면 골든크로스, 다시 이틀 내리면 데드크로스가 나오는 식이라, 신호를 따라가다 보면 사고팔기만 반복하기 쉽습니다. 주봉(일주일 단위)은 일주일치 움직임을 한 막대로 묶기 때문에 자잘한 흔들림이 걸러집니다 . 신호는 드물지만, 한 번 나오면 방향이 비교적 오래 이어지는 편입니다. ETF처럼 여러...

6편. 실전 자동화 2: 특정 키워드 뉴스 기사 매일 아침 수집하기 (웹 크롤링 실전 코드)

키워드 뉴스 매일 아침 수집 - 실전 자동화 2편 · 웹 크롤링




매일 아침 출근길이나 업무 시작 전, 관심 있는 비즈니스 키워드나 경쟁사의 최신 뉴스를 확인하는 것은 필수적입니다. 하지만 매번 포털 사이트에 접속해 검색어를 입력하고, 수많은 기사 중 진짜 필요한 정보만 골라내는 과정은 꽤 번거롭습니다. 지난 글에서 웹 크롤링의 기본 개념과 윤리적 주의사항을 가볍게 살펴보았다면, 오늘은 파이썬(Python)을 이용해 실제로 뉴스 기사 제목과 링크를 수집하는 '나만의 뉴스 수집 봇' 코드를 직접 작성해 보겠습니다.

복잡한 프로그램 설치 없이, 우리가 2편에서 세팅했던 리플릿(Replit) 브라우저 화면만 켜두시면 됩니다. 비전공자도 따라 할 수 있도록 가장 직관적인 두 가지 도구 상자(Requests, BeautifulSoup)를 활용하여 뼈대부터 하나씩 조립해 보겠습니다.

1단계: 크롤링 도구 상자 불러오기

파이썬에서 웹 크롤링을 할 때는 두 가지 라이브러리가 환상의 짝꿍으로 쓰입니다. 인터넷 브라우저처럼 특정 웹 주소(URL)에 접속해 데이터를 가져오는 '접속 담당' requests와, 가져온 복잡한 HTML 문서 안에서 우리가 원하는 글자만 예쁘게 다듬어주는 '추출 담당' BeautifulSoup입니다.

리플릿의 빈 화면에 아래 코드를 입력해 도구를 불러옵니다.

import requests from bs4 import BeautifulSoup

2단계: 사람처럼 위장하여 접속하기 (가장 중요)

제가 처음 크롤링을 시도했을 때 가장 당황했던 부분입니다. 완벽하게 코드를 짰다고 생각했는데, 빈 화면만 나오거나 에러가 났습니다. 이유는 대형 포털 사이트들이 로봇(매크로)의 무단 접근을 막아두었기 때문입니다.

이를 해결하려면 컴퓨터에게 "나 로봇 아니고, 크롬 브라우저 쓰는 진짜 사람이야!"라고 신분증을 쥐여주어야 합니다. 이것을 '헤더(Headers)' 설정이라고 합니다.

우리가 검색할 키워드와 포털 뉴스의 주소

search_word = "파이썬 자동화" url = f"https://search.naver.com/search.naver?where=news&query={search_word}"

사람인 척 위장하는 신분증 (User-Agent)

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36"}

URL에 신분증을 들고 접속(get) 요청하기

response = requests.get(url, headers=headers)

3단계: 복잡한 HTML에서 원하는 기사 제목만 찾아내기

response 안에는 해당 웹페이지의 모든 정보가 복잡한 텍스트 덩어리로 들어있습니다. 이제 BeautifulSoup을 시켜서 이 덩어리를 분석 가능한 상태로 요리한 뒤, 기사 제목에 해당하는 부분만 쏙쏙 뽑아오겠습니다.

가져온 텍스트를 BeautifulSoup으로 요리하기

soup = BeautifulSoup(response.text, "html.parser")

'뉴스 기사 제목'이 담긴 HTML 태그 덩어리들을 모두 찾기 (class 이름 활용)

articles = soup.find_all("a", class_="news_tit")

여기서 쓰인 news_tit은 해당 포털 사이트가 기사 제목에 붙여둔 고유한 이름표(클래스)입니다. 사이트마다 이 이름표가 다르므로, 나중에 다른 사이트를 크롤링하고 싶다면 크롬 브라우저의 '개발자 도구(F12)'를 열어 이름표를 직접 확인하는 응용이 필요합니다.

4단계: 수집한 기사 반복문으로 깔끔하게 출력하기

이제 articles라는 상자 안에는 여러 개의 기사 제목과 링크 정보가 들어있습니다. 지난 4편에서 배운 for 반복문을 사용해 데이터를 하나씩 꺼내 화면에 깔끔하게 출력해 보겠습니다.

for article in articles: # 기사의 실제 텍스트 제목만 추출 title = article.get_text() # 기사를 클릭했을 때 이동하는 실제 주소(링크) 추출 link = article.attrs["href"]

print("제목: " + title)
print("링크: " + link)
print("-" * 30)

상단의 'Run' 버튼을 누르면, 까만 콘솔 창에 내가 설정한 키워드의 최신 뉴스 제목과 링크가 단 1초 만에 좌르륵 쏟아지는 마법 같은 결과를 보실 수 있습니다.

초보자가 흔히 겪는 한계와 주의사항

코드가 정상적으로 작동하더라도, 다음과 같은 한계에 부딪힐 수 있습니다.

  1. 계속 빈 내용이 나와요: requests 도구는 화면을 띄워주는 자바스크립트(JavaScript) 기반의 동적 페이지는 잘 읽지 못합니다. 스크롤을 내려야만 글이 보이는 사이트는 나중에 '셀레늄(Selenium)'이라는 조금 더 고급 브라우저 제어 도구를 배워야 해결할 수 있습니다.

  2. 서버에 부담 주지 않기: for 문으로 수천 개의 웹페이지를 단 1초 만에 긁어오려 하면 내 IP가 차단당할 수 있습니다. 반드시 time.sleep(2) 같은 명령어를 중간에 넣어 2초씩 쉬어가며 수집하는 '매너'를 지켜야 합니다.

  3. 무단 배포 금지: 이렇게 수집한 기사 제목이나 링크를 혼자 확인하는 것은 문제없지만, 내용을 통째로 복사해 내 블로그나 웹사이트에 마치 내 글처럼 올리면 저작권법에 위배됩니다. 철저히 '개인적인 데이터 수집 및 분석 용도'로만 사용하시길 권장합니다.

핵심 요약

  • 파이썬 크롤링의 기초는 웹에 접속하는 requests와 데이터를 추출하는 BeautifulSoup의 조합입니다.

  • 포털 사이트 크롤링 시 차단을 피하려면 반드시 사람의 브라우저 환경을 흉내 내는 Headers 설정을 추가해야 합니다.

  • BeautifulSoup의 find_all 명령어로 원하는 데이터의 이름표(클래스)를 찾아내고, for 반복문으로 결과물을 깔끔하게 출력할 수 있습니다.

수집된 기사들을 까만 화면(콘솔)으로만 보니 어딘가 아쉽지 않으신가요? 다음 7편에서는 오늘 긁어온 뉴스 기사 데이터를 보기 좋게 엑셀(Excel) 표로 깔끔하게 정리하여 내 컴퓨터에 자동 저장하는 '수집한 데이터 표로 정리하기 (Pandas 실전)' 과정을 단계별로 알아보겠습니다.

오늘 실습 코드를 실행해 보시면서 에러가 나거나, 내가 원하는 특정 사이트의 이름표를 찾는 방법이 궁금하시다면 언제든 편하게 댓글로 질문 남겨주세요!

#파이썬웹크롤링 #뉴스자동수집 #직장인파이썬 #코딩독학가이드 #BeautifulSoup #파이썬자동화코드 #애드센스승인포스팅

댓글

이 블로그의 인기 게시물

[파이썬 주식 자동매매 1편]

파이썬 주식 자동매매 4편

파이썬 주식 자동매매 3편