Polymarket Bot Tutorial · 32개 중 31장
Polymarket bot을 실전에 투입하기: 첫 입금 25-50 USD, take-profit 및 stop-loss 규칙, alert 임계값(Telegram/email), reconciliation 주기, 그리고 첫 주 scaling 계획.
이 장에서 다루는 내용
paper에서 live로 전환하는 순간이야말로 대부분의 builder가 실수로 첫 입금을 날리는 구간입니다. 이 장은 pre-flight checklist와, 손실로 번지기 전에 bug를 잡아내는 첫 주 discipline을 다룹니다.
- Pre-flight checklist
- 첫 입금: 25-50 USD
- production에서 가져온 TP/SL rules
- Monitoring: Telegram, email, dashboards
- Reconcile 주기: 매 fire_exits cycle마다
- 첫 주: 가까이서 보고, 작게 시작하기
- Scaling: 언제 더 입금할 것인가
Pre-flight checklist
bot을 paper에서 live로 바꾸기 전에, 정확히 이 순서대로 확인하세요.
- 30건의 paper trade 종료. 작성된 success criteria 충족 또는 초과.
- Diary format이 paper와 live에서 동일함. 같은 JSONL schema.
- VPS 배포 완료. bot은 유일한 process이며, systemd unit이 구성되어 있음.
- HALT file mechanism 테스트 완료.
touch /opt/pmt/HALT가 30초 이내에 bot을 멈춤. - Telegram alerts 설정 완료. 테스트 alert가 성공적으로 전송됨.
- Daily-loss kill switch 테스트 완료. 10% drawdown을 시뮬레이션하고 halt가 발동하는지 확인.
- On-chain reconciliation 테스트 완료. diary를 수동으로 불일치시키고 halt가 발동하는지 확인.
- 입금 address는 Polymarket이 당신을 대신해 거래하는 스마트 컨트랙트 지갑인 proxy wallet(POLY_FUNDER_ADDRESS)이며, 당신의 개인 계정 즉 externally-owned account(EOA)가 아닙니다. SDK
wallet show로 검증. - USDC/pUSD approvals 설정 완료. standard exchange와 NegRisk exchange 모두.
- 초기 입금액을 서면으로 합의함: smoke test용 $25-50.
어떤 항목이라도 미완료라면 live로 가지 마세요. 과거 production 사례에서 각 항목은 실제 돈 손실로 이어진 적이 있습니다.
첫 입금: 25-50 USD
smoke-test 입금액은 의도적으로 작습니다. 목표는 수익을 내는 것이 아니라 live 경로가 제대로 동작하는지 확인하는 것입니다.
테스트하는 것: bot의 order placement가 Polymarket의 trade 관점과 일치하는지. diary가 올바르게 기록되는지. take-profit GTC가 실제로 게시되는지. 일시적인 API error에서 bot이 복구하는지. daily-loss halt를 시뮬레이션했을 때 제대로 발동하는지.
예상 결과: paper diary를 대략적으로 따라가는 5-15개의 작은 trade. 어떤 차이도 "live가 paper보다 noisy해서 그렇다"는 특징이 아니라 bug로 간주하세요.
만약 이 $25-50을 실제 전략 손실로 모두 잃는다면, 그 전략은 더 많은 paper run이 필요합니다. bug 때문에 날렸다면, scaling 전에 bug를 먼저 고치세요.
production에서 가져온 TP/SL rules
먼저 이 섹션이 전제로 하는 두 용어를 짧게 정의합니다. take-profit(TP)은 가격이 목표치까지 오르면 이익을 확정하도록 미리 설정해 둔 매도 주문이고, stop-loss(SL)은 가격이 한계선 아래로 떨어지면 포지션을 매도해 한 번의 나쁜 trade가 걷잡을 수 없이 커지지 않게 합니다. 아래에서 사용하는 주문 유형은 두 가지로, GTC(Good-Til-Cancelled - 체결되거나 당신이 취소할 때까지 호가창에 남아 대기하는 주문)와 FOK(Fill-Or-Kill - 주문 전체를 즉시 체결하거나 전부 취소)입니다. 한 가지 더 보게 될 용어인 mark는 주문 유형이 전혀 아니며, 포지션을 평가하는 기준이 되는 현재 mid-price를 뜻할 뿐입니다. 아래는 우리 trader의 production 기본값으로, 수천 건의 trade에서도 잘 유지되어 왔습니다.
- Buy: FOK를 ask + best ask보다 1c 위에서 실행. ask > 0.85이면 건너뜀(0.99 trap).
- Take-profit: GTC sell을 entry + 4-6c에 게시, buy fill + 5초 settlement wait 직후.
- Stop-loss via mark: mid를 모니터링; mid가 entry - 8c까지 떨어지면 best bid에서 FOK sell(대기 주문 없음; mid blow-through는 매우 빠름).
- Time exit: position이 X시간 내에 닫히지 않았고 PnL이 -2c와 +2c 사이면, market에서 FOK exit.
숫자는 strategy마다 달라지지만, 패턴은 일관됩니다. take-profit은 항상 GTC, stop-loss는 보통 FOK(왜냐하면 mid가 급격히 내려갈 때 GTC stop은 체결되지 않기 때문), time exit은 오래된 signal을 계속 타지 않도록 설정합니다.
Monitoring: Telegram, email, dashboards
bot은 실시간으로 관찰 가능해야 합니다. 세 가지 layer가 있습니다.
- Telegram alerts: 모든 fill, 모든 halt, threshold를 넘는 모든 error. 개인 메시지와 섞이지 않도록 전용 channel이나 group을 사용하세요.
- Daily summary email: 하루 종료 시 total trades, win rate, PnL, trigger된 halt 목록. 매일 아침 읽으세요.
- Dashboard: 선택 사항이지만 유용합니다. diary를 읽고 open position + 최근 fills + 누적 PnL을 렌더링하는 간단한 HTTP endpoint.
패턴은 이렇습니다: 알아둘 가치가 있는 상태 변화 → Telegram. 하루 끝 요약 → email. 실시간 탐색 → dashboard.
Reconcile 주기: 매 fire_exits cycle마다
reconciliation은 drift가 다음 trade에서 복리처럼 커지기 전에 잡아낼 수 있을 만큼 자주 실행되어야 합니다. 주기는 trade frequency에 따라 달라집니다.
- 하루 10건 미만의 strategy: 매시간 reconcile.
- 하루 10-100건의 strategy: 15분마다 reconcile.
- HFT strategy(하루 100건 이상): exit-firing loop의 매 cycle마다 reconcile.
reconciliation 비용은 보유 token당 chain read 1회입니다. token이 20개라면 RPC call 20회인데, free-tier RPC 기준으로도 충분히 감당 가능합니다. 이 부분은 과도하게 최적화하지 마세요.
첫 주: 가까이서 보고, 작게 시작하기
live deployment의 첫 주는 가장 위험합니다. paper run이 놓친 live-path bug를 발견하는 시기이기 때문입니다. discipline은 다음과 같습니다.
- 가까이서 보기-깨어 있는 시간에는 매시간 Telegram channel을 확인하세요.
- 작게 시작하기-position size를 최소(5 shares)로 유지하세요. bug가 수백 달러가 아니라 몇 달러만 손해를 내야 합니다.
- 첫 3-5일 동안은 하루 끝에 수동으로 reconcile하세요. diary와 Polymarket UI를 직접 비교하세요.
- 놀라운 점은 모두 기록하세요. 작은 혼란도 결국 bug가 됩니다.
첫 주가 끝났을 때 bug가 없고 diary가 현실과 일치한다면, 정상 size로 확대하세요. bug가 나타났다면 먼저 고치고, smoke-test 주를 한 번 더 돌리세요.
Scaling: 언제 더 입금할 것인가
자본을 추가하는 트리거는 각각 다른 threshold를 가집니다.
- +50% 입금: live trade 30건, win rate가 paper rate와 5pt 이내, bug로 인한 production halt 없음.
- +100-200% 입금: live trade 100건 이상, 샘플 전반에 걸쳐 일관된 수익성, 최소 한 번의 작은 outage까지 검증된 infrastructure.
- +500% 이상 입금: 6개월 이상 일관된 live 수익성이 확인된 후에만. 자본 확대는 성공보다 느려야 합니다. edge가 진짜인지, 곧 사라질 regime가 아닌지 확실히 해야 합니다.
너무 일찍 scaling할 때 가장 큰 단일 위험은, 한 시장 regime에서 수익이 나던 strategy가 다음 regime에서 손실로 바뀌는 것입니다. size를 키운다고 그 문제가 해결되지는 않습니다. patience가 해결합니다.












