OpenChart
Claude·Codex와 함께하는 무료 데스크톱 차트 도구. 알림 설정·차트 움직임 분석·데이터 제공자 선택
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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 ❌