아키텍처
서버 측 Cloudflare Pages Worker가 Bybit V5 공개 REST API로 전체 USDT 무기한 선물 시장을 스캔합니다. 상세 후보가 만들어지면 브라우저가 Bybit 공개 WebSocket에 직접 연결해 후보의 가격·OI·펀딩을 갱신합니다. 이렇게 하면 서버 부하를 과도하게 늘리지 않으면서 사용자 화면은 실시간으로 움직일 수 있습니다.
대상 시장과 제외 규칙
- Bybit USDT LinearPerpetual 중 Trading 상태만 사용.
- 24시간 거래대금 $2M 미만은 초기 단계에서 제외.
- symbolType 기준 stock, ETF, forex, commodity, xstocks 계열 제외.
- BTC·ETH는 일반 후보가 아니라 시장 기준선으로 별도 사용.
- 1시간 ±8%, 24시간 ±30% 범위를 벗어난 과열/급락 종목은 상세 분석 우선순위에서 제외.
데이터 갱신 주기
| 데이터 | 사용 방식 | 대략적 주기 |
|---|---|---|
| 전체 티커 | 가격·거래대금·OI·펀딩·1H/24H 변화 | 약 55~60초 풀스캔 |
| OI 히스토리 | 15분·30분 OI 변화 | 상세 후보 풀스캔 시 |
| 5분 캔들 | RVOL·30분 압축·고/저점 거리 | 상세 후보 풀스캔 + 실시간 kline |
| WebSocket ticker | 후보 가격·OI·펀딩 재계산 | 거래소 push, 파생 티커 최대 100ms |
| publicTrade | TOP 후보 60초 taker 체결 비중 | 실시간 |
| allLiquidation | TOP 후보 60초 청산 펄스 | 거래소 push |
점수 구조
점수는 확률이 아니라 조건 중첩 지수입니다. 0~100 범위로 제한하며 대략 아래 요소가 들어갑니다.
| 요소 | 가중 방향 | 핵심 의도 |
|---|---|---|
| 5분 RVOL | 구간 사이를 연속 보간해 점진 가산 | 평소보다 거래 활동이 먼저 붙는지 |
| OI 30분 | 증감폭에 따라 연속 가산·감점 | 새 포지션 축적 여부 |
| OI 15분 | 증가폭에 따라 연속 가산 | 최근 가속도 확인 |
| 30분 압축 | 좁을수록 제한적 가산 | 확장 전 구조 보조 |
| 1시간 방향 | 초기 모멘텀 가산, 이미 과열 시 감점 | 너무 늦은 추격 방지 |
| 고/저점 거리 | 방향별 단기 극값 근접 가산 | 돌파/이탈 직전 위치 |
| 펀딩 | 약한 역방향 펀딩 보조, 극단값 태그 | 포지션 쏠림 확인 |
| 스프레드/유동성 | 과도한 스프레드 감점 | 노이즈 후보 억제 |
필수 게이트와 상태 분류
압축이나 고점 근접만으로 후보가 뜨지 않도록 먼저 RVOL ≥ 1.2 또는 OI 30분 ≥ +1% 중 하나가 필요합니다. 그 다음 방향별 단기 위치와 1시간 움직임을 확인합니다.
- ENTRY: 78점 이상 + RVOL 1.5x 이상 + OI30 +1% 이상 + 방향 모멘텀.
- WATCH: 65점 이상 + RVOL 또는 OI 강화.
- SLEEPER: 55점 이상 + 압축 구조.
- PRE-WATCH: 46점 이상, 초기 변화.
- COOLING: 서버에서 잡힌 후보가 실시간 게이트를 잠시 잃은 상태. 2회 연속 확인 후 반영해 깜빡임을 줄입니다.
실시간 레이어
후보가 생기면 브라우저가 WebSocket으로 ticker를 구독합니다. 최신 openInterest를 서버가 가져온 15분/30분 기준값과 비교해 OI 변화를 다시 계산하고, 가격과 펀딩 변화도 즉시 반영합니다. 진행 중인 5분 kline은 현재 거래대금 속도를 5분 기준으로 환산해 RVOL pace로 사용합니다.
검증판
브라우저가 후보를 처음 본 시점의 가격과 방향을 저장하고 이후 움직임을 기록합니다. LONG은 가격 상승, SHORT는 가격 하락을 유리한 수익률로 계산합니다. 최대 유리 움직임과 최대 역행도 함께 저장합니다.
KV가 연결되지 않은 기본 배포에서는 이 기록이 브라우저 localStorage에 저장됩니다. 따라서 브라우저/기기를 바꾸면 이어지지 않습니다. 서버 KV가 연결된 경우 서버 측 기록도 함께 유지할 수 있도록 Worker 코드가 준비되어 있습니다.
알려진 한계
- 거래소 API 지연·점검·네트워크 문제로 실시간 데이터가 잠시 끊길 수 있습니다.
- OI 증가가 반드시 같은 방향의 신규 포지션만 의미하지는 않습니다. 가격 구조와 함께 봐야 합니다.
- RVOL pace는 진행 중인 5분봉의 거래 속도를 환산하므로 봉 초반에는 변동성이 큽니다.
- 전체 풀스캔은 무료 서버리스 환경의 안정성을 고려해 초단위가 아닌 약 1분 간격으로 설계했습니다.
- 점수는 통계적 승률이 아니며, 충분한 장기 표본 전에는 임계값을 자주 바꾸지 않는 것이 원칙입니다.