AI 시대가 왔다. 코드도 짜준다고 했다. 그 말에 나는 꽤 호기롭게 시작했다. "자동매매 봇 만들어줘" 한마디면 뚝딱 나오는 줄 알았다.
시작은 정말 쉬웠다. 계좌를 만들고, 키움 OpenAPI+ 사용을 신청하고, 모의투자를 따로 신청하고, 32비트 파이썬을 깔았다. 이 과정은 이미 잘 정리된 블로그 글이 워낙 많아서 따라 하는 데 어려움이 없었다. 나도 그 글들 덕을 톡톡히 봤다. 여기까지만 보면 "어, 이거 할 만한데?" 싶었다.
그다음에 헬이 열릴 줄은 몰랐다.
목차
나는 왜 봇을 만들려 했나
먼저 밝혀둘 게 있다. 나는 처음부터 "아무 매매법이나 대충" 코드로 짜려던 게 아니었다.
1편에서 말했듯이, 내 문제는 손가락이었다. 사야 할 때 망설이고, 팔아야 할 때 붙들고, 안 사도 될 걸 충동적으로 사버렸다. 머리로는 규칙을 알고 있었는데 손이 감정을 못 이겼다. 그래서 나는 감정을 빼고, 정해둔 규칙대로만 움직이게 하고 싶었다.
이유는 하나 더 있었다. 나는 하루종일 종목을 들여다보고 있어야 했다. 조건이 단순히 "얼마가 되면"이라면 HTS 조건검색에 걸어두면 된다. 그런데 내 조건은 그렇게 단순하지 않았다. 이것도 맞아야 하고 저것도 맞아야 하고, 여러 조건이 동시에 얽히기 시작하면 조건검색만으로는 감당이 안 됐다. 결국 내가 직접 화면을 노려보며 하나하나 확인해야 했다.
그게 사람이 할 짓이 아니었다. 눈은 빠질 것 같고, 시간은 시간대로 버려졌다. 잠깐 다른 일을 하다 보면 그새 자리를 놓쳤고, 계속 기다리자니 하루가 통째로 모니터 앞에 묶였다.
나에게는 지키고 싶은 매매 스타일이 분명히 있었지만, 그걸 사람의 눈과 손으로 지키는 건 한계가 있었다. 특히 스윙처럼 내가 계속 붙어 있지 않아도 되는 매매는, 이 복잡한 조건 감시를 기계에게 넘기면 되겠다고 생각했다. 그래서 봇을 만들기로 한 것이다.
말만 하면 다 될 줄 알았다
그런데 AI에게 이걸 맡기려니 첫 단추부터 좀 이상했다. AI는 어떤 식의 매매를 할 생각이냐고 물어왔다. 정확한 단어까진 기억나지 않지만, 돌파인지 눌림인지 내 스타일을 묻는 식이었다. 나는 그때 이렇게 생각했다. 이렇게 물어보는 걸 보니, 내가 원하는 방식만 말하면 알아서 다 만들어주겠구나.
그런데 알고 보니 아니었다.
내가 방식을 설명한다고 그게 바로 돌아가는 코드로 이어지는 게 아니었다. AI는 그럴듯한 용어를 주고받으며 아는 척은 하는데, 정작 실제로 돌려보면 전혀 다른 이야기였다. 말만 하면 다 해줄 거라는 기대는, 시작하자마자 무너졌다.
그래도 일단 내가 정한 규칙을 최대한 자세히 설명하고 코드를 받아봤다.
돌려보면 안다
AI는 코드를 짜주긴 한다. 내가 조건을 넣으면 그럴듯한 코드가 나왔다. 문법도 맞고, 얼핏 보면 완성된 것처럼 보였다.
그런데 나는 돌려보고 알았다. 시작하자마자 에러였다. 매수는커녕 로그인 그다음 단계도 못 넘어가고 멈춰 섰다. 그럴듯하게 생겼을 뿐, 실제 키움 서버 앞에서는 첫걸음부터 막혀버린 것이다.
AI는 코드를 던져주지만, 그게 왜 시작하자마자 에러가 나는지는 알려주지 않는다. 게다가 어떤 에러는 대놓고 멈춰서 알려주지만, 어떤 문제는 에러도 없이 조용히 틀린 값을 내놓는다. 나는 시작부터 막히는 에러보다 이렇게 조용히 틀리는 쪽이 더 무섭다는 걸 나중에야 알았다. 이 이야기는 나중에 따로 풀어보려 한다.
결국 검증은 내 몫이었다
그래서 나는 깨달았다. AI에게 코드를 시키는 것과, 그 코드로 실제 매매를 하는 것은 전혀 다른 일이라는 걸.
AI가 짜준 코드가 진짜 내 의도대로 도는지 확인하려면, 나오는 에러 코드를 하나하나 내가 다 체크해야 했다. 이 숫자가 무슨 뜻인지, 왜 이 자리에서 멈추는지, 왜 어떤 값은 엉뚱하게 들어오는지. 그 의미를 모르면, AI가 짜준 코드가 어디서 왜 틀어졌는지 영영 알 수 없다. AI는 코드를 던져주고 끝이지만, 그게 실제 돈이 걸린 서버에서 제대로 도는지 확인하는 건 오롯이 내 일이었다.
이것만은 말해두고 싶다
그래서 이 글을 읽는 사람에게 하나만 말해두고 싶다. AI가 짜준 코드를 실계좌에 바로 돌리지 마라. 반드시 모의투자부터 시작해라.
문법이 맞다고, 에러 없이 돌아간다고 검증된 게 아니다. 조용히 틀린 값으로 주문이 나가면 그때는 되돌릴 수가 없다. 나는 한참을 모의투자에서만 돌렸고, 그러길 잘했다고 지금도 생각한다.
참고로 키움 모의투자는 실계좌와 별도로 신청해야 한다. OpenAPI+ 사용 신청과도 별개다. 처음 시작하는 사람이 여기서 한 번 걸리는데, 미리 알고 시작하면 시간을 아낄 수 있다.
그래서 이 블로그는
이 블로그는 그 검증의 기록이다. 코드 한 줄 한 줄을 가르치는 곳이 아니다. 코드는 AI도 짠다. 하지만 그 코드가 왜 실제론 안 도는지, 어떤 에러가 왜 나는지, 그걸 어떻게 하나씩 확인하며 진짜 도는 봇으로 만들어갔는지 — 그 과정을 남긴다.
다음 글은 그 첫 번째 벽 이야기다. 나는 로그인 하나에서, 이게 된 건지 안 된 건지조차 알 수 없는 상태로 새벽을 통째로 날렸다.
댓글 쓰기