尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
TradingView 차트와 함께 타임프레임별(5분·15분·1시간·4시간·1일) 롱/숏 추세 확률, 실제 롱숏 비율, 추정 청산 맵을 보여주는 웹페이지. React 19 + Vite + Tailwind CSS v4 + TypeScript + TanStack Query, Feature-Sliced Design 구조. 디자인은 DESIGN-coinbase.md 토큰을 따르고 아이콘은 lucide-react 를 사용합니다. 프론트엔드는 항상 /binance/* 경로로 요청하고, 환경별로 아래가 https://fapi.binance.com 으로 중계합니다. • 개발: vite.config.ts 의 dev proxy • 운영(Vercel): vercel.json rewrite → api/binance.ts 함수 • 서울 리전(icn1)에서 실행 → 미국 IP 차단(451) 회피 • 허용된 공개 엔드포인트 6개만 중계 (오픈 프록시 방지) • CDN 캐시 s-maxage=10 → 사용자 수가 늘어도 Binance 호출 수 제한檢視完整 README ↗
TradingView 차트와 함께 타임프레임별(5분·15분·1시간·4시간·1일) 롱/숏 추세 확률, 실제 롱숏 비율, 추정 청산 맵을 보여주는 웹페이지.
React 19 + Vite + Tailwind CSS v4 + TypeScript + TanStack Query, Feature-Sliced Design 구조. 디자인은 DESIGN-coinbase.md 토큰을 따르고 아이콘은 lucide-react 를 사용합니다.
npm install
cp .env.example .env.local # 거래소 접속이 막힌 네트워크면 VITE_USE_MOCK=true
npm run dev
| 영역 | 출처 | 비고 |
|---|---|---|
| 차트 | TradingView Advanced Chart 위젯 (무료 임베드) | 위젯 내부 데이터는 읽을 수 없으므로 추세 계산은 별도 캔들 사용. 로고 제거 불가 |
| 추세 계산용 캔들 | Binance /fapi/v1/klines | 타임프레임별 500봉 |
| 롱/숏 비율 | Binance /futures/data/globalLongShortAccountRatio, topLongShortPositionRatio, takerlongshortRatio | 무료·키 불필요, 최근 30일만 제공 |
| 청산 맵 | Binance /futures/data/openInterestHist + 1시간봉으로 자체 추정 | 아래 참고 |
프론트엔드는 항상 /binance/* 경로로 요청하고, 환경별로 아래가 https://fapi.binance.com 으로 중계합니다.
vite.config.ts 의 dev proxyvercel.json rewrite → api/binance.ts 함수
icn1)에서 실행 → 미국 IP 차단(451) 회피s-maxage=10 → 사용자 수가 늘어도 Binance 호출 수 제한LongShort-AI 저장소 선택vercel.json 이 프레임워크·리전·rewrite 를 지정)이후 main 브랜치에 푸시할 때마다 자동 배포됩니다. 환경 변수는 따로 넣지 않습니다 (VITE_USE_MOCK 미설정 = 실데이터).
메타데이터 원본은 src/shared/config/site.ts 한 곳입니다. vite-plugin-seo.ts 가 빌드 시 아래를 처리합니다.
index.html 의 title · description · canonical · Open Graph · Twitter 카드 · JSON-LD(WebSite, WebApplication) 채우기robots.txt, sitemap.xml 생성SITE.url(https://longshort-ai.com), VITE_SITE_URL 로 덮어쓰기 가능VITE_GOOGLE_SITE_VERIFICATION, VITE_NAVER_SITE_VERIFICATION 이 있으면 소유확인 메타 추가그 외
#root 안에 정적 소개 콘텐츠를 두어 JS 를 실행하지 않는 크롤러(네이버 Yeti 등)도 내용을 읽도록 함. React 마운트 시 대체됨Ethereum(ETH) 롱숏 추세 확률 · …)public/og-image.png (1200×630), 아이콘·manifest/about(서비스 소개·분석 방법), /terms(이용약관), /privacy(개인정보처리방침). 경로를 추가하면 vite-plugin-seo.ts 의 SITEMAP_PATHS 도 갱신SITE.adsenseClient(ca-pub-7896902472721455, VITE_ADSENSE_CLIENT 로 덮어쓰기 가능) 로 애드센스 스크립트 · google-adsense-account 메타 · ads.txt 가 자동 생성VITE_ADSENSE_SLOT_CONTENT), 사이드바 하단(VITE_ADSENSE_SLOT_SIDEBAR). 값이 없으면 렌더링하지 않음 (shared/ui/ad-slot)VITE_GOOGLE_SITE_VERIFICATION, VITE_NAVER_SITE_VERIFICATION)에 넣고 재배포https://<도메인>/sitemap.xml 제출src/entities/trend/model/computeTrend.ts
각 지표를 −1(숏) ~ +1(롱)로 점수화 → 가중합 → 로지스틱 함수로 확률 변환 (P(롱) = 1 / (1 + e^(−3·score))).
| 지표 | 가중치 | 보는 것 |
|---|---|---|
| EMA 20/50/200 배열 | 20% | 추세 방향의 골격 |
| EMA50 기울기 (ATR 정규화) | 10% | 추세 진행 속도 |
| MACD 히스토그램 | 15% | 모멘텀 방향과 가속/감속 |
| RSI(14) | 10% | 50 기준 모멘텀 |
| DMI(+DI/−DI) × ADX | 15% | 방향 × 추세 강도 |
| 슈퍼트렌드(10, 3) | 15% | 변동성 기반 추세 전환 |
| 시장 구조 (HH/HL) | 10% | 스윙 고점·저점 상승/하락 |
| OBV 기울기 | 5% | 거래량 동반 여부 |
횡보 배지를 표시합니다 (추세 신호 신뢰도 낮음).src/widgets/liquidation-map/model/estimate.ts
거래소는 개별 포지션 청산가를 공개하지 않으므로 Coinglass·Hyblock 등도 모두 추정 모델입니다. 이 프로젝트는 무료 데이터로 다음과 같이 근사합니다.
더 정확한 히트맵이 필요하면 Coinglass API(유료 플랜)의 liquidation heatmap 엔드포인트로 교체할 수 있습니다.
src/
├── app/ providers(QueryClient), router, 전역 스타일(디자인 토큰)
├── pages/ home, not-found
├── widgets/ header, footer, tradingview-chart, trend-overview, long-short-ratio, liquidation-map
├── features/ select-symbol, notice-popup(레퍼럴·멤버십 미운영 안내, 오늘 하루 보지 않기)
├── entities/ market(심볼·타임프레임·쿼리), trend(추세 계산·표시)
└── shared/ api(binance, mock), lib(지표, 포맷), ui(Button, Card, Modal, Segmented …), config
모든 서버 데이터는 TanStack Query(react-query) 로 가져옵니다. 컴포넌트에서 fetch 를 직접 호출하거나 useEffect 로 데이터를 불러오지 않습니다.
shared/api — 순수 요청 함수 (fetchKlines 등). React 의존성 없음entities/*/api/queries.ts — useQuery 훅과 xxxQueryOptions (queryKey · queryFn · refetchInterval 정의)useQueries + xxxQueryOptions 조합 (예: widgets/trend-overview/model/useTrends.ts)select 또는 useMemo 로 처리app → pages → widgets → features → entities → shared@/entities/market ✅ / @/entities/market/api/queries ❌