본문 바로가기

분류 전체보기

EP.16 장초반 방향예측 적중률 집계와 Shadow Open 연결기 이번 회차에서 다루는 문제신호를 만드는 것과 그 신호가 실제로 맞는지 확인하는 것은 별개의 문제입니다. 이번 작업의 핵심 질문은 두 가지였습니다.예측이 실제 결과와 얼마나 맞았는지를 어떻게 지속적으로 확인할 것인가검증되지 않은 신호를 실주문과 기존 추천 흐름에 영향을 주지 않고 어떻게 매매에 연결해 볼 것인가누적 적중률 집계: 정확도 리포트 추가먼저 예측과 실제 결과를 날짜별로 대사(reconcile)하는 정확도 리포트를 추가했습니다. 신호를 계속 뽑아내는 것보다, 그 신호가 시간이 지나면서 실제로 맞았는지를 꾸준히 대사하는 작업이 먼저라고 판단했기 때문입니다.리포트는 예측과 실제 결과를 날짜별로 대사해 누적 적중률을 집계하는 구조입니다. 이렇게 하면 특정 하루의 결과에 흔들리지 않고, 신호 품질을 시간.. 더보기
EP.15 shadow-only 모드에서 텔레그램 알림 분리하기 들어가며: 관찰만 하는데 왜 알림이 문제였나이번 글은 shadow-only 모드에서 겪은 알림 정책 문제와 그 해결 과정을 정리한 기록입니다. shadow-only 모드는 실제 주문을 내지 않고 전략의 동작만 관찰하는 실험 상태를 말합니다.문제는 단순했습니다. 가상 관찰을 돌리는 중에도 추천·스캔·수동매매 메시지가 진입·청산 알림과 함께 수신되었습니다. 그러다 보니 실제 행동을 요청하는 메시지와 실험 관찰 결과 알림을 눈으로 구분하기 어려웠습니다.무엇이 문제였는지shadow-only 모드의 취지는 '주문을 내지 않고 지켜보기'입니다. 그런데 가상 관찰 중에도 여러 유형의 메시지가 함께 수신되어 구분이 어려웠습니다.추천·스캔 메시지: 원래는 사람이 판단·행동하도록 유도하는 알림수동매매 메시지: 실제 주문 .. 더보기
EP.14 국내주식 dry-run 자동매매, 가상 자본을 실계좌와 분리한 이유 이번 작업에서 다룬 문제자동매매를 만들 때 실주문 실행은 조심스럽게 다루면서도, 가상 실행(dry-run)의 자본 기준은 소홀히 두기 쉽다. 이번 작업의 핵심은 국내주식 dry-run 자동매매를 추가하면서 가상 자본을 실계좌 자산과 분리한 것이다.가상 자동 실행이 실계좌 잔고를 참조하면, 검증 결과와 위험 규모가 운영 계좌 상태에 종속된다. 그래서 실행 권한만이 아니라 자본 기준까지 분리하는 방향으로 정리했다.실행 권한 분리: 가상과 실주문을 나누다먼저 가상 자동 실행 플래그와 실주문 자동 실행 플래그를 분리했다. 두 실행 경로가 하나의 스위치로 묶여 있으면, 가상 검증 중에 실주문이 나가는 사고 위험이 생긴다.가상 자동 실행: dry-run 경로로만 동작실주문 자동 실행: 별도 플래그로 통제실주문 쪽은.. 더보기
여러 시스템을 다듬다 공통 매니저를 만든 이유 문제 제기: 하나가 잘 돌면 나머지도 잘 돌 줄 알았다시스템을 하나 잘 만들어 놓으면, 비슷한 대상에 그대로 붙이면 될 것 같습니다. 실제 개발 기록에서도 한국 주식으로 만든 기본 시스템에 코인과 미국 주식을 이어 붙이는 방식으로 확장했습니다.하지만 다듬는 과정에서 문제가 반복됐습니다. 한국 주식은 멀쩡한데 미국 주식에서만 문제가 생기는 일이 계속 나온 것입니다. 원인은 단순했습니다. 세 대상이 서로 다른 환경인데, 처음부터 끝까지 한국 주식 기준으로만 생각했기 때문입니다.왜 위험한가: 같은 수정이 환경마다 다르게 작동한다이 개발 기록에서 문제가 됐던 지점은, 한 곳(한국 주식)의 기준으로 검증한 사고방식을 나머지 환경에도 그대로 적용한 것이었습니다.거래 시간, 통화 단위, 데이터 형식, 규칙이 환경마다.. 더보기
자동화가 아무것도 안 할 때, 조건부터 완화하면 안 되는 이유 문제 제기: 아무 일도 일어나지 않는다자동화를 돌렸는데 결과가 나오지 않을 때가 있다. 매매 봇이 하루 종일 아무것도 사지 않거나, 알림이 오지 않거나, 조건 필터를 통과하는 후보가 하나도 없다. 이때 가장 흔한 반응은 "조건이 너무 빡빡한가 보다"라며 기준을 낮추는 것이다.그런데 조건을 완화하기 전에 던져야 할 질문이 있다. 정말 조건이 문제인가, 아니면 다른 단계에서 후보가 사라지고 있는가? 원인을 모른 채 기준부터 낮추면, 겨우 만들어 둔 안전장치를 스스로 허무는 결과가 된다.왜 위험한가: 완화는 안전 여유를 갉아먹는다실제 운영 기록에서 얻은 원칙이 있다. 국내·해외 자동매매를 함께 관찰하던 중 양쪽 모두 매수가 발생하지 않는 무매수 현상이 나타났다. 이때 매수 기준을 낮추지 않고, 탈락 사유와 기.. 더보기
계좌에 돈이 있어도 주문이 안 되는 원인 체크리스트 문제 제기: 돈은 있는데 왜 안 사지나계좌 잔고는 분명히 충분한데 매수가 이뤄지지 않는 경우가 있습니다. 매수 조건에는 맞아떨어졌는데도 사지지 않으면 보통 '돈이 부족한가?'부터 의심하게 됩니다.하지만 잔고와 무관하게 매수가 되지 않는 상황도 있습니다. 자동매매 프로그램을 만들다가 실제로 겪은 사례를 예로 들면, 계좌에 돈이 있어도 한 주 가격이 잔고보다 비싼 종목은 조건이 맞아도 사지지 않았습니다.왜 위험한가: 시장마다 주문 단위가 다르다제가 겪은 원인은 단순했습니다. 프로그램을 한국 주식 기준으로 만들었는데, 미국 주식에 그대로 적용한 것이 문제였습니다.한국 주식은 보통 1주 단위(정수)로 매수합니다.미국 주식은 종목에 따라 소수점 단위로도 매수할 수 있습니다.제 프로그램은 '무조건 정수 단위'로만 .. 더보기
다른 시장으로 자동화를 옮길 때 먼저 점검해야 할 것들 문제 제기: 잘 돌아가던 게 왜 다른 곳에선 멈추나한 환경에서 완성한 자동화 시스템은 재사용하고 싶어진다. 기본 틀을 그대로 두고 일부만 바꿔 붙이면 새 환경에서도 금방 돌아가기 때문이다. 실제로 필자는 한국 주식용으로 만든 자동매매 틀을 재사용해 코인용을 짧은 시간에 만들었고, 그 다음 날 미국 주식용까지 이어서 만들었다.재사용 덕분에 만드는 속도는 확실히 빨랐다. 다만 '금방 만들어진다'는 것과 '제대로 동작한다'는 것은 다른 이야기였다. 새 환경에는 원래 환경에 없던 규칙이 숨어 있었다. 그 결과 매수 조건을 충족해도 주문이 실행되지 않는 경우가 있었고, 코인에서는 개선 판단에 필요한 근거를 잡기 어려웠다. 재사용을 하지 말자는 게 아니라, 옮기기 전에 무엇을 점검해야 하는지가 이 글의 주제다.왜 .. 더보기
자동화 시스템을 만들기 전 API 가능 여부부터 확인하는 법 전략보다 먼저 확인해야 하는 것자동화 시스템을 만들 때 사람들은 흔히 '무엇을, 어떻게 자동화할지'부터 설계합니다. 하지만 그 앞에 먼저 던져볼 만한 질문이 있습니다. '그 작업을 프로그램이 대신 하는 게 애초에 가능한가?'실제로 주식 자동매매를 만들기로 했을 때, 저는 주식 지식이 거의 없는 상태였습니다. 그럼에도 제일 먼저 한 일은 매매 전략을 짜는 것이 아니라 '프로그램이 대신 사고파는 게 가능한지'를 알아보는 것이었습니다. 저는 이 사례에서 가능 여부를 먼저 확인하는 순서를 택했습니다.왜 API 확인을 건너뛰면 위험한가전략이나 코드를 먼저 완성한 뒤에 '그런데 이걸 자동으로 실행할 방법이 없다'는 사실을 뒤늦게 발견하면, 재작업이 필요해지거나 일정이 크게 지연될 수 있습니다.서비스가 외부 프로그램.. 더보기

반응형