# 아무 일도 일어나지 않는다: 비스포츠형 Polymarket 시장에서 항상 ‘No’를 매수하는 봇

> Clean Markdown view of GeekNews topic #28513. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=28513](https://news.hada.io/topic?id=28513)
- GeekNews Markdown: [https://news.hada.io/topic/28513.md](https://news.hada.io/topic/28513.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-04-14T16:32:37+09:00
- Updated: 2026-04-14T16:32:37+09:00
- Original source: [github.com/sterlingcrispin](https://github.com/sterlingcrispin/nothing-ever-happens)
- Points: 1
- Comments: 1

## Topic Body

- Polymarket의 **비스포츠 예/아니오 시장**에서 자동으로 **‘No’ 포지션만 매수**하는 비동기 Python 봇으로, 엔터테인먼트 용도로 제공됨
- **모의 거래와 실거래 모드**를 구분하며, 실거래 시에는 여러 **환경 변수와 개인 키 설정**이 필수임
- **대시보드 인터페이스**를 통해 상태를 모니터링하고, 주문 전송이 활성화되면 **실시간 복구 상태를 저장**함
- **Heroku 배포 스크립트**를 포함해 앱 상태 확인, 로그 조회, 실거래 전환, 프로세스 종료 등을 자동화함
- **테스트와 데이터 관리 도구**가 포함되어 있어, 로컬 및 클라우드 환경 모두에서 안전하게 실행 및 검증 가능함

---

### 개요
- **Nothing Ever Happens**는 Polymarket 플랫폼의 **비스포츠형 예/아니오 시장**에서 항상 **‘No’ 포지션을 매수**하는 비동기 Python 기반 봇임
- **엔터테인먼트 목적**으로 제공되며, **보증이나 책임 없이 사용자의 위험 부담하에 실행**됨
- 저장소는 `bot/`, `scripts/`, `tests/` 디렉터리로 구성되어 있으며, 각각 **거래 로직, 운영 스크립트, 테스트 코드**를 포함함

### 런타임 구조
- 런타임은 **독립형 시장을 스캔**하고, 설정된 가격 상한 이하의 **‘No’ 항목을 탐색**해 포지션을 추적함
- **대시보드**를 통해 상태를 표시하며, **주문 전송이 활성화된 경우 실시간 복구 상태를 저장**함
- 실행 모듈은 `nothing_happens`이며, **비활성 모드에서는 PaperExchangeClient**를 사용함

### 안전 모델
- 실제 주문 전송을 위해서는 다음 세 가지 환경 변수가 모두 설정되어야 함
  - `BOT_MODE=live`
  - `LIVE_TRADING_ENABLED=true`
  - `DRY_RUN=false`
- 위 조건 중 하나라도 누락되면 **모의 거래 모드**로 전환됨
- 실거래 모드에서는 추가로 다음 환경 변수가 필요함
  - `PRIVATE_KEY`
  - `FUNDER_ADDRESS` (서명 타입 1, 2용)
  - `DATABASE_URL`
  - `POLYGON_RPC_URL` (프록시 지갑 승인 및 상환용)

### 설정 및 구성
- 설치는 `pip install -r requirements.txt` 후, 예시 설정 파일을 복사해 로컬 구성으로 사용함
- `config.json`은 **비밀이 아닌 런타임 설정**, `.env`는 **비밀 키 및 실행 플래그**를 포함함
- 런타임 설정은 `strategies.nothing_happens` 하위에 위치하며, `CONFIG_PATH` 환경 변수로 다른 설정 파일을 지정할 수 있음

### 로컬 실행
- 로컬에서는 `python -m bot.main` 명령으로 실행 가능
- 대시보드는 `$PORT` 또는 `DASHBOARD_PORT` 환경 변수에 바인딩됨

### Heroku 배포 워크플로
- Heroku 환경에서는 `HEROKU_APP_NAME`을 사용하거나 명시적 앱 이름 인자를 전달함
- 제공된 스크립트:
  - `alive.sh`: 앱 상태 확인
  - `logs.sh`: 로그 조회
  - `live_enabled.sh` / `live_disabled.sh`: 실거래 모드 전환
  - `kill.sh`: 프로세스 종료
- 일반적인 배포 절차는 다음과 같음
  - 환경 변수 설정 (`BOT_MODE`, `DRY_RUN`, `LIVE_TRADING_ENABLED`, `PRIVATE_KEY`, `FUNDER_ADDRESS`, `POLYGON_RPC_URL`, `DATABASE_URL`)
  - `git push heroku &lt;branch&gt;:main`
  - `heroku ps:scale web=1 worker=0`
- `worker` 프로세스는 **의도치 않게 실행될 경우 빠르게 실패하도록 설계**됨

### 테스트
- 테스트는 `pytest`를 사용해 단위 및 회귀 검증을 수행함
- 명령어: `python -m pytest -q`

### 포함된 스크립트
- ## `scripts/db_stats.py`
  - 실시간 데이터베이스 테이블 수와 최근 활동을 점검
- ## `scripts/export_db.py`
  - `DATABASE_URL` 또는 Heroku 앱에서 테이블을 내보냄
- ## `scripts/wallet_history.py`
  - 설정된 지갑의 포지션, 거래, 잔액을 조회
- ## `scripts/parse_logs.py`
  - Heroku JSON 로그를 **터미널 또는 HTML 형식으로 변환**

### 저장소 관리
- 로컬 설정, 원장, 내보낸 데이터, 보고서, 배포 산출물 등은 **기본적으로 git에서 제외**됨
- 저장소는 **운영 환경과 로컬 환경을 명확히 분리**하도록 구성됨

## Comments



### Comment 55315

- Author: neo
- Created: 2026-04-14T16:32:38+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=47753472) 
- [이 트윗](https://x.com/sterlingcrispin/status/2043723823678382254)을 보면, 수익이나 환불을 약속하지 않는다고 명시되어 있음  
  단순히 **밈 기반 코드**로 재미 삼아 만든 프로젝트 같음. 사기라기보단 웃긴 실험 느낌임  
  - 맞음. 봇에는 **리스크 관리**가 전혀 없고, GitHub에도 명확히 밈이라고 써둠  
    Polymarket의 약 73%가 실제로 ‘No’로 끝난다는 통계가 있음  
    데이터 분석에 관심 있다면 [Hugging Face 데이터셋](https://huggingface.co/datasets/SII-WANGZJ/Polymarket_data)을 참고할 만함  
  - 그렇다면 실제로 쓸만한 **트레이딩 전략**은 아니라는 뜻임  
    인간의 낙관 편향 때문에 ‘Yes’ 쪽이 과대평가될 수도 있지만, Polymarket은 이미 트레이더들이 주시하고 있어서 가격이 현실적으로 형성됨  
    만약 하락하는 코인에 베팅할 수 있다면 흥미롭겠지만, 그런 시장도 결국 효율적으로 가격이 조정될 것임  
  - 사람들이 진짜 **수익 나는 전략**을 찾으면 잘 공유하지 않음  
  - “밈 기반 코드”라는 표현이 너무 웃김. 이런 **너드스러운 장난**이 토론을 폭발시킨 것 같음  
  - 여러 시장이 연결되어 있으니 ‘No’가 더 많이 나오는 건 당연함. 예를 들어 10명의 후보가 있으면 9명은 ‘No’로 끝남  

- 이 프로젝트가 **비스포츠 시장**용이라는 점이 흥미로움  
  스포츠 베팅에서도 대부분 ‘No’ 쪽이 더 수익률이 높다고 알려져 있음. ‘Yes’는 더 흥미롭고 사람들이 몰리기 때문임  
  결국 ‘지루한 베팅’이 장기적으로는 더 나은 수익을 낼 가능성이 있음  
  스포츠 베팅에서 쌓인 이런 **행동경제학적 통찰**이 비스포츠 시장에도 적용될 수 있을 것 같음  
  - Polymarket의 백엔드 구조상 스포츠 베팅도 사실상 **Yes/No 형태**로 되어 있어서 구분이 애매함  
  - 이런 전략은 초반엔 **양의 기대값(EV)** 을 가질 수 있지만, 사람들이 알아차리면 시장이 효율적으로 재조정됨  
    결국 가격이 제자리를 찾는 **피드백 루프**가 생김  
    그래서 진짜 수익 나는 전략을 찾으면 절대 오픈소스로 공개하지 말고, 조용히 돌리는 게 현명함  

- ‘항상 No에 베팅하라’는 아이디어는 재밌지만, 실제로 얼마나 **수익이 나는지**는 검증이 필요함  
  - 나도 백테스트를 해봤는데, 100% APR처럼 보여도 **결과 시점**을 미리 아는 식으로 치팅된 부분이 있었음  
    현실에서는 유동성이 낮고, 한 번의 손실이 여러 번의 이익을 날려버릴 수 있음  
    스포츠 시장은 오히려 명확한 종료 시점과 대규모 거래량 덕분에 더 예측 가능함  
  - 나도 예측 시장을 좋아해서 여러 전략을 써봤는데, **타이밍**이 핵심임  
    단순히 모든 항목에 No를 거는 게 아니라, 뉴스가 막 뜨기 시작한 시점에 관련된 항목에 No를 거는 식으로 하면 꽤 안정적인 수익이 가능할 것 같음  

- 인간의 **상상력 차익거래**라고 생각함  
  사람들은 자극적인 시나리오를 좋아하지만, 현실은 대부분 지루함  
  - 사람들은 **블랙스완 사건**을 과소평가하다가, 막상 일어나면 과잉 반응함  
    나도 금융위기와 코로나 때 이런 패턴을 이용해 수익을 냈음  
    지금은 AI 버블이 걱정되지만, 급락보다는 서서히 식는 형태일 것 같아 채권과 현금 비중을 늘려둠  
  - 하지만 이런 봇이 군사나 정치적 사건에 적용된다면, 누군가 실제로 ‘Yes’를 **현실화하려는 유인**이 생길 수도 있음  
  - 그래서 시장이 균일하게 가격이 매겨지지 않는 것임  
  - 문제는 이 논리가 실제 전략으로는 잘 **작동하지 않는다는 점**임  

- ‘No’에 베팅하는 건 사실상 모든 다른 결과에 ‘Yes’를 거는 것과 같다고 주장함  
  [Polymarket 문서](https://docs.polymarket.com/advanced/neg-risk)에 관련 연산이 있음  
  - 하지만 그건 오해임. 예를 들어 “Joe Dart 대통령 당선 Y/N”과 “Cory Wong 대통령 당선 Y/N”은 서로 독립적임  
  - 맞음. 각 결과는 **서로 연관이 없음**  

- 이런 전략은 마치 **기차 앞에서 동전 줍기** 같음  
  작은 이익을 반복하다가 한 번의 롱테일 이벤트로 전부 잃을 수 있음  
  - 작성자도 이걸 진지한 전략으로 제시한 게 아니라, **밈성 프로젝트**로 만든 것 같음  
  - 한 이벤트에 전액 베팅하지 않는다면 손실은 베팅 금액으로 제한됨  

- 관련 연구로 [Prediction Market Microstructure](https://www.jbecker.dev/research/prediction-market-microstru...)가 있음  
  (이전 토론: [HN 링크](https://news.ycombinator.com/item?id=46680515))  

- 이미 시장에 **가격 반영**이 끝난 상태라고 봄  
  - 작성자도 “장기적으로 0.73 이하에서 사야 한다”고 언급함  
    [관련 트윗](https://x.com/sterlingcrispin/status/2043685362812461436) 참고  
  - 하지만 시장이 존재한다는 사실 자체가 **가용성 휴리스틱**을 자극해, 사람들이 확률을 과대평가하게 만들 수 있음  
    [참고 링크](https://philopedia.org/topics/availability-heuristic/)  
  - “아무 일도 일어나지 않는다”는 말이 딱 맞음  
  - Benjamin이라니, 흥미로운 언급임  

- 결국 **실현 변동성**이 시간이 지나면 **내재 변동성**보다 낮게 나타나는 경향이 있음  
  - 사람들은 **스큐 보호**에 과도한 비용을 지불하고, 그걸 팔면 꾸준히 수익을 낼 수 있음  
    물론 한 번 터지면 크게 잃을 수도 있음  

- 단순히 ‘No’가 70% 나온다고 해서 돈을 버는 건 아님  
  이건 전형적인 **나쁜 수학**임. ‘증기 롤러 앞의 동전 줍기’ 같은 전략임  
  - 속는 사람은 없을 듯. 작성자도 그냥 **농담**으로 만든 것 같음  
  - 레버리지를 쓰지 않는다면 이런 전략은 위험이 제한적임  
    다만 이런 비효율적인 시장은 **규모가 작고 드묾**, 결국 ‘동전은 줍지만 동전뿐’일 가능성이 큼  
  - 수익 여부는 **진입 가격, 기대값, 잔여 기간** 등 변수에 따라 달라짐  
    Kelly 기준을 따르더라도 무작위로 베팅하면 결국 자본이 소진될 가능성이 큼. 각 시장별 **면밀한 분석(DD)** 이 필요함
