OpenClaw로 시작한 첫 개인 프로젝트: 비트코인 자동 매매 시스템#
2026-03-14

OpenClaw를 이용한 첫 번째 개인 프로젝트로, 필자는 비트코인 자동 매매 시스템을 만들어 보기로 했습니다.
사실 투자라는 주제는 필자에게 새롭지 않습니다. 초심은 꽤 오래전부터 분명했습니다. 틈틈이 학습하고 시행착오를 쌓아, 언젠가는 필자만의 투자 전략을 정리하고, 감정에 흔들리지 않는 시스템적인 투자를 할 수 있는 상태에 도달하자는 것이었습니다. 그런데 10년도 훌쩍 넘는 시간이 지난 지금 돌아보면, 달라진 것이 기대만큼 많지는 않습니다.
펀드 투자와 금 투자는 나쁘지 않았습니다. 적어도 결과적으로는 성공적인 편이었습니다. 반면 주식 투자는 실패에 가까웠습니다. 크게 잃지도 않았지만, 그렇다고 의미 있게 따지도 못했습니다. 특히 주식 쪽에서는 지나치게 조심스럽게 집행하다 보니, 수익과 손실 모두 애매한 상태에서 시간을 오래 보냈습니다. 더 아쉬운 점은, 그 과정에서 지적 자산이 충분히 쌓이지 않았다는 것입니다. 어떤 판단이 왜 맞았고 왜 틀렸는지, 어떤 전략이 어떤 시장 구간에서 유효했는지, 다음 의사결정에 재사용할 수 있는 형태로 남겨두지 못했습니다.
필자는 장기적으로 볼 때 투자와 관련한 개인 역량이 매우 중요하다고 생각합니다. 투자를 통해 얻는 이윤은 결국 거래에서 발생합니다. 그리고 그러한 거래들에는, 반대편에서 손해를 보는 참여자가 존재할 수 있습니다. 기술적 실행이나 정보 접근의 일부를 AI나 증권사가 대신해 줄 수는 있습니다. 하지만 그런 도구들은 결국 경쟁자들에게도 점점 비슷하게 제공됩니다. 모두가 비슷한 도구를 쓴다면, 마지막에 차이를 만드는 것은 결국 무엇을 보고, 어떻게 해석하고, 어떤 원칙으로 행동하느냐일 가능성이 큽니다. 필자가 개인적인 투자 역량을 중요하게 보는 이유가 여기에 있습니다.
그래서 이번에는 투자와 관련한 개인 프로젝트를 하기로 결정했습니다. 그리고 현재 시점에서 자동화 시스템을 만들기 가장 만만한 대상이 비트코인이라고 판단했습니다. 시장이 24시간 열려 있고, 데이터 접근과 자동화 실험의 진입장벽이 상대적으로 낮으며, 작은 단위의 전략 실험을 반복해 보기에도 적합하다고 느꼈기 때문입니다. 그 결과물이 바로 btc-trader 초기 스냅샷 입니다.
이 1차 버전을 만들고 나니, 앞으로 어떤 식으로 발전시켜야 할지 감이 꽤 선명해졌습니다. 동시에 한 가지 더 크게 느낀 점이 있습니다. 이제는 과업을 수행하는 방식 자체가 이전과는 달라져야 한다는 점입니다. 예전 같으면 먼저 목표를 오래 고민하고, 계획을 세우고, 설계를 정리한 뒤 개발에 들어갔을 것입니다. 하지만 이제는 추상적인 목표가 있어도 일단 빠르게 시도해 보고, AI가 만들어낸 결과물과 제안들을 기반으로 다시 목표와 계획을 더 정교하게 잡을 수 있습니다. 이것은 단순히 개발 속도만의 문제가 아닙니다. 어느 방향으로 가야 하는지에 대한 고민 자체를 더 정보에 기반해, 더 효율적으로 할 수 있게 되었다는 점이 훨씬 중요하게 느껴졌습니다.
참고: 이 글은 투자 조언이 아니라, 필자의 개인 학습 기록이자 프로젝트 회고입니다.
이번 1차 버전에서 한 일#
현재 버전은 업비트 KRW-BTC 기준의 Phase 1 페이퍼 트레이딩 시스템입니다. 여기서 페이퍼 트레이딩은 실제 돈을 투입해 주문을 넣는 대신, 가상의 체결과 손익을 기록해 보는 시뮬레이션 방식의 거래를 뜻합니다. 즉 아직 실제 주문을 넣는 단계는 아니고, 데이터 수집과 지표 계산, 시그널 생성, 리스크 관리, 거래 기록이라는 자동 매매의 최소 골격을 먼저 구현한 상태입니다.
실행 흐름은 비교적 단순합니다.
- 시장 데이터를 가져옵니다.
- RSI, MA, MACD, 볼린저밴드 같은 기술적 지표를 계산합니다.
- 전략 조건에 따라 매수 / 매도 / 관망 시그널을 생성합니다.
- 리스크 한도에 맞는지 확인합니다.
- 실제 주문 대신 시뮬레이션 방식의 페이퍼 트레이딩으로 체결을 기록합니다.
- 로그와 일일 리포트를 남깁니다.
Phase 1 전략: RSI + MACD#
첫 버전의 전략은 아주 복잡하지 않습니다. 오히려 복잡하게 시작하지 않으려 했습니다. 처음부터 많은 지표와 예외 처리를 얹으면, 나중에 어떤 요소가 실제로 의미 있었는지 분리해서 보기 어려워지기 때문입니다. 그래서 일단은 RSI + MACD + MA20 조합으로 시작했습니다.
매수 조건은 아래와 같습니다.
RSI(14) <= 45이면 과매도 구간으로 보고, 이것만으로도 매수 신호를 낼 수 있습니다.MACD히스토그램이 음수에서 양수로 전환되면 모멘텀 반전의 보조 신호로 봅니다.- 현재가가
MA20위에 있으면 단기 상승 추세라는 점에서 신뢰도를 더합니다.
핵심은 1번이 기본 트리거이고, 2번과 3번은 신뢰도를 높이는 역할이라는 점입니다.
매도 조건은 아래와 같습니다.
RSI(14) >= 72이면 과매수 구간으로 보고, 이것만으로도 매도 신호를 낼 수 있습니다.MACD히스토그램이 양수에서 음수로 바뀌는 경우를 봅니다.- 현재가가
MA20아래에 있으면서RSI > 50인 경우를 함께 봅니다.
즉 매도는 RSI 과매수 단독 또는 MACD 반전 + 추세 약화 동시 충족이라는 두 갈래로 해석할 수 있습니다.
손절 / 익절 기준도 단순하게 두었습니다.
- 손절: 진입가 대비
-3% - 익절: 진입가 대비
+5%
이 수치들이 절대적으로 옳다고 생각해서 넣은 것은 아닙니다. 지금 단계에서는 완벽한 파라미터를 찾는 것보다, 전략이 어떻게 행동하는지 관찰 가능한 구조를 만드는 것이 더 중요하다고 판단했습니다.
리스크 관리는 전략만큼 중요했습니다#
자동 매매를 생각할 때 흔히 전략부터 떠올리기 쉽지만, 실제로는 리스크 제약이 전략 못지않게 중요합니다. 아무리 그럴듯한 시그널이 나와도 거래 빈도와 포지션 크기를 통제하지 못하면 결과가 쉽게 망가질 수 있기 때문입니다.
현재 버전에서 둔 기본 제약은 아래와 같습니다.
| 설정 | 기본값 | 의미 |
|---|---|---|
MAX_TRADES_PER_HOUR | 3 | 시간당 최대 거래 횟수 |
MAX_POSITION_RATIO | 20% | 1회 최대 진입 비중 |
MAX_TOTAL_POSITION | 80% | 전체 최대 포지션 비율 |
STOP_LOSS_RATIO | -3% | 손절 기준 |
TAKE_PROFIT_RATIO | +5% | 익절 기준 |
필자는 이런 제한들이 단순한 안전장치 이상의 의미를 갖는다고 생각합니다. 어떤 전략이든 실제로는 시장보다 먼저 자기 자신을 통제하는 시스템이어야 하기 때문입니다. 진입 조건만큼이나, 얼마나 자주 들어갈지 / 한 번에 얼마를 걸지 / 어디서 끊을지를 구조화해 두는 것이 중요합니다.
이번에 사용한 지표를 어떻게 이해하고 있는가#
이번 프로젝트는 기술적 지표를 처음부터 새롭게 발명하는 것이 아니라, 이미 널리 쓰이는 지표들을 필자의 언어로 다시 이해하고 연결하는 과정에 가깝습니다.
MA (이동평균)#
이동평균은 일정 기간 종가의 평균으로, 가장 기본적인 추세 판단 도구입니다.
MA20: 최근 20봉 평균으로 단기 추세를 봅니다.MA60: 최근 60봉 평균으로 중장기 흐름을 봅니다.- 현재가가
MA20위에 있으면 단기 상승 추세, 아래에 있으면 단기 하락 추세로 해석합니다.
이번 시스템에서는 1시간봉 기준 MA20 / MA60 을 사용합니다.
EMA (지수이동평균)#
EMA는 최근 데이터에 더 큰 가중치를 두는 이동평균입니다. 가격 변화에 MA보다 더 빠르게 반응하기 때문에, 짧은 흐름의 변화나 모멘텀을 다룰 때 유용합니다.
- 계산 방식은 오늘 EMA가 어제 EMA와 오늘 가격의 차이를 일정 비율만큼 반영하는 구조입니다.
- 기간이 짧을수록 최근 가격에 민감합니다.
- 기간이 길수록 흐름을 더 부드럽게 반영합니다.
이번 시스템에서는 RSI 계산 내부와 MACD 계산에 EMA가 들어갑니다.
MACD#
MACD는 단기 EMA와 장기 EMA의 차이로 추세와 모멘텀을 동시에 보려는 지표입니다.
MACD선:EMA(12) - EMA(26)시그널선: MACD선의 9일 EMA히스토그램:MACD선 - 시그널선
필자는 특히 히스토그램의 부호 전환을 중요하게 봤습니다. 음수에서 양수로 바뀌면 상승 모멘텀이 살아나는 신호로, 양수에서 음수로 바뀌면 하락 모멘텀이 커지는 신호로 해석할 수 있기 때문입니다.
볼린저밴드#
볼린저밴드는 MA20 을 중심선으로 하고, 위아래에 표준편차 기반 밴드를 두어 가격의 상대적 위치와 변동성을 보는 도구입니다.
- 상단밴드:
MA20 + 표준편차 x 2 - 하단밴드:
MA20 - 표준편차 x 2 - 밴드 폭이 좁아지면 변동성 축소, 넓어지면 변동성 확대 가능성을 봅니다.
현재 전략에서 직접 매수 / 매도 조건으로 쓰고 있지는 않지만, 이후 변동성 기반 필터나 보조 판단 기준으로 붙여볼 여지가 있습니다.
RSI#
RSI는 일정 기간의 상승폭과 하락폭을 비교해 현재가가 과열인지 침체인지 가늠하는 지표입니다. 값은 0 ~ 100 범위입니다.
70이상이면 과매수로 해석하는 경우가 많습니다.30이하이면 과매도로 해석하는 경우가 많습니다.
이번 시스템에서는 RSI(14) 를 기준으로, 매수는 45 이하, 매도는 72 이상으로 두었습니다. 전통적인 30 / 70보다 약간 완화된 값인데, 이는 시그널 발생 빈도를 아예 없애지 않으면서도 과도하게 민감하지 않게 해보려는 초기 선택에 가깝습니다.
RSIMACDStrategy#
현재 기본 전략 클래스는 RSIMACDStrategy 입니다. RSI와 MACD 히스토그램, 그리고 MA20 을 조합해 매수 / 매도 / 관망을 판단합니다.
- 매수:
RSI <= 45가 기본 조건이고, MACD 반전과가격 > MA20이 신뢰도를 올립니다. - 매도:
RSI >= 72또는MACD 반전 + 가격 < MA20 + RSI > 50조합으로 판단합니다. - 신뢰도: 충족한 조건 수를 기반으로
0.33 ~ 1.0범위로 계산합니다.
이 구조는 이후 다른 전략들을 추가하기 위한 출발점이기도 합니다. 앞으로 전략 클래스를 늘리고, BaseStrategy 기반으로 비교 가능한 형태를 만드는 것이 자연스러운 다음 단계라고 보고 있습니다.
이 프로젝트를 하면서 방식이 바뀌고 있다는 생각#
필자에게 이번 프로젝트는 단순히 “비트코인 자동 매매기를 하나 만들어 봤다"로 끝나는 작업은 아니었습니다. 오히려 더 중요한 것은, 무엇을 어떻게 시작할 것인가에 대한 감각이 바뀌고 있다는 점이었습니다.
예전 방식은 대체로 이랬습니다. 먼저 목표를 구체화하고, 계획을 세우고, 설계를 하고, 그다음에 개발을 시작했습니다. 물론 그 방식이 틀렸다고 생각하지는 않습니다. 다만 추상도가 높은 목표를 다룰 때는, 실제로 만들어 보기 전까지는 무엇이 문제인지조차 정확히 보이지 않는 경우가 많았습니다.
이번에는 반대로 접근했습니다. 일단 시작 가능한 최소 단위의 결과물을 빠르게 만들었습니다. 그리고 그 결과물을 보면서,
- 어떤 부분이 실제로 중요한지,
- 어떤 설계는 과했고 어떤 설계는 부족했는지,
- 다음 단계에서 무엇을 검증해야 하는지,
- 어디까지를 자동화하고 어디부터는 사람이 해석해야 하는지
를 더 선명하게 볼 수 있었습니다.
필자는 이 점이 AI 시대의 개발 방식에서 매우 중요하다고 생각합니다. 이제는 추상적인 목표를 오래 머릿속에서만 굴리는 대신, 빠르게 작동하는 형태로 드러내고, AI가 제시하는 구현물과 대안들을 발판으로 삼아 목표와 계획을 다시 세울 수 있습니다. 이것은 단순한 생산성 향상이 아니라, 방향 설정 자체의 비용을 낮춰 주는 변화에 가깝습니다.
앞으로의 방향#
현재 저장소에 적어둔 로드맵은 아래와 같습니다.
- Phase 1 (현재): 데이터 수집 + 기술적 지표 + 페이퍼 트레이딩
- Phase 2: 실제 거래 연결 + 텔레그램 알림 + 모니터링 대시보드
- Phase 3: 외부 데이터(Fear & Greed, 온체인) + 백테스팅
- Phase 4: 다중 전략 + 포트폴리오 최적화
필자는 당장 “수익이 나는 자동 매매기"를 만드는 것보다, 그 전에 반복 가능한 학습 시스템을 만드는 쪽이 더 중요하다고 봅니다. 거래 기록이 남고, 전략별 판단 근거가 남고, 결과를 다시 해석할 수 있어야 합니다. 그래야 시간이 지나도 조금씩 지적 자산이 쌓입니다. 지금까지 투자에서 가장 아쉬웠던 부분이 바로 그 축적의 부재였기 때문입니다.
이번 OpenClaw 프로젝트의 의미도 거기에 있습니다. 첫 버전은 아직 단순하고, 실제 투자 시스템이라고 부르기에는 초기 프로토타입에 가깝습니다. 하지만 적어도 이제는 막연히 “투자를 잘하고 싶다"가 아니라, 어떤 시스템을 만들고 어떤 방식으로 실험해야 필자의 투자 역량이 쌓이는지를 조금 더 구체적으로 말할 수 있게 되었습니다.
그 점만으로도, 이번 첫 번째 프로젝트는 충분히 의미가 있었습니다.