매일 장중 거래대금·등락률 상위 "주도주"만 골라, 이미 검증된 TradingView 조건에 맞으면 사람 손 없이 자동으로 매수하고 싶다 —
이 요청을 키움증권 OpenAPI+로 구현한 사례입니다. 종목을 계속 들여다볼 필요 없이 스크리닝부터 진입까지 한 흐름으로 자동화했습니다.
플랫폼
키움증권 OpenAPI+ + TradingView
언어
Python 3.10 32bit + PyQt5 + Flask
유형
국내주식 현물 · 자동 스크리닝
제작 기간
약 3주
제작한 주도주 스크리너 GUI — 거래대금 상위 종목과 3조건 충족 현황을 실시간 표시 (예시 화면)
01배경 · 고객 요구사항
고객은 매일 장중 거래대금과 등락률 상위에 올라오는 "주도주"를 노리고 있었습니다.
그날 시장의 돈이 몰리는 종목이 결국 크게 움직인다는 판단이었죠. 문제는 그런 종목이 수시로 바뀐다는 것.
사람이 하루 종일 화면을 붙잡고 상위 종목을 훑을 수도, 매번 진입 타이밍을 놓치지 않을 수도 없었습니다.
요청은 두 갈래였습니다. ① 그날의 주도주 후보를 자동으로 추려주는 스크리너가 필요했고,
② 그 후보가 이미 검증해 둔 TradingView 진입 조건에 들어맞는 순간 자동으로 매수가 나가야 했습니다.
즉 "무엇을 살지(종목 선정)"와 "언제 살지(진입 조건)"를 둘 다 자동화하는 것이 핵심이었습니다.
국내 주식은 장 시작 직후부터 상위 종목 순위가 빠르게 요동칩니다.
한 종목이 거래대금 상위로 치고 올라오는 순간을 놓치면 이미 급등이 끝나 있는 경우도 많아,
"실시간으로 상위를 감시"하는 것과 "조건이 맞는 순간 즉시 주문"하는 두 가지 속도가 이 프로젝트의 관건이었습니다.
02구현 방식
종목을 고르는 스크리너와 진입 조건을 판정하는 TradingView 웹훅 브릿지를 하나로 연결하는 구조로 설계했습니다. 흐름은 이렇습니다:
키움 실시간 스크리닝 → OpenAPI+로 거래대금 상위 30위 + 등락률 +5% 이상 종목을 실시간으로 추려 후보군 생성
TradingView 연동 → 후보 종목을 TradingView 차트 조건에 태워 BB(볼린저) 상단 돌파 + RSI ≥ 60 + MACD 골든크로스 3조건을 판정
웹훅 매수 신호 → 3조건이 모두 충족되면 웹훅 메시지 발송 (종목·조건 정보 포함), 수신 서버가 유효성 검증 후 주문으로 변환
키움 시장가 매수 → OpenAPI+로 시장가 주문 전송 · 체결 확인, 텔레그램으로 종목·조건·체결 결과를 즉시 알림
시스템 흐름 — 주도주 스크리닝부터 3조건 판정·웹훅·시장가 매수까지
TradingView 쪽 조건식은 고객이 쓰던 그대로 재사용하고, 알림 메시지 형식만 표준화해 연결했습니다.
웹훅을 받는 서버는 별도 고정 IP 없이 Cloudflare Quick Tunnel로 외부 접속용 URL을 자동 발급받아,
프로그램만 켜면 곧바로 TradingView 신호를 받을 수 있게 만들었습니다.
구체적으로는 — 스크리너가 { "code":"005930", "cond":"BB_UP+RSI60+MACD_GC", "action":"buy" } 형태로
후보와 조건을 표준 JSON에 담고, 수신 서버가 ① 비밀 토큰으로 위조 여부 검증 → ② 동일 신호 재수신·지연 신호 폐기 →
③ 시장가 매수 요청으로 변환해 키움 OpenAPI+로 전송하는 순서로 처리합니다.
스크리닝(무엇을)과 조건 판정(언제)이 분리돼 있어, 한쪽 규칙을 바꿔도 다른 쪽은 그대로 동작합니다.
03해결한 기술 난제
장중 실시간 스크리닝 + 조건 정합성
상위 종목 순위가 초 단위로 바뀌는 장중에, 스크리닝 결과와 매수 조건이 서로 어긋나지 않게 지키는 것이 가장 어려웠습니다.
그래서 항상 지켜야 하는 규칙 18개(불변조건)를 코드로 못박고, 140개 자동 테스트로 매 빌드마다 검증해
"조건이 안 맞는데 주문이 나가는" 오작동을 사전에 차단했습니다. 또한 재시작마다 바뀌던 웹훅 URL 문제는
Quick Tunnel 자동 발급으로 해결해, 프로그램만 켜면 신호가 곧바로 연결되도록 만들었습니다.
18개 불변조건(Invariant) — "미충족 조건에는 주문 금지", "중복 매수 금지", "장 마감 후 진입 금지" 같은 규칙을 코드로 못박아, 어떤 경로로도 어길 수 없게 강제
140개 자동 테스트 — 스크리닝·조건 판정·주문 변환의 경계값을 매 빌드마다 자동 검증해, 배포 전에 오작동을 걸러냄
웹훅 URL 자동 발급 — 고정 IP 없이 Quick Tunnel이 매 실행마다 URL을 새로 발급 → 프로그램이 이를 감지해 TradingView 신호 경로를 자동으로 재연결
웹훅 중복·지연 방어 — 동일 신호가 두 번 오면 무시하고, 수신 지연이 설정 시간(수 초)을 넘으면 폐기해 "늦은 신호로 잘못 진입"을 차단
04핵심 기능
실시간 주도주 스크리너 GUI — 거래대금 상위·등락률 상위 후보를 현재가·등락률·거래대금과 함께 실시간 표시
TradingView 3조건 웹훅 연동 — BB 상단 돌파 · RSI ≥ 60 · MACD 골든크로스 충족 시에만 매수 신호 수신
키움 시장가 자동매수 — 신호 도착 즉시 OpenAPI+로 시장가 주문 전송·체결 확인
웹훅 URL 자동 발급 — Quick Tunnel로 고정 IP 없이 외부 접속 URL을 자동 생성·재연결
텔레그램 실시간 알림 — 후보 편입·조건 충족·매수 체결·에러까지 즉시 통보
05제작 과정 (약 3주)
1주차 · 스크리너·키움 연동 — 거래대금·등락률 상위 실시간 스크리닝 로직, 후보군 GUI, 키움 OpenAPI+ 인증·주문 연동 뼈대 구축
2주차 · TradingView 웹훅·조건 로직 — BB·RSI·MACD 3조건 판정 연동, 웹훅 메시지 포맷 표준화, Quick Tunnel URL 자동 발급, 시장가 매수 처리
3주차 · 불변조건·테스트·배포 — 18개 불변조건과 140개 자동 테스트 구축, 텔레그램 알림, 소액 실계좌로 실체결 검증 후 인수인계
06납품 결과물
실행 프로그램 (주도주 스크리너 GUI 포함)
TradingView 웹훅 수신 서버 + Quick Tunnel 설정 (URL 자동 발급)
텔레그램 알림 봇 연동
사용설명서 + 키움 OpenAPI+·조건 설정 가이드
납품 후 30일 무료 AS (협의 범위 내)
07기술 스택
키움 OpenAPI+TradingView WebhookPython 3.10 32bitPyQt5FlaskCloudflare Quick TunnelTelegram Bot API
※ 본 사례는 과거 고객 요구사항을 익명 처리하여 재구성한 것이며, 수익률·수익금은 공개하지 않습니다.
알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천·투자 자문·수익 보장 서비스가 아닙니다.
과거 백테스트 결과가 미래 실거래 수익을 보장하지 않습니다. 국내주식·파생상품 투자는 원금 손실 위험이 있습니다.
이런 자동매매, 바로 견적 받아보세요
TradingView 조건이 이미 있으셔도, 아직 아이디어 단계여도 괜찮습니다.
알고랩이 24시간 빠르게 답변드립니다.