글

라벨이 알고리즘트레이딩인 게시물 표시

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

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

파이썬 주식 자동매매 4편

이미지
내 돈으로 진짜 주식을 사보자! 실전 매수/매도 주문하기 💡 이전 글 먼저 보기: 삼성전자 등 특정 주식의 실시간 현재가를 불러오는 방법이 궁금하시다면 👉 **[ 여기에 3편 글의 내용을 읽어주세요 ]**를 먼저 확인해 주시기 바랍니다.   파이썬으로 증권사 서버에 로그인하고, 내 계좌를 불러오고, 현재가까지 확인하셨나요?  그렇다면 이제 진정한 '자동매매'의 하이라이트를 장식할 차례입니다. 이번 4편에서는 파이썬 코드를 통해 내 계좌의 예수금을 사용하여 실제로 주식을 매수(Buy)하고 매도(Sell)하는 주문(Order) 로직 에 대해 알아보겠습니다. 1. 주식 주문의 핵심, SendOrder 함수 이해하기 키움증권 API에서 주식을 사고팔 때 사용하는 유일무이한 핵심 함수는 바로 SendOrder 입니다.  HTS나 MTS 앱에서 주식을 살 때 우리가 입력하는 정보(계좌번호, 종목, 수량, 가격 등)를 파이썬 코드에서는 이 함수의 '매개변수'로 쏙쏙 넣어주기만 하면 됩니다. SendOrder 에 들어가야 할 핵심 정보는 다음과 같습니다. 사용자 구분명: 이 주문이 어떤 주문인지 내가 알아보기 쉽게 적는 이름 (예: "삼성전자매수") 화면번호: 통신을 위한 4자리 임의의 숫자 (보통 "1000" 사용) 계좌번호: 2편에서 불러왔던 내 주력 계좌번호 10자리 주문유형: 1 (신규매수), 2 (신규매도), 3 (매수취소), 4 (매도취소) 종목코드: 사고팔려는 주식의 6자리 코드 (예: 삼성전자 "005930") 주문수량: 몇 주를 살 것인가? 주문가격: 얼마에 살 것인가? (시장가 주문일 경우 0 입력) 호가구분: 00 (지정가), 03 (시장가) 2. 단 15줄! 삼성전자 1주 '시장가 매수' 코드 주식을 무조건 지금 당장 체결시키는 가장 확실한 방법은 '시장가'로 매수하는 것입니다.  아래 코드는 파이썬을 이용해 ...

파이썬 주식 자동매매 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...