암호화폐

[왕초보] 파이썬 자동매매 봇 #1: 24시간 잠들지 않는 나만의 트레이더

날먹공장장 2025. 7. 16. 21:25

안녕하세요. 날먹공장장입니다.

 

저는 잠을 자고, 친구를 만나고, 본업에 집중하는 동안에도 스스로 시장을 분석하고 판단하여 24시간 쉬지 않고 거래하는 시스템을 만드는 것이 목표입니다. 24시간 날먹으로 자동매매하는 프로그램을 만들고 있는데, 사실 이 프로그램도 AI가 만들어 줍니다.

제가 하는건 오류가 나면 AI에게 오류를 보여주고, 수정된 코드를 다시 적용하여 정상동작 여부만 판단합니다.

 

현재까지 자동매매 프로그램을 만든지 약 1달차.

여러 우여곡절을 겪으며 완성된 최종 트레이딩 전략 Ver 1.0을 기록해보려 합니다.

물론 이 전략도 적어도 2주~1달정도 지켜보면서 전략의 안정성을 확인해야 합니다.


🤖 코어 철학: "애매하면 들어가지 않는다"

모든 전략의 시작은 철학에서 비롯됩니다. 제 봇의 제1원칙은 다음과 같습니다.

"확실한 추세가 아니면, 절대 진입하지 않는다. 진입했다면, 원칙에 따라 기계적으로 청산한다."

이를 위해 저는 '진입'과 '청산'을 완전히 다른 관점에서 접근했습니다. 진입은 최대한 까다롭게, 여러 번 확인하여 신중하게 결정하고, 일단 포지션에 진입하면 어떻게 수익을 지키고 리스크를 관리하며 빠져나올지에 모든 역량을 집중합니다.

이 철학을 코드로 구현한 것이 바로 '3중 필터'와 '계층적 청산 로직'입니다.


🎯 진입 전략: 세 명의 장군이 모두 동의할 때만 출정한다!

아무리 좋은 무기(지표)가 있어도 하나만 보고 전쟁에 나설 수는 없습니다. 저는 최소 세 가지의 다른 관점에서 "지금이 확실한 추세다!"라는 동의가 나올 때만 포지션에 진입하도록 설계했습니다.

1️⃣ 기반 필터: 트리플 슈퍼트렌드 (15분봉)

  • 역할: 추세의 방향성을 결정하는 가장 기본적인 필터입니다.
  • 조건: 제가 설정한 3개의 다른 슈퍼트렌드 지표(장기, 중기, 단기)가 모두 같은 방향(전부 상승 또는 전부 하락)을 가리켜야 합니다. 마치 세 명의 장군이 모두 "진격하라!" 또는 "후퇴하라!"를 외치는 것과 같습니다. 하나라도 다른 의견을 내면, 추세의 힘이 약하다고 판단하고 진입하지 않습니다.

2️⃣ 확인 필터: CMF (Chaikin Money Flow)

  • 역할: 현재 추세에 '돈'이 실리고 있는지 확인하는 자금 흐름 필터입니다.
  • 조건: 트리플 슈퍼트렌드가 모두 '상승'을 가리킬 때, CMF 지표도 0 이상이어야 합니다. 이는 실제로 매수세가 유입되고 있음을 의미합니다. 반대로 '하락' 신호가 뜨면, CMF는 0 이하여야 실제 매도 압력이 강하다는 것을 확인하고 진입합니다. 거래량 없는 껍데기뿐인 상승/하락을 걸러내는 중요한 필터입니다.

3️⃣ 트리거 필터: 엔벨로프 채널 돌파 (1시간봉)

  • 역할: 더 큰 시간대(1시간봉)에서 변동성이 폭발하며 추세가 시작되는 '트리거'를 확인합니다.
  • 조건: 1, 2번 조건이 모두 충족된 상태에서, 1시간봉 차트의 가격이 엔벨로프 상단선을 강하게 뚫고 올라가거나(롱 진입), 하단선을 뚫고 내려가야(숏 진입) 합니다. 좁은 박스권을 벗어나 본격적인 추세가 시작되는 '신호탄'을 확인하는 과정입니다.

요약:
(1) 3개의 슈퍼트렌드 방향 통일 → (2) 자금 흐름(CMF) 확인 → (3) 상위 시간봉(1시간) 추세 분출 확인.
이 세 가지 관문을 모두 통과해야만 저의 봇은 비로소 포지션에 진입합니다.

각 지표별 설정
슈퍼트렌드 1 : ATR 120, 계수 4
슈퍼트렌드 2 : ATR 12, 계수 3
슈퍼트렌드 3 : ATR 11, 계수 2

엔벨로프 : 60분봉 길이 50, 퍼센트 1

CMF : 길이 20

위 3가지 조건의 예시는 아래 사진과 같습니다.

 


🛡️ 청산/관리 전략: 이익은 지키고, 손실은 자른다

진입만큼, 아니 진입보다 더 중요한 것이 바로 '청산'입니다. 제 봇은 포지션에 진입한 순간부터 아래의 규칙들을 계층적으로, 실시간으로 감시하며 기계적으로 대응합니다.

최우선 순위: 트레일링 스탑 (ATR 기반)

  • 언제: 부분 익절에 성공하여 수익이 어느 정도 확보되었을 때 발동됩니다.
  • 어떻게: `ATR(평균 변동성)` 지표를 이용해, 가격이 상승(롱 포지션)하면 손절 라인도 따라 올라가고, 하락하면 그대로 유지합니다. 이익을 극대화하면서 갑작스러운 가격 급락으로부터 최소한의 수익을 지켜주는 아주 영리한 안전장치입니다.

1순위: 최초 손절 라인 (Initial Stop-Loss)

  • 언제: 포지션에 진입하는 즉시 설정됩니다.
  • 어떻게: 진입 근거가 되었던 슈퍼트렌드 12라인을 손절 라인으로 설정합니다. "이 가격이 깨지면 나의 진입 근거는 틀렸다"라고 인정하는 명확한 기준선입니다. 감정적인 '물타기'나 '존버'를 원천적으로 차단합니다.

2순위: 추세 이탈 감지 (슈퍼트렌드 신호 반전)

  • 언제: 포지션 보유 중 추세의 힘이 약해질 때.
  • 어떻게: 나를 지지하던 3개의 슈퍼트렌드 중 2개 이상이 반대 신호를 보내면, 즉시 포지션을 종료합니다. 추세가 끝나감을 감지하고 더 큰 손실을 보기 전에 빠르게 빠져나오는 로직입니다.

3순위: 손익비(R/R) 기반 분할 익절

  • 언제: 수익이 발생했을 때.
  • 어떻게: `손절폭의 2배`를 최종 익절 목표로 설정합니다. 그리고 목표까지 가는 길의 절반(손절폭의 1배 수익) 지점에서 보유 물량의 30%를 먼저 익절하여 수익을 확보합니다. 나머지 물량은 최종 목표까지 가져가거나, 추세가 꺾이기 전까지 트레일링 스탑으로 따라가며 수익을 극대화합니다.

⚙️ 전략을 뒷받침하는 단단한 시스템: 모든 것은 기록되고 보고된다

아무리 좋은 전략이라도 제대로 실행되고 있는지, 과거의 결정이 올바랐는지 돌아볼 수 없다면 무용지물입니다. 저는 이 자동매매 시스템을 '한번 만들고 끝'이 아니라, 계속해서 데이터를 분석하고 개선해나가는 '살아있는 시스템'으로 만들고 싶었습니다.

이를 위해 두 가지 강력한 보조 시스템을 구축했습니다.

1. 꼼꼼한 비서, 자동 매매일지 (엑셀 저장)

수동으로 매매일지를 작성하는 것은 생각보다 번거로운 일입니다. 그래서 저의 봇은 모든 활동을 스스로 기록하도록 만들었습니다.

  • 거래 로그 (Trade Log): 언제, 어떤 코인을, 얼마에, 얼마나, 왜 사고팔았는지 모든 거래 내역이 타임스탬프와 함께 자동으로 기록됩니다. 단순히 거래 내역뿐만 아니라, 해당 거래로 발생한 손익(PnL)과 거래 후의 총자산까지 계산하여 엑셀 파일로 깔끔하게 정리해 줍니다.
  • 판단 로그 (Decision Log): 더 중요한 것은 '왜 거래하지 않았는지'도 기록한다는 점입니다. "진입 조건 불충족", "쿨다운 시간" 등 매 순간 어떤 판단을 내렸는지 상세한 데이터와 함께 별도의 로그 파일로 저장됩니다. 이 데이터는 훗날 전략을 복기하고 개선하는 데 가장 중요한 자산이 될 것입니다.

2. 충실한 집사, 텔레그램 실시간 알림

봇이 혼자 24시간 일하는 것은 좋지만, 가끔 잘 돌아가고 있는지 궁금할 때가 있죠. 그래서 저는 봇에게 '보고'하는 능력을 주었습니다.

  • 실시간 보고: 새로운 포지션에 진입하거나, 목표가에 도달해 익절할 때, 혹은 손절 라인이 터졌을 때, 그 즉시 제 개인 텔레그램으로 상세한 보고 메시지를 보냅니다.
  • 깔끔한 리포트: 단순히 "XRP 매수!"처럼 단편적인 메시지가 아닙니다. `진입가`, `수량`, `레버리지`, `초기 손절가`, `목표 익절가`, 그리고 `현재 총자산`까지 담긴 깔끔하게 정리된 리포트 형식으로 알려주어, 제가 언제 어디서든 상황을 한눈에 파악할 수 있습니다.



💡 앞으로의 계획

지금까지 설명해 드린 전략은 저의 자동매매 여정의 첫걸음입니다. 앞으로는 다음과 같은 기능들을 추가하며 봇을 더욱 고도화할 계획입니다.

  • 피라미딩 전략: 수익이 날 때 포지션을 더 추가하여 이익을 복리로 쌓는 '불타기' 전략
  • 변동성 돌파 전략: 횡보장에서 에너지를 응축했다가 폭발하는 순간을 포착하는 전략
  • 머신러닝 기반 필터: 과거 데이터를 학습하여 특정 패턴에서 승률이 높은지 판단하는 AI 필터 추가

자동매매 프로그램을 개발하고 운영하는 것은 단순히 코딩만 하는 것이 아니라, 시장을 이해하고 자신만의 투자 원칙을 세우는 과정 그 자체였습니다. 앞으로 저의 봇이 만들어갈 매매일지와 수익률, 그리고 더 발전해나가는 전략들을 꾸준히 공유하겠습니다.