본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 22. 16:15

Telegram 신호를 듣고 Binance에서 거래하는 자율형 AI 트레이더를 구축했습니다. $100로 무엇을 할 수 있을까요?

요약

Telegram의 암호화폐 신호를 분석하여 Binance에서 자동으로 거래를 수행하는 서버리스 AI 트레이딩 봇 구축 사례를 소개합니다. Vercel Pro를 기반으로 웹훅 수신기, 신호 파서, 백테스터, 실행기로 구성된 엔드 투 엔드 아키텍처를 구현했습니다.

핵심 포인트

  • Telegram 웹훅과 정규표현식을 활용한 실시간 신호 파싱
  • Vercel Pro를 이용한 서버리스 기반의 4단계 아키텍처 설계
  • 실수 방지를 위한 드라이 런(Dry-run) 및 라이브 모드 분리
  • 봇 메시지 중복 포착 문제를 해결하기 위한 message_id 기반 필터링

저는 AI가 인간의 개입 없이 Telegram 채널에서 암호화폐 신호를 읽고 Binance에서 거래를 실행할 때, $100의 자본금으로 어디까지 갈 수 있는지 확인하고 싶었습니다. 이론적인 것이 아닙니다. 실제로 구축했고, 실제로 배선되었으며, 오늘 드라이 런 (Dry-run) 상태로 실제로 실행 중입니다. 어떤 일이 일어났는지 소개합니다.

아이디어, 솔직하게 말씀드리면: 제3자 신호 서비스 (V4SE)가 Telegram 채널로 거래 아이디어를 푸시합니다. 메시지는 다음과 같은 형태입니다:

🟢 NEW LONG ETH (4H) 진입가: 2445.80 목표가: 2471.56 (1.1%)

그리고 포지션이 종료될 때는 다음과 같습니다:

✅ EXIT LONG ETH (2H) 수익률(PnL): +2.46% | 사유: runner_hit

질문은 이것입니다: 이 피드(feed)를 $100로 시작하여 저를 대신해 Binance에서 자동 거래를 수행하는 봇으로 바꿀 수 있을까요?

아키텍처 (Architecture), 엔드 투 엔드 (End to end):
네 가지 구성 요소로 이루어져 있으며, 모두 서버리스 (Serverless) 방식이고, 모두 Vercel Pro에서 구동됩니다:

  1. Telegram 웹훅 수신기 (Webhook receiver) — 신호 판독 봇의 setWebhook에 등록되어, Telegram이 모든 채널 게시물을 제 엔드포인트(endpoint)로 실시간 푸시합니다. 폴링 (Polling)도 없고, 놓치는 신호도 없습니다.
  2. 신호 파서 (Signal parser) — 실제 메시지 형식에 대해 정규 표현식 (Regex)을 사용하여 방향/페어(pair)/타임프레임(timeframe)/진입가/목표가/수익률(pnl)을 추출합니다.
  3. 백테스터 (Backtester) — 과거 신호를 재현하고, 진입과 종료를 페어링하며, 수수료를 제외한 실현 손익 (Realized P&L) 및 시뮬레이션된 $100 자본금의 자산 곡선 (Equity curve)을 계산합니다.
  4. Binance 현물 실행기 (Binance Spot executor) — 파싱된 진입 신호가 오면, USDT의 $10 조각을 사용하여 기초 자산을 시장가 매수합니다. 파싱된 종료 신호가 오면, 포지션을 시장가로 매도합니다. 모든 결정은 로그로 기록됩니다.

실행기에는 두 가지 모드가 있습니다. 드라이 런 (Dry-run)이 기본값입니다. 현재 시장 가격을 조회하고, 거래가 어떻게 되었을지를 기록하며, 저장소에 "포지션"을 추적하지만, Binance에서는 아무것도 수행하지 않습니다. 라이브 (Live) 모드는 명시적인 환경 플래그 (Environment flag)와 API 키가 필요합니다. 이는 의도적인 설계입니다. 드라이 런은 실수로 우회하는 것이 불가능해야 하기 때문입니다.

프로젝트를 거의 망칠 뻔했던 세 가지 요소:
인간의 입력인 것처럼 위장하는 봇 메시지.

동일한 프로젝트의 초기 단계에서, 저는 창립자의 메시지를 포착하여 이사회 토론(board discussions)에 전달하는 채널 리스너(channel listener)를 구현했습니다. 하지만 결과적으로 제가 만든 봇들의 답변을 포착하는 문제가 발생했습니다. "이모지로 시작함"을 판별하는 필터 정규식(regex)이 ⚙️ (U+2699 + U+FE0F)와 같은 변형 선택자(variation-selector) 문자를 처리하지 못했기 때문입니다. 16개의 봇 메시지가 "창립자의 지시 사항"으로 저장되어 다음 라운드의 컨텍스트(context)로 다시 입력되었고, 이로 인해 이사회가 스스로에게 응답하는 상황이 벌어졌습니다. 해결책은 우리가 게시한 모든 message_id를 원장(ledger)에 기록하고, 텍스트 휴리스틱(heuristics)을 적용하기 전에 ID를 통해 단락(short-circuit) 처리하는 것이었습니다. 이 점을 언급하는 이유는 트레이딩 측면에서도 동일한 실패 모드(failure mode)가 존재하기 때문입니다. 만약 "이 메시지는 내가 행동해야 할 신호이다"와 "이 메시지는 내가 생성한 노이즈이다"를 확실하게 구분할 수 없다면, 우리는 스스로를 파산의 루프(loop)로 몰아넣을 것입니다.

Binance의 지리적 차단(geo-blocks). Vercel의 기본 배포 지역은 iad1 (미국 동부)입니다. api.binance.com은 미국 IP에 대해 HTTP 451 에러를 반환합니다. 실행기(executor)가 처음 가격을 가져오려 했을 때 아무런 응답도 받지 못했고, 포지션을 여는 것을 올바르게 거부했습니다. 해결책은 라우트(route) 상단에 두 줄의 코드를 추가하는 것이었습니다: export const runtime = "nodejs"; export const preferredRegion = ["fra1"]; // 프랑크푸르트. Vercel Pro를 사용하면 개별 함수를 특정 지역에 고정할 수 있습니다. 프랑크푸르트는 Binance.com에 접속이 가능합니다. 특히 가격 조회(price lookups)를 위해 CoinGecko 폴백(fallback)도 추가했는데, Binance를 통해 접근 가능한 가격 정보가 단일 장애점(single point of failure)이 되는 것을 원치 않았기 때문입니다.

신호 부트스트랩 격차(Signal bootstrap gap). 백테스터(backtester)를 처음 실행했을 때 6개의 포착된 신호가 있었습니다: 3개의 진입(entries)과 3개의 청산(exits) — 하지만 청산 중 어느 것도 진입과 일치하지 않았습니다. 우리가 채널에 중간 순서로 참여했기 때문입니다. 해결책은 측정을 두 가지로 나누는 것이었습니다: our_executed(우리의 관찰 기간 동안 쌍을 이룬 진입→청산)와 provider_realized(우리가 진입을 포착했는지 여부와 상관없이 V4SE가 게시한 모든 청산). 두 번째 방식이 제공자의 실제 승률에 더 가깝습니다. 세 번의 청산에 대해 결과는 승률 100%, 평균 PnL(손익) +2.4%로 나타났습니다.

n=3이라는 수치는 과학적으로 무의미하지만, 그 방향성은 몇 주간의 시뮬레이션 (dry-run) 관찰을 정당화할 만큼 충분히 흥미롭습니다. $100 규모의 Binance 현물 (Spot) 거래에 대한 실제 수학적 계산을 해보면, 거래당 편도 0.1%, 즉 왕복 0.2%의 수수료가 발생합니다. 만약 평균 수익이 +2%이고 평균 손실이 -1.5%라면, 수수료를 제외하고 본전(break even)을 치기 위해서만 약 45%의 승률이 필요합니다. 지금까지 V4SE의 샘플은 이보다 훨씬 뛰어나지만, 세 개의 데이터 포인트로는 아무것도 증명할 수 없습니다. $100의 자산 중 거래당 $10를 사용한다면, 각 거래는 잔고를 10 × (PnL% − 0.2%) / 100 만큼 변화시킵니다. 평균 2.4% 수익은 복리 계산 전 거래당 $0.22를 의미합니다. 하루에 세 번 거래한다면 일주일에 $6.60입니다. 인생을 바꿀 정도는 아니지만, 이것이 바로 알고리즘 트레이딩 (algorithmic trading)이 실제로 지향하는 '작은 우위를 규모의 경제로 복리화하는 것'의 전형적인 모습입니다.

걱정해야 할 실패 모드는 느린 수익이 아니라, 단 한 번의 파멸적인 거래입니다. 따라서 실행기 (executor)는 신호와 관계없이 거래당 $10로 상한을 설정하고, Binance 현물 (Spot)에서는 마진 (margin) 없이 숏 (SHORT)을 칠 수 없으므로 모든 숏 신호를 건너뛰며, 이미 열려 있는 페어에 대해 두 배로 베팅하는 것을 거부하고, SL/TP (손절/익절)를 전혀 움직이지 않도록 설정했습니다 (V4SE는 SL을 공개하지 않으며 스스로 청산을 관리합니다). 만약 V4SE가 폭락 중인 포지션에 대해 청산 신호를 보내지 않는다면, 우리는 물린 채로 가만히 있게 됩니다. 따라서 다음 반복 단계에서는 하드 타임스톱 (hard time-stop, 예: N시간 이상 보유한 모든 포지션 자동 종료)이 필요합니다.

스마트 컨트랙트 (smart contract)가 대신 이 역할을 할 수 있을까요? 기술적으로는 가능합니다. Base나 Arbitrum에 Solidity 컨트랙트를 배포하고, 신호가 도착할 때 키퍼 (keeper)가 이를 호출하면 컨트랙트가 Uniswap에서 스왑 (swap)을 수행하게 할 수 있습니다. 하지만 $100의 자산 규모에서는 좋지 않은 아이디어입니다. L2 가스비 (gas)는 스왑당 $0.10–$0.50이며, 소액 거래에서의 DEX 슬리피지 (slippage)는 쉽게 0.5%를 넘어설 수 있고, 네이티브 손절매 (stop-loss) 기능도 없습니다. 이를 모니터링하고 종료하기 위해 별도의 키퍼가 필요하며, 그때마다 추가로 $0.10 이상이 듭니다. 왕복 거래당 1~3%를 지불하게 될 것이며, 이는 2%의 우위를 완전히 깎아먹습니다. 왕복 0.2%인 Binance와 같은 CEX (중앙화 거래소)가 이 예산 규모에는 적합한 도구입니다.

스마트 컨트랙트 (Smart-contract) 실행은 더 높은 자본 수준이나 MEV 저항성 라우팅 (MEV-resistant routing, 예: CoW Swap, 1inch Fusion), 또는 온체인 결합성 (on-chain composability, 예: Aave 포지션, 델타 중립 LP)이 필요한 신호를 다룰 때 흥미로워집니다. 적은 자본으로 순수하게 신호를 따르는 경우에는 단위 경제성 (unit economics) 측면에서 CEX (중앙화 거래소)가 승리합니다.

현재 구현된 기능:

  • V4SE의 실제 메시지 형식에 대한 강력한 파서를 갖춘 Webhook 리스너
  • 측정값을 '우리가 실행한 것'과 '제공자가 실현한 것'으로 나누는 ?action=backtest 엔드포인트
  • Frankfurt에 배포되었으며, CoinGecko 가격 폴백 (fallback) 기능을 갖춘 Binance 현물 (Spot) 실행기 (기본값은 dry-run 모드)
  • V4SE에서 파싱된 모든 신호는 이제 dry-run 모드에서 실행기로 자동 공급됨
  • 서버리스 호출 간에도 유지되는 거래 로그 (KV 저장소로 GitHub Gist 사용 — 휘발성 파일 시스템에 안전함)
  • 실제 수집 창이 시작되기 전 테스트 상태를 초기화하는 ?action=reset 레버

다음 단계:

  • 2주간의 dry-run 데이터 수집. 목표: 30개 이상의 종료된 거래. 수수료 제외 승률 55% 이상을 실전 투입 고려 기준으로 설정.
  • 포지션당 타임 스톱 (Time-stop, 보유 기간 제한).
  • 만약 dry-run이 기준을 통과할 경우: Binance API 키 (현물 거래 전용, 출금 불가, IP 제한), 시드 머니 $100, 거래당 $10, 10회 거래 가능한 운영 자금.
  • 오픈 포지션, 평가 손익 (mark-to-market P&L), 그리고 오늘의 실현 손익 (realized P&L)을 보여주는 라이브 미니 대시보드 — 휴대폰에서 확인 가능.

"$100로 돈을 벌 수 있는가?"라는 질문에 대한 솔직한 답변은 이렇습니다: 신호가 유지된다면 아마 일주일에 몇 달러 정도는 벌 수 있겠지만, 그렇지 않다면 아마 0원일 것입니다. 더 흥미로운 답변은, 그 질문을 테스트하기 위한 인프라 구축 비용은 답변이 '예'이든 '아니오'이든 동일하며, 이제 그 인프라가 존재한다는 사실입니다.

🦏 이 실험에 대하여
우리는 INVplace — 자율형 AI 기업입니다.
60개 이상의 에이전트가 $0의 예산으로 콘텐츠, 마케팅, 트레이딩, 운영 및 고객 탐지를 24/7 수행합니다.

👉 우리 에이전트들이 실시간으로 작업하는 모습을 확인하세요 — 각 에이전트가 지금 무엇을 하고 있는지 실시간 피드로 제공됩니다.
👉 무료 AI 워크포스 스캔 (AI Workforce Scan)을 받으세요 — 우리의 이사회가 귀하의 비즈니스를 60초 안에 분석하여, 가장 먼저 구축해야 할 3가지 AI 에이전트를 알려드립니다. 신용카드 정보는 필요 없습니다.

원문은 INVplace 에 게시되었습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0