글

주봉 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처럼 여러...

8편. 실전 자동화 4: 파이썬 오픈 API와 메신저 연동하여 나만의 텔레그램 알림 봇 만들기

이미지
지난 7편까지 우리는 웹 크롤링을 통해 매일 아침 내가 원하는 뉴스를 자동으로 수집하고, 이를 깔끔하게 엑셀 표로 저장하는 데 성공했습니다.  하지만 여기에는 한 가지 치명적인 단점이 있습니다. 결국 그 엑셀 파일을 확인하려면 내가 직접 컴퓨터 앞에 앉아 폴더를 열고 파일을 더블 클릭해야 한다는 점입니다. 저 역시 초창기에 주식 시황과 키워드 뉴스를 파이썬으로 엑셀에 모아두기만 하다가, 정작 바쁜 출근길에 엑셀을 열어보지 못해 중요한 타이밍을 놓친 경험이 많습니다.  진정한 업무 자동화는 '내가 찾아가는 것'이 아니라 '데이터가 나에게 알아서 찾아오게 만드는 것'입니다. 오늘은 우리가 늘 손에 쥐고 있는 스마트폰 메신저로 파이썬이 스스로 말을 걸게 만드는 마법, 오픈 API를 활용한 텔레그램 알림 봇 연동 방법에 대해 단계별로 알아보겠습니다. 오픈 API와 텔레그램 메신저의 완벽한 조화 갑자기 '오픈 API(Open API)'라는 용어가 나와서 당황하셨을 수도 있습니다. API는 쉽게 말해 식당의 '점원'과 같습니다.  주방(텔레그램 서버)에 직접 들어가 요리를 할 필요 없이, 점원(API)에게 "내 친구에게 이 메시지 좀 배달해 줘!"라고 주문서(코드)만 넘기면 알아서 처리해 주는 시스템입니다. 수많은 메신저 중에서도 굳이 텔레그램(Telegram)을 사용하는 이유는 명확합니다.  카카오톡이나 라인은 비전공자가 봇을 만들고 권한을 승인받는 과정이 매우 복잡하고 까다롭습니다. 반면 텔레그램은 개발자 친화적이어서 단 1분이면 무료로 나만의 알림 봇을 만들고 파이썬과 즉시 연동할 수 있습니다. 1단계: 텔레그램에서 나만의 봇(Bot) 생성하기 파이썬 코드를 작성하기 전에, 먼저 텔레그램 앱에서 메시지를 전달해 줄 로봇 직원을 채용해야 합니다. 스마트폰이나 PC에서 텔레그램을 열고 다음 순서대로 진행합니다. 텔레그램 검색창에 BotFather 를 검색하여 체크 표시가 있는 공식 계정에 입장합...

7편. 실전 자동화 3: 크롤링한 데이터 깔끔하게 엑셀 표로 정리하기 (Pandas 실전)

이미지
지난 6편에서는 매일 아침 내가 원하는 키워드의 뉴스 기사 제목과 링크를 자동으로 긁어오는 웹 크롤링 코드를 만들어 보았습니다.  까만 콘솔 창에 결과가 좌르륵 쏟아질 때의 쾌감은 이루 말할 수 없죠. 하지만 실무에서 그 까만 화면을 그대로 팀원들에게 공유하거나 보고서로 제출할 수는 없습니다. 우리가 데이터를 수집하는 진짜 목적은 그 정보를 '활용'하기 위함입니다.  그러려면 수집한 데이터를 깔끔한 엑셀(Excel) 파일로 저장해 두어야 합니다. 제가 처음 크롤링을 성공했을 때는 이 방법을 몰라, 화면에 출력된 텍스트를 마우스로 드래그해서 엑셀에 직접 복사하고 붙여넣는 반쪽짜리 자동화를 했었습니다. 하지만 오늘 소개할 파이썬의 핵심 무기, 판다스(Pandas) 라이브러리를 만나면 단 몇 줄의 코드만으로 흩어진 데이터를 완벽한 표(Table) 형태로 저장할 수 있습니다.  오늘은 6편의 크롤링 코드에 판다스를 결합하여, 나만의 자동화된 엑셀 리포트 생성기를 완성하는 과정을 단계별로 명확하게 알아보겠습니다. 판다스(Pandas), 데이터를 다루는 마법의 엑셀 도구 앞서 5편(엑셀 병합)에서도 잠깐 등장했던 판다스는, 쉽게 말해 '파이썬 안에서 돌아가는 가상의 엑셀'입니다. 방대한 데이터를 표 형태로 만들고, 더하고, 빼고, 필터링하는 데 압도적인 성능을 자랑합니다. 판다스에서 가장 중요한 개념은 데이터프레임(DataFrame)입니다. 이름은 거창하지만, 사실 우리가 매일 보는 엑셀의 '행(가로)'과 '열(세로)'로 이루어진 표 구조를 부르는 말일 뿐입니다. 우리는 크롤링으로 수집한 기사 제목들을 '제목 열'에, 기사 주소를 '링크 열'에 줄을 맞춰 집어넣기만 하면 됩니다. 수집한 데이터 표로 만들기 (Step-by-Step) 지난 시간에 사용했던 리플릿(Replit) 환경을 열고, 6편의 코드 아래에 판다스를 덧붙여 보겠습니다. 데이터를 저장하려면 먼저 텍스트를 담아둘 빈 상자(...

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

이미지
매일 아침 출근길이나 업무 시작 전, 관심 있는 비즈니스 키워드나 경쟁사의 최신 뉴스를 확인하는 것은 필수적입니다. 하지만 매번 포털 사이트에 접속해 검색어를 입력하고, 수많은 기사 중 진짜 필요한 정보만 골라내는 과정은 꽤 번거롭습니다. 지난 글에서 웹 크롤링의 기본 개념과 윤리적 주의사항을 가볍게 살펴보았다면, 오늘은 파이썬(Python)을 이용해 실제로 뉴스 기사 제목과 링크를 수집하는 '나만의 뉴스 수집 봇' 코드를 직접 작성해 보겠습니다. 복잡한 프로그램 설치 없이, 우리가 2편에서 세팅했던 리플릿(Replit) 브라우저 화면만 켜두시면 됩니다. 비전공자도 따라 할 수 있도록 가장 직관적인 두 가지 도구 상자(Requests, BeautifulSoup)를 활용하여 뼈대부터 하나씩 조립해 보겠습니다. 1단계: 크롤링 도구 상자 불러오기 파이썬에서 웹 크롤링을 할 때는 두 가지 라이브러리가 환상의 짝꿍으로 쓰입니다. 인터넷 브라우저처럼 특정 웹 주소(URL)에 접속해 데이터를 가져오는 '접속 담당' requests 와, 가져온 복잡한 HTML 문서 안에서 우리가 원하는 글자만 예쁘게 다듬어주는 '추출 담당' BeautifulSoup 입니다. 리플릿의 빈 화면에 아래 코드를 입력해 도구를 불러옵니다. import requests from bs4 import BeautifulSoup 2단계: 사람처럼 위장하여 접속하기 (가장 중요) 제가 처음 크롤링을 시도했을 때 가장 당황했던 부분입니다. 완벽하게 코드를 짰다고 생각했는데, 빈 화면만 나오거나 에러가 났습니다. 이유는 대형 포털 사이트들이 로봇(매크로)의 무단 접근을 막아두었기 때문입니다. 이를 해결하려면 컴퓨터에게 "나 로봇 아니고, 크롬 브라우저 쓰는 진짜 사람이야!"라고 신분증을 쥐여주어야 합니다. 이것을 '헤더(Headers)' 설정이라고 합니다. 우리가 검색할 키워드와 포털 뉴스의 주소 search_word = "파...

5편 실전 자동화 1: 파이썬 엑셀 파일 합치기, 수십 개 파일 단 3초 만에 취합하는 법

이미지
매주 팀원들이 보내오는 주간 시황 보고서나, 여러 부서에서 취합해야 하는 매출 엑셀 파일들. 이것들을 일일이 열어 하나의 파일로 복사하고 붙여넣는 단순 작업에 아까운 시간을 버리고 계시지 않나요?  이전 3, 4편에서 배운 '변수'와 '반복문(for)'만 완벽히 이해했다면, 이제 파이썬을 활용해 이 지루한 엑셀 파일 취합 업무를 단 3초 만에 끝낼 수 있습니다. 오늘은 데이터 분석과 엑셀 제어에 가장 많이 쓰이는 판다스(Pandas) 라이브러리를 활용하여, 폴더 안의 모든 엑셀 파일을 한 번에 합치는 방법을 단계별(Step-by-Step)로 명확하게 알아보겠습니다. 1단계: 마법의 도구 상자, 판다스(Pandas) 불러오기 파이썬이 강력한 이유는 누군가 엑셀 작업을 쉽게 할 수 있도록 만들어둔 '도구 상자'를 무료로 가져다 쓸 수 있기 때문입니다.  가장 대표적인 도구 상자가 바로 판다스(Pandas)입니다. 리플릿(Replit)이나 파이썬 편집기 창에 다음과 같이 입력하여 도구 상자를 준비합니다. import pandas as pd import os import pandas as pd: 판다스라는 긴 이름 대신, 앞으로 코드 내에서 'pd'라는 짧은 별명으로 부르겠다는 뜻입니다. import os: 내 컴퓨터나 클라우드의 '폴더(Directory)'에 접근하여 파일들을 찾아내기 위한 필수 도구입니다. 2단계: 합칠 엑셀 파일들이 있는 폴더 지정하기 컴퓨터에게 "어디에 있는 파일들을 합칠 것인가?"를 명확히 알려주어야 합니다. 여러 개의 시황 데이터나 정산 파일이 모여 있는 폴더의 경로를 변수에 담아줍니다. folder_path = "./laonspace_reports/" file_list = os.listdir(folder_path) folder_path: 취합할 파일들이 모여있는 폴더의 위치(경로)를 지정합니다. os.listdir: 앞서 지정한 폴더...

파이썬 기초 문법 2: 단순 반복 작업을 없애주는 '조건문'과 '반복문' 핵심 가이드

이미지
파이썬의 진짜 매력은 내가 자는 동안에도 컴퓨터가 알아서 일을 처리하게 만드는 데 있습니다.  앞서 '변수'와 '데이터 타입'을 통해 데이터를 담는 상자를 만들었다면, 이제는 그 상자들을 활용해 컴퓨터에게 명확한 업무 지시를 내릴 차례입니다. 서론은 줄이고, 파이썬 업무 자동화의 핵심 뼈대인 '조건문'과 '반복문'의 원리와 실전 예시부터 바로 알아보겠습니다. 조건문(if): 상황에 따라 다르게 행동하도록 규칙 정하기 일상적인 업무를 하다 보면 "A 상황에서는 이렇게, B 상황에서는 저렇게 처리해"라는 판단이 필요할 때가 많습니다. 파이썬에서는 이를 'if(만약 ~라면)' 구문으로 아주 쉽게 처리합니다. 만약 특정 주식 종목의 가격이 내가 원하는 목표가에 도달했을 때만 알림을 받고 싶다고 가정해 보겠습니다. 매번 사람이 화면을 쳐다보고 판단할 필요 없이, 컴퓨터에게 다음과 같은 논리 구조를 입력해주면 됩니다. if (조건): 만약 가격이 5만 원 이하라면 -> "매수 알림 보내기" else (그 외): 5만 원을 초과한다면 -> "아무것도 하지 않기" 이렇게 조건을 설정해 두면, 컴퓨터는 데이터가 들어올 때마다 스스로 판단하여 정해진 규칙대로만 움직입니다. 반복문(for): 지루한 단순 작업을 기계처럼 순식간에 끝내기 수십 개의 뉴스 기사 제목을 긁어오거나, 100개의 엑셀 파일에서 특정 셀의 값을 복사해야 한다고 상상해 보십시오.  사람이 하면 실수도 잦고 시간도 오래 걸리는 전형적인 '단순 반복 작업'입니다. 파이썬의 'for' 구문을 사용하면 단 몇 줄의 코드로 이 지루한 과정을 순식간에 해결할 수 있습니다. 'for'문은 여러 개의 데이터가 들어 있는 꾸러미(리스트)에서 데이터를 하나씩 차례대로 꺼내서 같은 작업을 반복하라는 명령어입니다.  10번을 반복하든 1만 번을 반복하든 ...

비전공자도 단번에 이해하는 변수와 데이터 타입

이미지
지난 글에서는 웹 브라우저만으로 가볍게 코딩을 시작할 수 있는 환경을 만들었습니다.  이제 본격적으로 파이썬이라는 언어의 규칙을 배울 차례입니다. 처음에 '문법'이라는 단어를 들으면 학창 시절의 복잡한 외국어 문법이 떠올라 막막해지기 쉽습니다.  저 역시 처음 코딩을 접했을 때 '정수형', '문자열' 같은 딱딱한 용어들 때문에 화면을 덮고 싶었던 적이 있습니다. 하지만 파이썬 문법은 생각보다 아주 단순한 생활 속 상식과 같습니다.  복잡한 이론을 암기할 필요 없이, 원리만 이해하면 누구나 쉽게 응용할 수 있습니다.  오늘은 일상적인 데이터 수집이나 주식 시황 요약 같은 자동화 스크립트 작성에 반드시 필요한 핵심 개념, '변수'와 '데이터 타입'에 대해 아주 명확하게 알아보겠습니다. 변수(Variable), 데이터를 담아두는 이름 붙인 상자 프로그래밍에서 '변수'는 아주 간단히 말해 데이터를 담아두는 '상자'입니다.  이 상자에 알아보기 쉬운 이름을 붙여두고, 필요할 때마다 그 이름을 불러서 안의 내용물을 꺼내 쓰는 방식입니다. 예를 들어, 우리가 운영하는 브랜드 이름이나 주식 종목명을 코드로 다룬다고 가정해 보겠습니다. 매번 긴 이름을 타이핑하기 귀찮으니 상자에 미리 담아두는 것입니다. brand_name = "라온스페이스" stock_price = 50000 위 코드에서 brand_name 이라는 이름표가 붙은 상자(변수)에는 "라온스페이스"라는 글자가 들어갔고, stock_price 라는 상자에는 50000이라는 숫자가 보관되었습니다.  이제 코드 어디서든 print(brand_name) 이라고 명령하면, 컴퓨터는 상자 안을 열어보고 "라온스페이스"를 화면에 띄워줍니다. 이렇게 변수를 사용하는 이유는 나중에 수정하기가 아주 편해지기 때문입니다.  만약 종목명이나 웹사이트 주소가 바뀌었다면, 복잡한 코드 전...