글

라벨이 파이썬주식인 게시물 표시

같은 지수 ETF, 무엇을 고를까? 초보자가 비교할 4가지 (총보수·거래량·괴리율·추적오차)

이미지
 코스피200이나 S&P500처럼 유명한 지수는 따라가는 ETF가 여러 개 있습니다. 운용사만 다르고 담고 있는 종목은 거의 같아서, 처음에는 “아무거나 사도 되지 않나?” 싶습니다. 하지만 오래 들고 갈수록 작은 차이가 쌓여 수익률이 달라집니다. 이 글에서는 같은 지수를 따르는 ETF 중 하나를 고를 때 비교할 4가지 기준 을 정리합니다. 1. 총보수 – 매년 내는 “관리비” ETF는 운용사가 대신 굴려주는 상품이라 매년 비용이 나갑니다. 이걸 총보수 라고 합니다. 따로 결제하는 게 아니라 ETF 가격에서 조금씩 빠져나가기 때문에 눈에 잘 안 뛱니다. 아파트 관리비를 떠올리면 쉽습니다. 한 달로 보면 차이가 작아 보여도 10년을 살면 큰 돈이 되죠. 장기 투자라면 총보수가 낮은 쪽이 유리합니다. 주의: 총보수에 포함되지 않는 비용(기타비용, 매매중개수수료 등)도 있습니다. 그래서 광고에 나오는 총보수만 보지 말고, 금융투자협회 전자공시에서 실제 부담 비용 을 함께 비교하는 게 정확합니다. 2. 거래량 – 원하는 가격에 사고 팔 수 있나 거래량이 적은 ETF는 팔고 싶을 때 사는 사람이 적어서, 매수 호가와 매도 호가 사이가 벌어져 있는 경우가 많습니다. 이럴 때 급하게 사고팔면 내가 생각한 가격보다 불리하게 거래됩니다. 물론 ETF에는 LP(유동성공급자) 가 있어서 호가를 채워줍니다. 하지만 장 시작 직후나 마감 직전에는 LP가 호가를 내지 않을 수 있어, 초보자라면 이 시간대는 피하는 게 좋습니다. 같은 지수라면 거래량과 순자산(돈이 모인 규모)이 큰 쪽을 고르는 게 무난합니다. 3. 괴리율 – 제값에 사고 있나 ETF에는 두 가지 가격이 있습니다. 시장가격 : 주식창에서 실제로 거래되는 가격 순자산가치(NAV) : ETF 안에 들어 있는 주식들의 실제 가치 이 둘의 차이를 괴리율 이라고 합니다. 괴리율이 플러스(+)면 제값보다 비싸게, 마이너스(−)면 싸게 거래되고 있다는 뜻입니다. 사려는 순간 괴리율이 크게 플...

파이썬 주식 자동매매 5편: 목표가 도달 시 알아서 매수하는 '무인 트레이딩 봇' 완성하기

이미지
 💡 이전 글 먼저 보기: 파이썬 코드로 실제 주식을 매수하고 매도하는 SendOrder 함수의 사용법을 아직 모르신다면 👉 **[ 파이썬 주식 자동매매 4편 글 ]**을 반드시 먼저 읽고 와주시기 바랍니다. 지금까지 우리는 파이썬을 이용해 키움증권 서버에 로그인하고(2편), 주식의 현재가를 불러오며(3편), 실제로 주식을 매수하는 주문(4편)까지 자동매매를 위한 모든 개별 부품들을 만들어 보았습니다. 이번 5편에서는 이 조각들을 하나로 조립하여, "내가 설정한 가격까지 주가가 떨어지면, 봇(Bot)이 스스로 감지하여 알아서 주식을 매수하는" 진정한 의미의 무인 자동매매 로직을 완성해 보겠습니다. 1. 실시간 가격 감시의 핵심: 무한 루프( while ) 사람은 하루 종일 모니터를 쳐다보며 가격을 감시할 수 없지만, 컴퓨터는 지치지 않습니다.  파이썬의 while 반복문을 사용하면 장이 열려있는 동안 코드가 멈추지 않고 계속해서 현재가를 확인하도록 지시할 수 있습니다. 단, 서버에 너무 빠르게(1초에 수십 번씩) 데이터를 요청하면 디도스(DDoS) 공격으로 오해받아 증권사로부터 통신이 차단될 수 있습니다.  따라서 time.sleep(1) 함수를 이용해 1초에 한 번씩만 여유롭게 가격을 확인하도록 숨통을 틔워주어야 합니다. 2. 중복 매수 방지 장치 (Flag 변수) 자동매매 봇을 만들 때 초보자들이 가장 많이 하는 실수가 바로 '중복 주문'입니다.  가격이 목표가 아래로 떨어졌을 때 매수 주문이 나갔음에도 불구하고, 루프가 계속 돌면서 1초마다 계속 매수 주문을 넣어 계좌의 돈을 모두 탕진해 버리는 대참사가 발생할 수 있습니다. 이를 막기 위해 is_bought = False 라는 깃발(Flag) 변수를 하나 만들어 둡니다. 매수가 한 번 체결되면 이 깃발을 True 로 바꾸고, 무한 루프를 안전하게 빠져나오도록( break ) 설계해야 합니다. 3. 나만의 자동매매 봇(Bot) 전체 코드 지금까지 배운 모든 지...

파이썬 주식 자동매매 3편

이미지
키움증권 API 통신의 핵심, TR 데이터로 현재가 조회하기 💡 이전 글 먼저 보기: 단 10줄의 코드로 끝내는 키움증권 자동 로그인과 계좌 조회 방법이 궁금하시다면 👉 **[ 파이썬 주식 자동매매 2편 ]**를 먼저 확인해 주시기 바랍니다. 지난 2편에서 파이썬과 키움증권 서버를 연결하고 로그인하는 데 성공하셨다면, 자동매매 시스템 구축의 절반을 해내신 것과 다름없습니다.  오늘은 증권사 API 통신의 꽃이라고 불리는 'TR(Transaction) 요청'을 통해 특정 주식 종목의 실시간 가격(현재가)을 내 파이썬 프로그램으로 불러오는 방법을 알아보겠습니다. 1. API 통신의 핵심, TR(Transaction)이란 무엇인가? 키움증권 서버에는 수많은 주식 데이터가 저장되어 있습니다.  우리가 서버에게 "삼성전자 주식의 현재가를 알려줘!"라고 요청하면, 서버가 그에 맞는 데이터를 찾아서 우리에게 다시 던져주는 일련의 주고받기 과정을 TR 통신 이라고 부릅니다. 우리가 1편에서 설치했던 'KOA Studio'를 열어보면 수많은 TR 목록을 확인할 수 있습니다.  그중에서 단일 종목의 기본 정보를 가져올 때 가장 많이 쓰이는 TR 코드가 바로 opt10001 (주식기본정보요청) 입니다. 2. pykiwoom으로 초간단 TR 데이터 요청하기 원래 이 TR 데이터를 주고받으려면 요청(Request)을 보내고 데이터가 올 때까지 기다리는 복잡한 '이벤트 루프' 코드를 짜야 합니다.  하지만 우리가 사용하는 pykiwoom 라이브러리의 block_request 기능을 활용하면 단 한 줄의 코드로 이 과정을 끝낼 수 있습니다. 파이썬 에디터를 열고 아래 코드를 작성해 보세요. (코드 내의 005930은 삼성전자의 종목코드입니다.) Python from pykiwoom.kiwoom import * import pandas as pd # 1. 키움증권 로그인 kiwoom = Kiwoom() k...