감정을 빼려고 자동매매 봇을 만들었고, 지금은 멈춰 있습니다
수익은 짧게 끊고 손실은 길게 끌고 가는 습관이 있었습니다. 그걸 기계에 맡겨보려고 만들었는데, 결과가 좋지 않아 잠시 멈춘 상태입니다.
미리 적어둡니다. 이 글은 자동매매를 권하는 글이 아닙니다. 오히려 해보니 쉽지 않더라는 기록에 가깝습니다.
저에게는 반복되는 습관이 있었습니다
수익은 짧게 끊고, 손실은 길게 끌고 갑니다.
조금 오르면 사라질까 봐 얼른 팔고, 떨어지면 곧 돌아올 거라고 생각하며 붙들고 있습니다. 이게 반대로 돼야 한다는 건 압니다. 알면서도 매번 같은 자리에서 같은 선택을 합니다.
문제는 판단이 아니라 그 순간의 감정이었습니다. 화면을 보고 있으면 미리 정해둔 것과 다른 결정을 하게 됩니다.
그래서 든 생각
규칙을 미리 정해놓고, 그대로 실행하는 걸 기계에 맡기면 어떨까.
기계는 조급해하지 않고 아까워하지도 않습니다. 제가 못 지키는 걸 지켜줄 것 같았습니다. 매매를 자동으로 하고 싶었다기보다, 제 감정을 개입시키지 않고 싶었던 쪽에 가깝습니다.
마침 인스타그램이나 유튜브에 자동으로 거래하는 프로그램 영상이 자주 보였습니다. 화면에서 알아서 사고파는 걸 보면서 “되는구나, 나도 만들어볼까” 하는 생각이 들었습니다.
만들기는 했습니다
텔레그램으로 조작하는 구조로 만들었습니다. 명령어가 스무 개가 넘고, 실시간 시세를 받는 부분만 1,800줄이 넘습니다. 파이썬 파일 74개, 전체 1만 3천 줄쯤 됩니다.
돌아는 갑니다. 켜고 끄고, 상태를 묻고, 밖에서 조작하는 건 다 됩니다.
그런데 결과가 좋지 않았습니다
- 감정 때문에 규칙을 못 지킨다 수익은 짧게, 손실은 길게 — 매번 같은 자리에서 반복
- 규칙만 정해서 기계에 맡기면 되겠다 기계는 조급해하지도, 아까워하지도 않으니까
- 만들어서 돌려봤다 프로그램은 동작한다. 문제는 그다음이었다
- 테스트와 백테스트 결과가 좋지 않았다 기계는 규칙을 지켰다. 지킬 만한 규칙이 아니었을 뿐이다
과거 데이터로 돌려보는 걸 백테스트라고 합니다. 만든 규칙을 지난 시세에 적용해서 어떻게 됐을지 보는 것입니다.
돌려봤더니 결과가 좋지 않았습니다.
여기서 알게 된 게 하나 있습니다. 저는 “감정만 빼면 될 것”이라고 생각했는데, 감정을 빼도 규칙이 시원치 않으면 소용이 없었습니다. 기계는 제가 시킨 걸 정확히 했습니다. 시킨 게 별로였을 뿐입니다.
감정을 없애는 것과 좋은 규칙을 갖는 것은 다른 문제였습니다. 저는 그 둘을 하나로 묶어서 생각하고 있었습니다.
그래서 지금은 멈춰 있습니다
완성 단계도 아닙니다. 잠시 세워둔 상태입니다.
프로그램을 못 만들어서가 아니라 넣을 규칙이 아직 없어서입니다. 규칙 없이 계속 만들어봐야 잘 동작하는 껍데기만 정교해집니다.
그리고 요즘은 이런 생각이 듭니다. 마음 훈련을 하는 게 먼저인가.
프로그램을 만들면 제 습관을 우회할 수 있을 줄 알았습니다. 우회는 됐는데, 그러자 제가 애초에 어떤 규칙으로 매매하고 싶은지를 한 번도 제대로 정해본 적이 없다는 게 드러났습니다. 그건 프로그램이 대신 정해줄 수 없는 것입니다.
남은 교훈
- 영상으로 보는 것과 만들어보는 것은 다릅니다. 화면에서 알아서 사고파는 걸 보면 간단해 보입니다. 만드는 건 어렵지 않았는데, 무엇을 시킬지가 어려웠습니다.
- 도구가 문제를 대신 풀어주지 않습니다. 제 문제는 실행이 아니라 규칙이 없다는 것이었는데, 저는 실행 도구를 만들었습니다.
- 잘 돌아가는 게 잘 되는 게 아닙니다. 프로그램은 완벽하게 동작했고, 그래서 규칙이 별로라는 게 선명하게 드러났습니다.
- 멈추는 것도 결정입니다. 여기서 더 만들면 시간만 씁니다. 안 되는 걸 확인한 것도 결과입니다.
이 블로그의 다른 글들은 대부분 “이렇게 고쳤다”로 끝나는데, 이 이야기는 아직 안 끝났습니다. 끝나지 않은 것도 그대로 적어두는 게 맞다고 생각해서 적습니다.
이 글은 개인 프로젝트의 개발 기록입니다. 투자 자문이나 종목 추천이 아니며, 글에 등장하는 종목명은 프로그램의 동작을 설명하기 위한 예시입니다. 투자 판단과 그 결과에 대한 책임은 투자자 본인에게 있습니다.