국내주식, 키움

키움 멀티슬롯 자동매매와 웹 관리자 종목풀 동기화 (다중 PC)

운영자가 웹 관리자 한 곳에서 매매할 종목 풀을 관리하면, 여러 대 PC의 자동매매가 그 목록을 실시간으로 따라오게 해 달라는 요청이었습니다. 웹 종목 풀 서버와 다중 PC 클라이언트로 만들었습니다. 운영자의 매수를 따라 사는 카피트레이딩과는 다릅니다. 매매 후보 종목 목록만 공유하고, 각 PC는 자기 조건검색으로 따로 매매합니다.

플랫폼
키움 OpenAPI+ 클라이언트
FastAPI, SQLite (EC2) 서버
특징
웹 관리자 종목풀을
다중 PC가 3초마다 동기화
유형
국내주식 멀티슬롯
제작 기간
약 3~4주
키움 멀티슬롯 자동매매 클라이언트 실행 화면. 슬롯 1 자동매매 중, 조건 매칭 9종목, 서버 종목 풀과 조건검색 교집합 판정 표(풀 미포함 종목은 매수 제외), 보유 포지션 단계, 체결 내역, 단계별 손절과 트레일링 설정, 상태바에 서버 풀 12종목 3초 전 갱신
PC 쪽 클라이언트. 매수 대기 표에 종목 풀과 조건검색에 모두 들었는지가 종목별로 보이고, 상태바에 서버 풀 동기화 시각이 뜹니다 (종목과 수량은 예시)

01배경과 고객 요구사항

고객은 이미 키움 조건검색 자동매매를 여러 대의 PC에서 돌리고 있었습니다. 그런데 오늘 매매할 종목 풀을 PC마다 따로 관리해야 했습니다. 운영자가 종목을 골라도 각 PC에 일일이 옮겨 넣어야 했고, PC가 늘수록 손이 많이 가고 실수도 잦았습니다.

요청은 이랬습니다. 운영자가 웹 한 곳에서 종목 풀을 관리하면 등록된 모든 PC의 자동매매가 그 목록을 자동으로 반영할 것. 그리고 각 PC는 지금처럼 자기 키움 조건검색으로 따로 판단해 매매할 것.

착수 전에 요구 범위부터 분명히 했습니다. 운영자가 사면 유저도 같이 사는 카피트레이딩인지, 종목 목록만 공유하고 매매는 각자 하는 것인지를 대화로 확인했고, 뒤쪽으로 정리한 다음 시작했습니다. 어느 쪽이냐에 따라 서버 권한 설계와 책임 범위가 달라집니다.

02구현 방식

가운데에 종목 풀 서버(FastAPI, SQLite, EC2)를 두고, 여러 대의 자동매매 클라이언트가 이 서버를 주기적으로 조회해 종목 풀을 맞춥니다.

시스템 아키텍처. 웹 관리자 종목풀 등록에서 서버를 거쳐 여러 PC 클라이언트 3초 동기화, 종목풀과 조건검색 교집합 매수, 단계별 손절과 트레일링 청산으로 이어지는 흐름
시스템 구성. 웹 종목 풀 등록부터 다중 PC 동기화, 교집합 매수, 청산까지
웹 관리자 종목 관리 페이지. 직접 입력과 CSV 업로드 카드, 현재 종목 풀 12건 표
웹 관리자의 종목 풀 화면. 여기서 바꾸면 PC 여러 대가 3초 안에 따라옵니다

서버가 나눠 주는 것은 종목 목록뿐입니다. 매수와 매도 판단, 주문은 각 PC의 조건검색과 매매 룰이 따로 합니다. 그래서 PC가 몇 대로 늘어도 운영자는 웹 한 곳만 관리하면 됩니다.

연결이 끊겼을 때의 규칙도 정했습니다. 서버 조회가 끊긴 채 일정 시간(기본 60초)이 지나면 신규 매수를 막고, 이미 보유한 종목의 매도는 그대로 진행합니다. 종목 풀을 못 받았다고 손절까지 멈추면 안 되기 때문입니다.

03어려웠던 부분

분할매수가 반복 발송되는 문제 (대량 오매수 방지)

여러 PC가 같은 종목 풀을 공유하게 만드는 것 못지않게 신경 쓴 것이 분할매수가 끝없이 반복되는 문제였습니다. 같은 계좌를 두 슬롯에 잘못 배정하면 체결 통보가 한쪽 슬롯으로만 가서, 다른 슬롯은 아직 안 샀다고 착각합니다. 그러면 미체결 정리가 돌 때마다 2차 매수를 다시 보낼 위험이 있었습니다. 그래서 한 포지션에서 각 분할 단계는 정확히 한 번만 주문하도록 막았고, 같은 계좌를 쓰는 슬롯은 시작할 때 거부합니다. 체결이 확인되지 않을 때 다시 사는 쪽보다 덜 사는 쪽을 택했습니다.

04
웹 관리자 접속 로그. PC-A와 PC-B가 3초마다 번갈아 종목 풀을 폴링한 기록
접속 로그. PC-A와 PC-B가 3초 간격으로 조회한 시각이 초 단위로 남습니다
주요 기능

05제작 과정 (약 3~4주)

06납품 결과물

07기술 스택

키움 OpenAPI+ (OCX, 32bit) Python, PyQt5 FastAPI, SQLAlchemy, SQLite Uvicorn, Nginx (EC2, Ubuntu) REST 폴링 동기화, X-API-Key APScheduler PyInstaller (32bit)

08관련 사례

※ 본 사례는 과거 고객 요구사항을 익명 처리하여 재구성한 것이며, 수익률과 수익금은 공개하지 않습니다. 알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천, 투자 자문, 수익 보장 서비스가 아닙니다. 과거 백테스트 결과가 미래 실거래 수익을 보장하지 않습니다. 주식 투자는 원금 손실 위험이 있습니다.

여러 PC의 자동매매를 한곳에서 관리하고 싶으시면

지금 쓰시는 자동매매가 있어도, 아직 구상 단계여도 괜찮습니다.
PC가 몇 대인지, 종목은 어떻게 고르시는지 상담에서 알려 주세요.

무료 상담 시작하기 고객 후기 보기
← 제작 사례 전체 보기