분류 전체보기 6

키움 자동매매 3년 기록을 책으로 만듭니다 — 목차 전체와 샘플 2개 장을 먼저 공개합니다 (사전등록)

3년 넘게 실계좌로 굴려온 키움 OpenAPI 자동매매의 기록을 전자책으로 정리하고 있습니다. 완성하기 전에 목차 전체와 샘플 2개 장을 먼저 공개하고, "완성되면 알려달라"는 분들의 사전등록을 받습니다. 등록해 주신 분이 충분하면 완성하고, 아니면 완성하지 않습니다 — 그게 이 글의 목적입니다.이 책이 필요 없는 분먼저 이 책이 필요 없는 분부터 말씀드립니다.수익 나는 전략, 종목 추천, 매매 신호를 찾는 분 — 이 책에는 없습니다. 전략 파라미터 값은 단 하나도 실려 있지 않습니다."자동매매 = 쉬운 돈"을 기대하는 분 — 이 책의 결론은 반대입니다. 만들기가 쉬워졌을 뿐, 버는 것은 쉬워지지 않았습니다.여기까지 읽고 뒤로 가기를 누르셨다면, 그게 맞습니다.이런 분의 이야기입니다"자동매매, 나도 해보..

백테스트와 실계좌가 달라지는 이유 2 · 상태가 다르다 — 매수 신호가 사라진 날 (전자책 샘플 전문)

이 글은 준비 중인 전자책 — 키움 자동매매를 AI와 함께 만들고 실계좌로 검증해 온 3년의 기록 — 의 핵심부 샘플 장 전문입니다.책 소개·목차 전체·사전등록은 여기: 전자책 소개 글봇은 멀쩡히 돌아간다. 에러 메시지도 없다. 그런데 사야 할 자리에서, 사지 않는다. 로그를 뒤져봐도 "왜 안 샀는지"가 어디에도 없다 — 이런 문제를 겪어봤다면, 이 장은 당신 이야기다.1막 — 사라진 신호자동매매 프로그램은 하루 단위로 살고 죽는다. 아침에 켜고, 장이 끝나면 끈다. 그런데 매매는 하루로 끝나지 않는다. 어제 산 종목을 오늘도 들고 있고, 어제 두 번에 나눠 샀다면 오늘 세 번째 매수를 이어가야 한다. 프로그램은 매일 죽었다 살아나는데 매매는 이어져야 한다면, 누군가는 어제의 기억을 오늘로 넘겨줘야 한다..

YouTube Data API 업로드 403 access_denied 해결 — 테스트 사용자, 확인되지 않은 앱, 비공개 잠금 함정까지

파이썬으로 유튜브 자동 업로드를 만들고 첫 OAuth 로그인을 시도하면 높은 확률로 이 화면을 만난다 — "액세스 차단됨: (앱 이름)에서 Google 인증 절차를 완료하지 않았습니다. 오류 403: access_denied". 결론부터: 앱이 잘못된 게 아니라 내 계정을 테스트 사용자로 등록 안 한 것이다. 1분이면 풀린다. 이 글은 그 해결부터, 영상+자막 자동 업로드 성공, 그리고 그 뒤에 숨어 있는 함정 두 개(비공개 잠금, 7일 토큰 만료)까지의 기록이다.바쁜 사람을 위한 3줄 요약증상: OAuth 첫 로그인에서 "액세스 차단됨 — 오류 403: access_denied".원인: OAuth 동의 화면이 "테스트" 게시 상태일 때는 테스트 사용자로 등록된 계정만 로그인할 수 있는데, 본인 계정을 ..

키움 OpenAPI + PyQt5 종료 시 RuntimeError: wrapped C/C++ object of type Kiwoom has been deleted 해결 — 가짜 FATAL 알림의 정체

키움 OpenAPI + PyQt5 자동매매 프로그램이 장 마감 후 정상 종료됐는데도 RuntimeError: wrapped C/C++ object of type Kiwoom has been deleted 에러가 찍히고, 치명 오류(FATAL) 텔레그램 알림까지 날아온 적이 있다면 — 프로그램은 멀쩡하다. 범인은 종료 직전에 예약해둔 QTimer.singleShot이 이미 파괴된 OCX 객체를 뒤늦게 호출하는 것이다. 이 글은 그 원인 분석, 수정, 그리고 다음 거래일 실전 로그로 검증한 기록이다.바쁜 사람을 위한 3줄 요약증상: 정상 종료(종료코드=0) 직후 wrapped C/C++ object of type Kiwoom has been deleted + 가짜 FATAL 알림.원인: 종료 전에 예약된 Q..

키움 opt10080 분봉 캐시 함정 — 캐시가 있는데도 최신 데이터를 안 받아오는 이유

키움 opt10080으로 분봉을 캐시에 모아두고 재사용하는 수집기를 쓰고 있다면, 이 질문을 해봐야 한다 — "캐시를 건너뛰는 조건이 시작일만 검사하고 있지 않은가?" 그렇다면 일부 종목은 과거 어느 날짜에 멈춘 채, 재실행해도 영영 최신 데이터를 받아오지 않는다. 1편(키움 -209 해결기)과 같은 수집기에서 잡은, 정반대 방향의 버그다.바쁜 사람을 위한 3줄 요약증상: 일부 종목의 분봉 캐시가 과거 날짜에 멈춘 채, 재실행해도 "캐시재사용"으로 건너뛰어진다.원인: 캐시 생략 조건이 "시작일까지 데이터가 있나"(min)만 검사하고 "최신까지 있나"(max)는 안 본다.수정: 시작일·종료일 양방향 검사(reach_back AND reach_fwd)로 바꾸고, 부족분만 받아 병합한다.1편과의 관계1편의 버..

키움 OpenAPI "조회횟수 제한 : -209" 해결기 — opt10080 증분 조회로 조회량 87% 줄이기

키움 OpenAPI로 분봉 데이터를 수집하다 -209 에러에 막힌 적이 있다면, 원인은 "너무 빨리 조회해서"가 아니라 "이미 있는 데이터를 매번 통째로 다시 받아서"일 가능성이 높다. 이 글은 633종목 1분봉 수집기가 -209에 막힌 실제 사례에서, 원인 → 수정 → 검증까지의 기록이다.환경Python 3.10 (32bit) + PyQt5 + 키움 OpenAPITR: opt10080 (주식분봉차트조회)백테스트용 1분봉 수집기: 종목별 CSV 캐시 저장, 재실행 시 캐시 재사용1. 증상백테스트용으로 633종목의 1분봉을 수집하던 중, 수집이 한창 진행되다가 키움 팝업이 떴다.조회횟수 제한 : -209이 팝업이 뜨면 이후 모든 TR 조회가 일시 차단된다. 프로그램을 종료하고 기다렸다가(체감상 10~30분..