mcpField
B
Bamsai

Bamsai

リモート
bamsai.kr金融データ0今日更新
リポジトリ公式サイト

Bamsai について

Bamsaiは、Hyperliquidのパーペチュアルから韓国株のKRW価格を24時間算出し、過去の寄り付き方向の一致率とコスト控除後の裁定価格差を示します。ウェブアプリ、API、MCPエンドポイントを通じて投資家やAI取引ボットの運用者に提供されます。

主な機能

  1. 01韓国株の24時間KRW価格
  2. 02過去の寄り付き方向一致率
  3. 03取引コスト控除後の裁定価格差
  4. 04ニュースと価格収束履歴の照会
  5. 05注文を送信しないペア注文プレビュー

活用シーン

  1. 01韓国市場の寄り付き前に海外価格を確認
  2. 02取引ボットへ価格と履歴データを提供
  3. 03費用などを差し引いた市場間価格差を評価
  4. 04発注せずにペア注文をプレビュー

MCP 対応

Streamable HTTPとローカルstdioのMCPエンドポイントを提供します。ツールで寄り付き予測、裁定価格差、価格収束履歴、ニュースを取得でき、ペア注文を送信せずにプレビューできます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://bamsai.kr/api/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

夜間

国内市場が閉まっている夜間や週末にも取引されるハイパーリキッド韓国株perpの価格をもとに、 ①夜間の海外価格と、過去に国内市場がその方向に始まった割合、②両市場間に価格差取引(裁定取引)の機会があるかを知らせるサービスです。寄り付き価格はユーザー自身で見積もります。

English — Bamsai prices Korean blue chips (Samsung Electronics, SK hynix, Hyundai Motor) 24/7 from their Hyperliquid perps (trade.xyz), converted to KRW at the Upbit KRW/USDC rate. While the Korean market is closed it shows the overseas price, how often past Korean opens followed it at the same stage of the US session, and the gap between the two markets net of fees, tax, FX, funding, slippage and order lag. MCP endpoint https://bamsai.kr/api/mcp (Streamable HTTP, no key) or npm run mcp:stdio locally. Tools: predict_open, get_arbitrage, get_convergence_history, get_news, preview_pair_order (preview only, never sends orders). REST: OpenAPI, 300 requests/min per IP. MIT licensed. The rest of this README is in Korean.

要点まとめ

項目内容詳細
解決する課題国内市場が閉まっている時間(ネクストレードを含めても週168時間のうち65%)に起きたことが、翌日の寄り付き価格にどう反映されるか、個人には知る方法がありません。その間の価格はハイパーリキッド韓国株perpで決まりますが、ドル建てのため、ウォン建て価格とすぐに比較するのは困難です1章
ターゲット顧客初期:LLMで国内株の自動売買ボットを運用する個人投資家(ハイパーリキッド韓国株perpも取引する人を含む)。ボットがAPI・MCPで夜間価格・的中率・コスト控除後の価格差を取得し、寄り付き前(06~08時)や価格差が広がったタイミングで判断します → 拡大:Samsung Electronics・SK hynixなど国内株の一般投資家。判断のタイミングは、朝8時にネクストレードが始まったとき、すぐ取引するか待つかです(夜間に1%を超えて動き、08~09時に国内価格がハイパーリキッド価格の方向に動いた場合は72~75%)2章
主要仮説H1 国内市場(通常取引時間・ネクストレード)がすべて閉まっている20:00~08:00にハイパーリキッドで十分な取引(100万ドル以上)があった場合、翌日08:00の国内市場はその方向に始まる(80%以上) → Samsung Electronicsは88.2%、SK hynixは85.4%で通過、Hyundai Motorは判断を保留。同じ期間に国内市場が上昇して始まった日は52~53%にすぎず、毎日「上がる」と予想しても半分程度しか当たりません(ハイパーリキッドに従えば85~88%)。ただし、EWY・コスピ200 perpも方向の一致率は83~87%と同程度のため、価値は「銘柄固有の方向予測力」よりも、閉場時間の価格を銘柄ごとにウォン建てで示すことにあります/H5(初期ターゲット) ボット運用者にAPI・MCPを公開すれば、毎週繰り返し呼び出される/H2(拡大ターゲット) 夜間の海外価格と「その方向に始まった割合」を表示すれば、寄り付き前に再訪する3章
検証指標North Star:夜間にAPI・MCPを呼び出した週間外部呼び出しユーザー数(初期ターゲット)。11/6に公式MCP Registry・Glamaに登録し、awesome MCPの2つの一覧に追加PRを提出。拡大ターゲット:米国市場の閉場後、国内市場の開始前(06:00~08:00)に夜間価格を確認した週間ユーザー数。最初の実験は2週間(11/5~11/19、国内市場の寄り付き10回)にわたり、ディシの株式ギャラリー3か所に投稿時間帯・形式を変えながら継続して投稿し、投稿ごとの閲覧数・コメント数、GAからの流入、寄り付き前の再訪を確認します。寄り付き前の再訪率が15%以上なら合格4章
プロトタイプhttps://bamsai.kr · コア機能(証券アプリに組み込む範囲):ホームの銘柄カード(国内価格とグローバル価格、その方向に始まった割合)、過去の寄り付き記録、紹介(計算方法)/拡張トラック:銘柄詳細(チャート | 板情報 | 注文の3段階、価格差取引の機会)、API・MCP。トス証券・ハイパーリキッド・アップビットのリアルタイムデータ5章
製品の方向性①AIで課題を見つけて自ら開発し、②顧客のAIエージェントが同じ数値をすぐに使えるよう、API・MCPで公開した製品です。金融関連の数値はLLMではなく、実際の相場データと統計で計算しますAI活用プロセス
AIの活用Claude Codeでリサーチ・データ検証・モデルのバックテスト・実装・ブラウザーQA・運用障害の分析を行います。製品内の数値はLLMではなく、統計計算によって算出されます。API・MCPは、AIツールで独自の投資ツールを作る初期ターゲット(LLM自動売買ボット運用者)がすぐに連携して使えるよう公開していますAI活用プロセス

PRD

概要

国内市場が閉まっている時間は、ネクストレードを含めても65%に及びます。その間もSamsung Electronics・SK hynix・Hyundai Motorの価格は、海外の24時間市場で動いています。 この価格をウォンに換算して表示し、過去に国内市場がその方向に始まった割合と、通常の寄り付き価格の範囲も併せて示します。同じ数値をAPI・MCPで公開し、**LLMで自動売買ボットを運用する個人投資家(初期ターゲット)**のボットがすぐに判断に使えるようにします。両市場に資金を置いているユーザーには、コスト控除後の価格差取引の機会を計算し、注文画面(近日公開予定)にもつなげます。

1. 해결하려는 문제

#누가문제지금은 어떻게 하나
P1삼성전자·하이닉스 보유 개인"내일 아침 오를까, 내릴까?"에 답할 근거가 없음. 미국장 끝난 뒤, 주말·연휴 동안 생긴 뉴스가 다음 날 장 시작 가격에 얼마나 반영될지 모름미국 지수, ADR, 커뮤니티 분위기로 짐작
P2주식·코인 같이 하는 트레이더두 시장 차이를 보려면 창 3개(하이퍼리퀴드, HTS, 업비트 환율)를 띄우고 직접 계산. 수수료·세금·환전·펀딩비를 빼면 실제로 남는지 알 수 없음엑셀, 감으로 판단
P3자동매매·AI 에이전트 사용자두 시장 시세·가격 차이·예측을 한 번에 조회하는 API가 없음거래소별 API 따로 붙여서 직접 구현

문제를 보게 된 계기 — 투자자들이 이미 하고 있던 행동

토스증권 커뮤니티, 디시 국내·해외 주식 갤러리 같은 주식 커뮤니티에서 개장 전과 주말마다 하이퍼리퀴드 가격 이야기가 계속 올라왔음. 디시에서 '하이퍼리퀴드 삼전'으로만 찾아도 2026년 2~10월 국내 주식·미국 주식·나스닥·차트 갤러리 등에 15건 넘게 나옴(글마다 조회 50~400회)

실제 글 (디시, 2026)보이는 불편
"하이퍼리퀴드 현재가격 삼전27.9 하닉184" (5/17 일 19시), "하이퍼리퀴드 삼전 24.4 하닉 170 / 월요일 서킷 확정" (7/19 일 새벽)주말·새벽에 달러 가격을 직접 원화로 바꿔 공유함
"어제 새벽에 삼전 390000원이라길래 말이 되나 싶었는데 아니다 다를까 음전 ㅋㅋ 괜히 날 잠못자게 만들었어" (6/4)언제 본 가격이 맞는지 모름 → 이후 '언제 본 가격이냐' 분석의 출발점
"삼성 갭락이라고 생각하면 … 하이퍼리퀴드에 삼전선물 숏치세요" (8/22), "주식사고 하이퍼리퀴드에서 공매도쳐서 헷징" (9/15)두 시장을 함께 쓰는 사람이 이미 있음 → 가격 차이 거래·API 고객
"하닉 삼전 가끔 오류로 -30퍼 찍을 때 있잖아, 하이퍼리퀴드에도 반영되냐" (8/6)오류 가격과 진짜 움직임을 구분하지 못함 → 오라클 위험

→ 사람들은 이미 이 가격을 보고 있지만 직접 환산하고, 언제 본 가격이 맞는지 모르고, 오류 가격과 구분하지 못함. 밤사이는 이 세 가지를 풀려고 시작함

문제의 크기 (2026-11-05 직접 조회)

  • 국내 시장은 넥스트레이드(08:00–08:50, 15:30–20:00)를 포함해도 하루 11시간 50분, 주 약 59시간(168시간의 35%). 정규장만 보면 주 32.5시간(19%)
  • 하이퍼리퀴드 xyz:SKHX(SK하이닉스) 24시간 거래대금 약 5.4억 달러, xyz:SMSN(삼성전자) 약 0.9억 달러
  • 하이퍼리퀴드 상장(2026-02-20 한국 시간 새벽) 이후 국내 시장 개장 174번 중 39번이 주말·연휴 뒤 개장

2. 타겟 고객

구분고객이 고객을 고른 이유주로 쓰는 것
초기 타겟LLM으로 국내 주식 자동매매 봇을 운영하는 개인 투자자. 어떤 LLM·에이전트를 쓰든 API·MCP로 숫자를 받아 봇이 판단. 하이퍼리퀴드에서 한국 주식 perp를 함께 거래하는 사람 포함이미 자동주문·전략·분석 도구를 직접 만들어 쓰고 있어 설명 비용이 낮음. 하이퍼리퀴드 달러 가격, 원/USDC 환율, 국내 시세(정규장·넥스트레이드)를 직접 모아 맞추고 적중률 검증·비용 계산까지 해야 하는 불편이 가장 큼. 쓰는지 안 쓰는지가 호출 수로 바로 보여 검증이 빠름API · MCP, 웹 화면(봇이 쓰는 숫자를 눈으로 확인)
확장 타겟삼성전자·SK하이닉스 등 국내 주식을 거래하는 일반 투자자개인 보유자가 많은 대표 종목이고 perp 거래대금도 가장 큼. 아침 8시 국내 시장이 열리기 전에 판단할 일이 매일 있음. 초기 타겟이 숫자를 꾸준히 쓰면 그 근거로 증권 앱 화면으로 넓힘홈 · 종목 상세

초기 타겟의 결정의 순간 — 봇이 무엇을 보고 언제 움직이나

  • 국내 주식 봇: 미국장이 닫힌 뒤(06~08시) 개장 전 포지션과 장전 주문 가격을 정할 때 (predict_open)
  • 두 시장을 함께 거래하는 봇: 가격 차이가 평소보다 벌어졌을 때 (get_arbitrage, 비용 뺀 금액)
  • 하이퍼리퀴드 perp 봇: 국내 장중에 국내 가격·투자자 동향이 바뀔 때 (원화 환산 가격, 지난 개장 기록)

확장 타겟의 결정의 순간 — 아침 8시 넥스트레이드가 열릴 때 바로 사고팔지, 기다릴지

  • 보유자는 갭이 생기기 전(밤)에 팔 수 없음. 할 수 있는 결정은 '08시에 바로 거래할지, 가격이 자리 잡을 때까지 기다릴지'와 '장전 주문을 얼마에 걸지'
  • 하이퍼리퀴드가 밤새 1% 넘게 움직인 날, 08~09시에 국내 가격이 하이퍼리퀴드 가격 쪽으로 가서 만난 경우가 삼성전자 72%·SK하이닉스 75%, 반대(하이퍼리퀴드가 국내 쪽으로)는 11%·10% (2026-04~11, 105·108번). 개장 직후 국내 가격이 하이퍼리퀴드 원화 가격과 크게 벌어져 있으면 그쪽으로 좁혀질 가능성이 큼
  • 예: 11/6 삼성전자는 하이퍼리퀴드 07시 −9.5%, 08:00~08:10 평균 −11.9%로 과하게 시작한 뒤 10:28 −7.4%로 되돌아옴

일반 투자자 화면과 perp의 경계: 홈 카드·지난 개장 기록·소개는 국내 주식 판단까지만. 해외 perp는 국내 투자자 보호 대상이 아니라서(금융위·금감원 2026-10-16 유의사항 발표) perp 경험·web3 지갑이 없는 사람에게 권하지 않음. 가격 차이 거래와 perp 주문은 이미 하이퍼리퀴드를 쓰는 사용자용 별도 트랙이고, 증권 앱 버전에서는 국내 주문만 연결

주문 화면과 출시 알림 신청: 해외 가격과의 차이를 보다가 그 자리에서 주문까지 하고 싶은 사용자가 있는지 확인하려고, 종목 상세에 주문 화면(차트 | 호가 | 주문)과 출시 알림 신청(이메일)까지 만듦. 대상이 넓어지는 방향이라 핵심 범위와 나눈 별도 트랙으로 두고, 실제 주문은 보내지 않음. 주문 버튼 클릭과 알림 신청 수로 수요를 잼(H4)

3. 가설

가장 위험한 가정부터 순서대로 검증. 번호는 처음 정한 그대로 둠(GA 이벤트·실험 기록과 맞추려고).

#가설위험도이 가설이 틀리면
H1 신호국내 시장이 모두 닫힌 동안(20:00~08:00) 하이퍼리퀴드에서 충분히 거래됐다면, 그 가격이 움직인 방향대로 다음 날 08:00 국내 시장도 80% 이상 같은 방향으로 시작한다가장 높음서비스 존재 이유가 없음
H5 에이전트 (초기 타겟)LLM 자동매매 봇 운영자에게 밤사이 숫자를 API·MCP로 열면 봇이 매주 반복해서 호출한다높음초기 타겟 가정이 틀림. 웹 화면 중심(확장 타겟)으로 순서를 바꿈
H2 가치 (확장 타겟)보유 종목의 밤사이 해외 가격과 "그 방향대로 열린 비율"을 보여주면 장 시작 전에 다시 찾아온다높음신기한 숫자로 끝나고 습관이 안 됨
H3 신뢰지난 개장 기록을 같이 보여줘야 숫자를 믿고 행동한다중간숫자만 보고 떠나거나, 반대로 맹신
H4 전환 (확장 트랙)수수료·세금까지 뺀 가격 차이 거래(시세차익) 기회를 보여주면 조회가 주문 버튼 클릭으로 이어진다 (주문은 출시 전이라 클릭 시 출시 알림 신청)중간종목 상세가 구경용에 그침

H1은 출시 전 과거 데이터로 먼저 검증

왜 이 기준인가

  • 개인 투자자는 정규장(09:00–15:30)뿐 아니라 넥스트레이드(08:00–08:50, 15:30–20:00)에서도 거래함 → '국내 시장'은 둘을 합친 08:00–20:00
  • 국내가 정말 닫힌 시간은 20:00 → 다음 거래일 08:00(평일 12시간, 주말·연휴는 더 김). 이때 움직이는 건 하이퍼리퀴드뿐
  • 그래서 기준 = 20:00 국내 마지막 가격, 맞힐 대상 = 08:00 국내 시장이 다시 열렸을 때 개인이 거래할 수 있는 가격
  • 08:00 첫 체결 한 건은 거래가 적어 들쭉날쭉함 → 08:00~08:10 거래량 가중 평균을 씀 (아래 비교표에서 5분·10분 평균이 가장 안정적)

채점 방법

  • 하이퍼리퀴드 움직임 = 08:00 직전(07:00~07:59 1시간 봉 종가, 그 시각 환율로 원화 환산) 하이퍼리퀴드 가격 ÷ 전날 20:00 국내 가격 − 1. 08:00 넥스트레이드 첫 체결이 오라클로 들어가 perp가 튀는 경우(2026-07-28)를 피하려고 08:00 직전 가격을 씀
  • 국내 움직임 = 08:00~08:10 평균 가격 ÷ 전날 20:00 국내 가격 − 1
  • 둘의 방향(+/−)이 같으면 '따라감'. 둘 중 하나라도 ±0.05% 안쪽이면 '거의 그대로'로 따로 표시하고 비율에서 뺌
  • 조건: 그날 밤(20:00~08:00) 하이퍼리퀴드 거래대금 100만 달러 이상. 거래가 적으면 몇 건의 주문으로도 가격이 흔들려 '시장의 판단'으로 보기 어려움 (아래 근거)
종목방향대로 (거래 충분한 밤)전체 밤80% 구간 실제 포함예상 가격 오차비교: 어제 20:00 가격 그대로
삼성전자 (2026-11-05 기준, 매일 다시 계산)88.2% (119번 중 105번)85.8% (134번 중 115번)83.2%1.22%p2.40%p
SK하이닉스85.4% (130번 중 111번)85.4% (137번 중 117번)89.1%1.10%p2.84%p
현대차판단 보류 (7번 중 5번)66.7% (135번 중 90번)88.2%1.26%p1.53%p

거래대금 조건의 근거 (같은 기간, 세 종목 합산)

밤사이 하이퍼리퀴드 거래대금해당 밤방향대로 열림
100만 달러 미만15067.3%
100만 달러 이상25686.3%
(참고) 50만 / 200만 달러 이상290 / 23284.8% / 87.1%
  • 한 종목 안에서도 거래가 많은 밤이 더 잘 맞음: 삼성전자 78.8% → 92.6%, SK하이닉스 81.2% → 89.7% (각자 중간값 아래/위)
  • 현대차는 밤사이 거래대금 중간값이 23만 달러(삼성전자 1,760만, SK하이닉스 9,700만)라 거의 모든 밤이 기준 미만
  • 기준선은 백테스트에서 거래대금 구간별로 적중률을 비교해 정함 (100만 달러 미만 67.3% vs 이상 86.3%로 차이가 가장 뚜렷한 지점)
  • 같은 데이터로 기준을 고르고 같은 데이터로 채점하면 성적이 실제보다 좋게 보일 수 있음 → 기준을 0~500만 달러로 바꿔도 결과가 거의 같은지 확인함 (아래 표). 숫자 하나에 기대는 결과가 아님. 앞으로 쌓이는 밤으로 계속 다시 확인
밤사이 거래대금 기준0 (조건 없음)25만 달러50만 달러100만 달러200만 달러500만 달러
삼성전자85.9% (135)85.6% (132)86.2% (130)88.3% (120)88.9% (108)89.3% (103)
SK하이닉스85.5% (138)85.5% (138)86.0% (136)85.5% (131)86.3% (124)86.3% (117)

(2026-11-06 기준, 괄호는 채점한 밤 수. 하이퍼리퀴드 방향대로 열린 비율)

  • 화면: 그날 밤 거래가 기준 미만으로 보이면(지금까지 밤 거래와 최근 20일 밤 거래의 중간값 중 큰 쪽) 예측 옆에 '거래 적어 덜 정확' 표시

어느 시점 가격으로 채점할지 비교 (조건 없이 전체 밤, 하이퍼리퀴드 방향대로 열린 비율)

종목08:00 첫 체결08:00~08:05 평균08:00~08:10 평균08:00~08:30 평균정규장 09:00
삼성전자80.5%85.3%85.8%84.6%83.5%
SK하이닉스85.9%85.4%85.4%84.2%84.1%
현대차70.1%66.9%66.7%69.9%73.3%
  • 기간: 2026-04-13 ~ 2026-11-05, 종목별 139번. 80% 구간·오차는 앞 20번을 학습에만 쓰고 나머지 119번으로 채점. 하이퍼리퀴드 상장은 2026-02-20(한국 시간 새벽 5시, SK하이닉스 기준)이지만, API가 1시간봉을 최근 5,000개(약 7개월)만 보관해서 08:00 가격이 있는 4월 13일부터 채점 가능. 시간이 지나면 표본이 계속 늘어남
  • 이전 기준(정규장 15:30 종가 → 09:00 시가)에서는 91.2 / 90.8 / 85.5%였음. 15:30~20:00 넥스트레이드에서 이미 보이는 움직임까지 '예측'으로 쳤기 때문에 높게 나온 것 → 서비스 전제와 맞지 않아 기준을 바꿈
  • 표본은 2026년 4~11월 한 시기라, 다른 장세(긴 횡보·강세장)에서도 같은지는 쌓이는 밤으로 계속 확인해야 함

다른 신호와 비교 (같은 기간·같은 채점, 조건 없이 전체 밤, 2026-11-06 계산)

신호삼성전자SK하이닉스
국내가 오르며 열린 비율 (항상 '오른다'로 찍기)53.3%52.2%
종목 perp (하이퍼리퀴드 삼성전자·SK하이닉스)85.9%85.5%
EWY perp (하이퍼리퀴드 MSCI 한국 ETF)87.2%85.3%
코스피200 perp (하이퍼리퀴드)84.3%83.1%
  • 매일 '오른다'고 찍기만 해도 맞는 비율은 52~53%(같은 기간 국내 시장이 오르며 시작한 날의 비율). 하이퍼리퀴드를 따른 85~88%와의 차이가 신호의 값
  • 방향만 보면 종목 perp가 한국 지수 perp보다 낫지 않음 → 이 서비스의 가치는 '종목 perp만의 방향 예측력'이 아니라 국내가 닫힌 시간에 정해지는 가격을 종목별 원화 가격으로 보여주는 것
  • 아직 못 한 비교: 코스피200 야간선물(무료 분봉 데이터 없음), 시작 가격 '크기' 오차를 신호별로 비교
  • 결론: 삼성전자·SK하이닉스 통과, 현대차 판단 보류. 현대차는 하이퍼리퀴드 거래가 너무 적어 기준을 넘는 밤이 거의 없음 → 예측에 '거래 적어 덜 정확' 표시
  • 화면에서도 같은 숫자를 매일 다시 계산해 공개 (H3 검증 장치)
언제 본 가격이냐: 미국장 전·중·후

밤사이 하이퍼리퀴드는 미국장(겨울 23:30~06:00, 여름 22:30~05:00 한국 시간)이 열려 있는 동안 가장 크게 움직임. 저녁 9시에 본 가격과 새벽 6시에 본 가격은 믿을 수 있는 정도가 완전히 다름.

밤의 시각별로 '그때 하이퍼리퀴드 가격을 그대로 봤다면' 다음 날 국내 시장이 그 방향으로 열렸는지 (2026-04-13~11-06 평일 밤, 종목별 108번)

시각삼성전자SK하이닉스1% 넘게 움직인 날만평균 오차
21시49.1%48.6%46%2.5~3.0%p
23시66.0%62.6%63~68%2.3~2.6%p
01시71.7%72.9%76~79%1.9~2.1%p
03시83.0%79.4%86~89%1.7~1.8%p
06시 (미국장 마감 뒤)85.8%86.9%91~95%1.3%p
07시88.7%89.7%94~95%1.3~1.4%p
  • 상장(2/20)부터 4시간봉으로 본 133번도 같은 모양: 21시 49~53%, 01시 70~74%, 05시 83~86%
  • 화면은 지금이 미국장 전·중·후 중 어디인지에 따라, 같은 단계에서 봤던 지난 개장일의 적중률을 보여줌 (개장일마다 한 번씩 셈. 주말 60시간이 평일 12시간보다 많이 세어지지 않게)
평일 밤미국장 열리기 전열려 있는 동안닫힌 뒤
삼성전자54.7%75.0%87.4%
SK하이닉스52.5%73.9%88.0%
(주말·연휴 닫힌 뒤)삼성전자 68.5%, SK하이닉스 75.6%
  • 그래서 화면은 '오를 확률'처럼 앞으로를 약속하는 숫자 대신 "미국장 마감 때 하이퍼리퀴드 가격 / 지금 가격 / 과거 이 시간대엔 n%가 이 방향대로 열렸어요" 를 보여줌. 틀릴 수 있는 숫자를 확률로 포장하지 않기 위해서
  • 발견 경위: 커뮤니티 첫 글(11/5 21시)에 '내일 시초가 +0.3%'를 썼는데, 새벽 미국장에서 하이퍼리퀴드가 −9.5%까지 내려가 실제 시작은 −11.9%. 저녁 숫자를 내일 가격처럼 보여준 게 문제였음
보통 시작 범위 계산법

화면의 '보통 이 안에서 시작(80% 구간)'과 지난 개장 기록 채점은 아래 순서로 계산함. API에는 예상 가격·probUp도 남아 있지만 화면에서는 쓰지 않음 (확률이 약속처럼 읽혀서). 사용자용 설명은 소개 페이지('밤사이는 이렇게 계산해요')에 있음. 모델은 일부러 단순하게 둠 (표본이 종목별 140번 남짓이라 복잡하면 과적합되고, 초보도 이해할 수 있어야 해서)

  1. 밤사이 차이 g = 지금 하이퍼리퀴드 가격(원화) ÷ 어제 20:00 국내 가격 − 1
  2. 예상 움직임 μ = α + β × g
    • β = 과거 개장에서 국내가 하이퍼리퀴드 움직임을 평균 몇 배 따라갔는지. 1(그대로 따라감) 쪽으로 당겨서 급락일 몇 번에 흔들리지 않게 함
    • α = 하이퍼리퀴드와 상관없이 생기는 평균 차이 (거의 0)
  3. 불확실성 σ = √(과거 예측이 빗나간 폭² + β² × 하이퍼리퀴드 시간당 변동성² × 장 열리기까지 남은 시간)
    • 빗나간 폭은 평일 밤 / 주말·연휴를 따로 계산 (주말이 더 큼)
    • 남은 시간이 길수록 하이퍼리퀴드가 더 움직일 수 있으니 범위를 넓힘
  4. 결과
    • 예상 가격 = 어제 20:00 가격 × (1 + μ)
    • probUp(API 전용, 화면에는 안 씀) = 정규분포에서 0보다 클 확률 Φ(μ / σ)
    • 예상 범위(80% 구간) = μ ± 1.28σ. 10번 중 8번은 이 안에서 시작하도록 잡은 범위
  5. 검증: 그날 이전 데이터로만 2~4를 계산해 그날 결과와 비교 (walk-forward). 미래 정보가 섞이지 않음

예시: SK하이닉스, 2026-11-04 아침 (실제 채점과 같은 방식: 11월 3일까지 137번 개장으로 맞춘 계수 α −0.22%, β 0.875, 평일 밤 σ 1.36%)

단계값
어제(11/3) 20:00 국내 가격1,414,000원
11/4 08:00 직전(07:59) 하이퍼리퀴드 가격 (원화)1,461,621원 → g = +3.37%
예상 움직임 μ = −0.22% + 0.875 × 3.37%+2.73% → 예상 가격 약 1,452,600원
불확실성 σ (08:00이라 남은 시간 0)1.36%
probUp Φ(2.73 / 1.36) (API 전용)약 98% (97.8%)
예상 범위 2.73% ± 1.74%+0.99% ~ +4.47% → 약 1,428,000원 ~ 1,477,200원
실제 08:00~08:10 평균1,451,776원 (+2.67%) → 방향 맞음, 예상 범위 안
  • 지금(11/5) 기준 계수는 α −0.24%, β 0.88, σ 1.37%로 매일 조금씩 바뀜. 예시는 그날 아침 실제로 썼을 계수로 계산함 (서버 채점 값 +2.7289%와 일치)

4. 검증 지표

North Star: 밤사이 API·MCP를 호출한 주간 외부 호출자 수 (초기 타겟) → 선정 이유: 초기 타겟의 봇이 밤사이 숫자를 실제 판단에 쓰고 있다는 가장 직접적인 신호. 한 번 붙여 보고 마는지, 매주 다시 부르는지가 핵심

  • 정의: 실제로 데이터를 가져간 호출(REST /v1 조회, MCP 도구 호출)만 남기는 GA 이벤트 api_data_call의 주간 고유 호출자. 연결 확인(initialize·tools/list), 목록 사이트 점검, 오류 응답, 우리 쪽 확인 호출은 제외
  • 호출자 구분: IP와 User-Agent를 비밀 값과 섞은 해시(caller_id, 2026-11-07부터). IP 원문은 GA로도 로그로도 남기지 않음. 같은 망에서 같은 도구를 쓰면 한 명, IP가 바뀌면 두 명으로 셀 수 있는 근사값. 그 전 기록은 User-Agent로만 구분돼 사람 수를 알 수 없음
  • 신규·재사용자: 그날 처음 본 caller_id면 신규, 이전 날에 본 적 있으면 재사용자
  • 보조: 개장 전(06~08시) predict_open 호출 수, 2주 연속 호출한 호출자 비율
  • 유입: 2026-11-06 공식 MCP Registry(io.github.eddyParkGG/bamsai)와 Glama에 등록(원격 연결 kr.bamsai/bamsai A등급, 소스 빌드 검사 통과한 서버 eddyParkGG/bamsaikr B등급), awesome-mcp-servers·awesome-remote-mcp-servers 목록에 추가 PR(자동 검사 통과, 관리자 머지 대기). 로컬 프로세스로 붙이는 클라이언트용 stdio 실행(npm run mcp:stdio) 지원

확장 타겟 지표: 미국장이 닫힌 뒤 국내 시장 시작 전(06:00~08:00)에 밤사이 가격을 실제로 본 주간 사용자 수 → 선정 이유: H2(습관)와 H1(하이퍼리퀴드 신호)이 둘 다 맞아야 오르는 숫자. 06시 이후가 하이퍼리퀴드 가격이 가장 정확한 시간대(위 표)이고, 08시에 넥스트레이드가 열리기 전 판단하는 순간이라 이 시간대만 셈

  • 정의: GA prediction_view 이벤트 중 kst_window = preopen(06:00~08:00 KST)인 고유 사용자. 홈·종목 페이지에 들어왔을 뿐인 page_view는 세지 않음
  • 측정 상태: 2026-11-06에 GA 맞춤 측정기준(kst_window 등)을 등록해 그날부터 측정 가능. 그 전 데이터로는 계산할 수 없음
  • 다음 단계에서 이어 볼 것: 같은 사용자의 주간 재방문률, (주문 출시 후) 개장 직후 주문 전환
확장 타겟 첫 실험: 커뮤니티 게시
항목내용
목적H2(개장 전에 다시 오나)를 가장 싸게, 가장 빨리 확인
채널디시 주식 갤러리. 종목별 마이너 갤러리는 글이 거의 없어서(SK하이닉스 하루 몇 건, 하이퍼리퀴드·삼성전자 주주 갤러리는 몇 달째 0건) 제외. 네이버 종목토론방은 운영원칙상 광고·홍보 금지라 첫 글이 몇 분 만에 삭제됐고 본문 링크도 클릭되지 않아 제외
시점처음에는 저녁 8시 넥스트레이드 마감 후(21~22시) 게시. 이후 미국장 마감 뒤 아침, 점심, 장 마감 직후, 주말 밤으로 넓혀 시간대별 반응을 비교. 목·금·일 저녁 → 금·월 개장 전 재방문 측정 (주말 갭 포함). 첫날(목)은 A형·B형 1개씩 시간 간격을 두고 게시(연속 게시는 도배로 보일 수 있음)
기간2주 (11/5 목 ~ 11/19 목, 국내 개장 10번). 개장 전 재방문은 개장일마다 쌓여야 판단할 수 있어서, 주말이 두 번 들어가고 평일 개장이 충분히 쌓이는 2주로 둠
메시지 A/BA 예측형 / B 사실형 "지금 해외에선 삼성전자 -2.6%". 1차(11/5)는 A에 저녁 숫자와 '오를 확률'을 썼는데, 저녁 숫자가 거의 동전 던지기 수준이라(위 '언제 본 가격이냐') 이후 A는 미국장 마감 뒤 숫자 + '과거 이 시간대엔 n%가 이 방향대로 열렸어요' 로 바꿈
추적글마다 utm_source(dc_stock 등) + utm_content(종목_요일_A/B). 첫 유입 채널을 사용자 속성으로 저장. 게시 기록은 docs/experiments/community/posts.md. 11/8 오후 글부터는 링크를 홈 대신 글에서 다룬 종목의 상세 페이지(/s/SKHX 등, utm_content 끝에 _detail)로 걸어, 홈 링크 글과 밤사이 가격 확인 비율·체류·다음 날 재방문을 비교
측정 범위첫 글 다음 날인 11/6 0시 이후 전체 방문(내부 트래픽 제외). 글 링크로 처음 온 사람도 나중엔 주소를 직접 쳐서 다시 올 수 있어, 출처(UTM)가 남은 방문만 세지 않음. UTM은 글·메시지별 유입 비교용
판단 최소 표본방문자 200명. 2주가 지나도 미만이면 같은 방식으로 게시를 이어 가며 표본을 채운 뒤 판단
진행 방식갤러리 3곳(주식, 한국 주식, 미국 주식)에 하루 1~3번, 같은 갤러리는 2~3시간 이상 간격. 형식을 돌려 가며 씀(사실형, 검증형 '최근 N주 월요일 맞춰봄', 질문·투표형, 흐름 정리형, 비교형). 글마다 서비스 화면 스크린샷 2장(홈 카드, 종목 상세 차트). 한국 주식 갤러리는 자기 사이트 홍보 금지라 링크 없이 게시. 글별 조회·추천·댓글 수와 댓글 내용 요지를 게시 기록에 남김. 클릭률 3%를 가정하면 방문 200명에 조회 약 6,700회가 필요
단계지표성공 기준근거GA4
유입게시글 조회 대비 방문≥ 3%커뮤니티 링크 클릭률 통상 1~3% 가정. 3%를 넘으면 문제 자체에 관심 있다고 판단session_start × first_source
활성화방문 → 예측 확인≥ 70%첫 화면에 바로 보여서 이보다 낮으면 첫 화면 문제prediction_view
활성화예측 → 종목 상세≥ 30%숫자 하나 보고 이탈하는지, 근거를 더 보는지prediction_detail_open
핵심 리텐션첫 방문 다음 개장 전 재방문 (밤사이 가격을 실제로 본 경우만)≥ 15%커뮤니티발 일회성 유입의 D1 재방문은 보통 5~10% 수준으로 가정. 그 두 배면 '습관' 신호prediction_view (kst_window=preopen)
리텐션기간 중 2일 이상 방문≥ 20%주말 갭이 있는 월요일까지 다시 오는지코호트 탐색
신뢰근거 확인 (개장 전 가격·지난 개장 기록 탭 열람)≥ 10%숫자만 보고 믿는지, 근거를 확인하는지model_explain_open

판단 규칙

  • 개장 전 재방문 15% 이상 → 개장 전 알림(웹 푸시) 바로 개발. 알림이 리텐션을 더 올릴 여지가 큼
  • 5~15% → 메시지(A/B 중 나은 쪽)와 게시 시각을 바꿔 1회 재실험
  • 5% 미만 → '매일 보는 습관' 가설 기각. 주말·연휴 갭 리포트처럼 이벤트성 콘텐츠로 방향 전환
  • A/B는 채널 간 차이보다 메시지 차이를 먼저 봄 (채널은 2개뿐이라 비교 의미가 약함)

주의할 점

  • 커뮤니티 홍보 금지 규정: 정보 공유 형식(주말 갭 수치 + 그래프 캡처)으로 쓰고 링크는 1개만
  • 특정 종목 매수·매도 권유 문구 금지 (유사투자자문 오해 방지)

중간 현황 (2026-11-08 11시 기준, 측정 범위 11/6 0시부터, 내부 트래픽 제외)

항목값
게시18건(갤러리 3곳), 누적 조회 약 1,540회. 그중 링크가 있는 글 13건이 약 930회
웹 방문자74명(신규 72명, 다른 날 다시 온 사람 4명). 판단 최소 표본 200명 전이라 판단 전
첫 유입직접 입력 54명, 디시 링크 12명(주식 5, 미국 주식 7), bing 8명
디시 링크 클릭률약 1.3% (링크 있는 글 조회 약 930회 → 12명)
밤사이 가격 확인48명(방문자의 65%) → 종목 상세로 이어짐 4명
개장 전(06~08시) 확인첫 평일 개장 전인 11/9(월)부터 집계 (시간대 측정 기준은 11/6 등록)

API·MCP (초기 타겟, 같은 기간)

항목값
실제 데이터 조회 (api_data_call)사람·AI 에이전트 호출자 0명. 기록된 5건은 모두 목록 사이트 점검이었음(BrickBlueBot 3건, agent-index-prober 1건, verifymcp 인증 확인 1건)
연결 확인만 한 호출 (api_check, 11/7부터)57곳, 294건. 모두 도구는 부르지 않음. 그중 30분마다 반복하는 주기 점검 1곳이 76건
호출자 구분 보강11/8부터 MCP 연결 때 클라이언트가 밝히는 이름(mcp_client, 예: Claude·Cursor)을 기록해 AI 앱 연결과 점검 스크립트를 이름으로 나눔
판단 시점초기 타겟 유입 경로인 awesome MCP 목록 PR 2건(#18872, #4148)이 머지된 뒤부터 판단
출시 후 지표 (실험 통과 시)
가설지표목표 (4주)GA4 이벤트
H1하이퍼리퀴드 방향대로 열린 비율 (보조: 80% 구간 포함률)≥ 80% / 75~85%서버 계산, 화면 공개. 4주 연속 75% 미만이면 노출 중단
H3근거 확인한 사람의 재방문율 차이+10%pmodel_explain_open
H4시세차익 기회 조회 → 주문 버튼 클릭≥ 5%arb_view → (arb_cta_click: 차트의 '시세차익 내기') → order_submit
H4주문 버튼 → 출시 알림 신청 (주문 열리기 전 수요 측정)≥ 20%order_submit → launch_notify_signup
H5주간 데이터 호출자 수와 호출 수주 1,000회서버가 GA로 보내는 이벤트: api_data_call(실제 도구·REST 조회만), api_check(연결 확인·점검·오류), 둘을 합친 api_call. 매개변수 caller_id(사람 구분), is_bot(점검 봇), ua_head(UA 앞 40자). GA mcp_copy

가드레일 (나빠지면 바로 멈춤)

  • 예측 오차 3%p 이상인 날의 비율 (오라클 이상, 상한가·하한가 날 포함)
  • 주문 버튼 클릭 중 하이퍼리퀴드·레버리지 5배 이상 비중 (order_submit의 market, leverage, lev_bucket = gte5)
  • 홈에서 들어와 종목 상세 주문까지 간 비율 (초보의 고위험 상품 유입 감시)

5. 해결 방법

홈종목 상세
질문"밤사이 해외에선 얼마나 움직였어요? 믿을 만해요?" / "지금 시세차익 기회 있어요?"두 시장이 어디서, 얼마나, 왜 벌어졌나
화면종목 카드 3개 (누르면 종목 상세). 장중: 위 '국내 지금' / 아래 '미국장 닫힌 뒤 · 국내 개장 직전 글로벌 가격'. 장 마감 후: 위 '국내 종가' / 아래 '지금 글로벌 가격'(실시간) + 미국장 단계 + '과거 이 시간대 n%가 이 방향대로 열렸어요'. 아래에 해외 가격과 시세차익 기회(1천만원 기준)차트 | 호가 | 주문 3단(경계를 끌어 너비 조절, 기본 340px, 페이지 스크롤 없음), 차트 위 '하이퍼리퀴드 지금 · [자세히]'와 그 아래 미국장 단계·과거 적중률 한 줄·'시세차익 · 1천만원이면 약 N원 [시세차익 내기]', 차트 전체화면, 탭 줄 끝 오늘의 이슈, 개장 전 가격·지난 개장 기록·투자자 동향 탭
용어perp → "하이퍼리퀴드", KRX·넥스트레이드 → "국내 시장", 시가 → "장 시작 가격"같음 (원화 환산 기준)

종목 상세 차트

  • 두 시장 캔들/라인 겹침, 시장별 on/off, 시장별 거래량
  • 배경색으로 국장 개장(정규장·넥스트레이드)·휴장(하이퍼리퀴드만 거래) 구분, 일봉 포함
  • 하이퍼리퀴드 일봉은 국내 거래일과 같은 저녁 8시~저녁 8시 기준으로 다시 묶음 (거래소 일봉은 UTC 하루라 13시간 어긋남)
  • 가격 차이 패널: 장중은 진하게, 휴장 중(직전 종가 대비)은 연하게. 하이퍼리퀴드 상장일 세로선
  • 따라간 정도 패널: 하이퍼리퀴드가 1% 이상 움직인 날, 그 움직임을 국내 시장이 몇 % 따라 시작했는지 막대로 (100 점선 = 같은 만큼)
  • 보조 패널(거래량·가격 차이·따라간 정도·펀딩비·RSI·MACD)마다 제목과 물음표 설명, 지표를 켜면 자동으로 붙음
  • 휴장 중에는 보통 시작 범위(점선 2개), 시세차익이 생기면 그 가격에 '시세차익 내기' 버튼
  • 뉴스 말풍선 (하루 1건, 출처 확인된 것만) → 누르면 요약과 원문 링크
  • 이동평균, 그물망, 볼린저, 일목균형, VWAP, RSI, MACD, 펀딩비

따라간 정도 지표 ('지난 개장 기록' 표·차트·API 공통)

  • 따라간 정도 = 08:00~08:10 국내 움직임 ÷ 밤사이 하이퍼리퀴드 움직임. 100%면 그대로 따라 시작. 차트에는 하이퍼리퀴드가 1% 이상 움직인 날만 표시 (작은 움직임은 비율이 의미 없음)
  • 만난 지점 = 08:00~09:00 동안 두 가격이 만난 위치. 0이면 하이퍼리퀴드가 국내 쪽으로, 1이면 국내가 하이퍼리퀴드 쪽으로 이동

가격 차이 거래 (화면 이름 '시세차익')

  • 전제: 하이퍼리퀴드 지갑(USDC)과 국내 증권 계좌에 미리 자금을 둔 상태. 원화를 USDC로 바꿔 옮기는 시간은 거래 순간에 들지 않음
  • 방법: 두 가격 차이가 평소보다 벌어졌을 때 비싼 쪽을 팔고 싼 쪽을 산 뒤, 차이가 평소 수준으로 돌아오면 둘 다 정리
  • 성격: 무위험 차익이 아니라 평소 차이로 돌아온다는 데 거는 거래(통계적 차익). 같은 순간에 사고팔아 확정되는 이익이 아님
  • 아직 반영 못 한 위험: 차이가 언제 좁혀질지 모름(펀딩비는 1시간 보유로 가정), 양쪽에 자금을 묶어 두는 부담

순차익 = |가격 차이 − 평소 차이| − 슬리피지 − 주문 간 시차 비용 − 주식 수수료·세금 − perp 수수료 − 환전 비용 − 보유 중 펀딩비

  • 두 시장 가격 차이는 0으로 돌아가지 않고 '평소 수준'에서 움직임. 정규장 시간 월별 중간값이 2026년 9월 약 −0.7~+0.1%, 10월 +0.9~1.0%, 11월 +0.5% (세 종목 비슷)
  • 그래서 평소 차이 = 최근 5거래일 정규장 1시간 가격 차이의 중간값으로 두고, 지금 차이가 평소보다 더 벌어진 만큼만 기회로 봄. 처음에는 0을 기준으로 계산해서, 평소 수준인 날에도 '1천만원 기준 약 17,000원 남아요'로 보였던 문제를 고침
  • 화면 목록은 두 경우만: 비용을 빼고 남으면 '+N원', 아니면 '아직 시세차익 기회가 없어요'. 이유(평소 수준·비용이 더 큼·주식 매도 필요)는 차트 위 설명에서 봄
  • 호가 기준 체결가: 1천만원(notionalKrw)만큼 하이퍼리퀴드는 매수 호가를, 국내는 매도 호가를 쌓아 평균 체결가를 계산. 중간 가격과의 차이가 슬리피지. 보이는 호가로 다 못 채우면 '호가 잔량이 부족해 최대 N만원까지'로 표시하고 채울 수 있는 금액으로 계산
  • 주문 간 시차: 두 주문은 동시에 체결되지 않음. 최근 60분 1분 변동성 × √(시차/60초), 시차 기본 3초(lagSec)
  • 오라클이 튀는 순간에도 숨기지 않고 실제 호가 그대로 계산 (그 가격에 실제로 체결되므로). 대신 아래 '오라클 이상 구간'에는 '오라클 이상 구간: 추가 급변 시 청산 위험 · 레버리지는 1~2배로 낮게' 경고를 목록 행과 주문 박스에 붙임

오라클 이상 구간 방어 (server/services/oracle.ts, 2026-07-28 사례는 한계 메모 참고)

  • 판단(최근 30분, 10초 캐시)
    • ① 호가 중간값이나 표시 가격(mark)이 오라클과 3% 이상 차이
    • ② 1분봉 하나가 직전 종가보다 5% 이상 움직임(체결 3건 이하면 2% 이상)
    • ③ 같은 1분에 EWY·코스피200 perp와 4%p 이상 다르게 움직이면 이유에 추가. EWY·코스피200도 같이 움직였으면 시장 전체 움직임으로 보고 ②는 표시하지 않음
  • 밤사이 가격·적중률: 이상 구간에는 순간 가격 대신 최근 30분 1분봉 종가의 중간값을 씀(거래가 드물어 30분 안에 봉이 5개 미만이면 최근 1분봉 30개). 급변 봉은 거래량이 폭증해서(청산) 거래량 가중 평균은 오히려 튄 가격 쪽으로 끌려가기 때문. 새 가격이 15분 넘게 이어지면 중간값도 그 가격으로 옮겨 가서, 진짜 움직임은 늦게라도 반영됨. 홈 카드·차트 위 '하이퍼리퀴드 지금'·개장 전 가격 탭에 '가격 불안정' 표시와 설명
  • 시세차익: 숫자는 그대로, 경고만 붙임
  • API·MCP: predict·arb 응답의 oracle (active, reasons, since, robustKrw, predict는 liveKrw·usedRobust도). 최근 3.6일 1분봉(세 종목 약 5,200개씩)에 돌려 본 결과 표시된 구간 0건(최대 1분 움직임 −3.0%)
항목기본값근거
주식왕복 수수료 0.03% + 매도세 0.20%2026년 코스피 증권거래세·농특세 합계로 가정
perp왕복 0.018%HL 기본 0.045% × HIP-3 배수 2 × growth mode 0.1
환전(0.05% + 호가 스프레드 절반) × 2 ÷ 레버리지업비트 원화마켓 수수료, 증거금만 환전
펀딩시간당 펀딩 × 1시간숏이면 받고 롱이면 냄
슬리피지1천만원어치 호가를 쌓은 평균 체결가 − 중간 가격두 시장에서 받아 오는 호가 단계까지
주문 간 시차1분 변동성 × √(3초/60초)최근 60분 원화 환산 1분봉
  • 개인은 주식 공매도가 어려워서 perp가 쌀 때(주식 매도 필요)는 기회로 세지 않음
  • 모든 비용은 API 파라미터로 바꿀 수 있음

6. 주요 결정과 이유

결정이유
환율은 원/USDC (업비트 실시간)perp는 USDC로 정산. 국내 투자자가 실제로 돈을 옮기는 경로가 원 → USDC라서, 은행 원/달러 환율보다 체결 가능한 값에 가까움
증권사 API는 토스증권 Open API카카오페이증권은 오픈 API가 없어서, 발급이 쉬운 토스증권 Open API를 사용. 실시간 체결·호가 웹소켓, 1분봉(넥스트레이드 포함 통합 시세), 투자자 동향, 장 운영 캘린더, 주문까지 한 곳에서. 브라우저가 직접 못 붙는 웹소켓(헤더 인증·허용 IP)은 서버가 하나만 열어 나눠줌
예측·시세차익은 국내 주식 3종만, 나머지는 하이퍼리퀴드 가격만하이퍼리퀴드의 한국 상품 7개(삼성전자·SK하이닉스·현대차·SK하이닉스 ADR·코스피200·EWY·KORU)를 다 보여주되, 같은 기초자산의 국내 가격이 있는 국내 주식 3종만 예측·시세차익을 계산. ADR은 보통주로 바꿀 수 없고, 코스피200은 증권사 API에 실시간 지수가 없고, EWY·KORU는 미국 ETF라 비교 대상이 없음
화면은 Vercel, API 서버는 Fly.io (고정 IP 서버 1대)토스증권 Open API는 허용 IP에서만 호출되고, 토큰을 새로 받으면 이전 토큰이 바로 무효가 됨. 그래서 고정 출구 IP를 가진 서버가 항상 1대만 떠 있어야 함. Vercel·Firebase 같은 서버리스 함수는 요청마다 인스턴스가 여러 개 뜰 수 있어 토큰이 서로를 끊고, 고정 IP는 유료 옵션. Fly는 머신 1대 + 고정 출구 IP(월 $3.6)로 월 $8 안팎. 화면(정적 파일)은 Vercel이 내보내고 /api만 Fly로 넘김
국내 실주문은 기본 꺼둠토스증권은 모의투자가 없어서 실제 돈이 나감. 공개 서버(bamsai.kr)는 꺼두고 미리보기만 함. 남의 계좌로 대신 주문하지 않음. 실주문은 각자 이 저장소를 직접 띄우고 본인 토스증권 키·허용 IP·TOSS_LIVE_ORDERS=1·API_TOKEN을 넣었을 때만, 그 본인 계좌로
'국내 시장' = 정규장 + 넥스트레이드 (08:00–20:00)개인이 실제로 거래할 수 있는 시간 전체. 15:30~20:00 넥스트레이드 움직임은 이미 국내에서 보이는 정보라, 이걸 예측으로 치면 실력이 부풀려짐. 그래서 기준은 20:00 마지막 가격, 대상은 08:00 재개장 가격
08:00~08:10 평균 가격으로 채점첫 체결 한 건은 거래가 적어 튐. 5·10·30분 평균과 정규장 09:00을 비교해 가장 안정적인 10분 평균 선택
보통 시작 범위 모델은 단순 선형 + 정규분포표본이 종목별 140번 남짓이라 복잡한 모델은 과적합. 설명할 수 있어야 초보가 믿음(H3). 계수 β는 1(하이퍼리퀴드 그대로) 쪽으로 당겨서 급락일 몇 번에 휘둘리지 않게 함. 계산법은 3장 '보통 시작 범위 계산법'
장 열리기까지 남은 시간만큼 범위를 넓힘금요일 밤 예측과 월요일 07:59 예측의 확신이 같으면 안 됨. 닫힌 시간대 하이퍼리퀴드 변동성 × 남은 시간 반영
홈 → 종목 상세 한 갈래요약/상세 모드를 따로 두면 같은 정보가 두 번 나오고 '뭐가 다르지?' 고민이 생김. 초보 질문 2개("밤사이 해외에선 얼마나 움직였어?", "지금 남는 돈 있어?")는 홈 카드에서 답하고, 종목 상세에서는 같은 답을 차트 위 해당 가격에 붙여 보여줌
예측시장은 v2로 미룸국내 사행성 규제 소지, 금융당국이 해외 perp 이용에 경고한 상황. 먼저 예측 정확도와 신뢰를 쌓는 게 순서
화면 주문은 '출시 예정' + 알림 신청, API는 기본 미리보기(dryRun)프로토타입에서 실수 주문 0건이 우선. 대신 주문 버튼 클릭과 알림 신청으로 실제 수요(H4)를 잼. API 실주문은 서버 토큰 + 명시적 전환 필요, perp는 테스트넷 기본
API의 perp 주문은 에이전트 키로만 서명메인 지갑 키가 서버에 들어오지 않음. 에이전트는 주문만 가능, 출금 불가
MCP는 조회 + 미리보기만에이전트 오작동이 실제 돈으로 이어지지 않게
뉴스는 하루 1건, 출처 있는 것만차트가 뉴스로 덮이면 안 됨. 틀린 뉴스 1건이 신뢰를 다 깎음
차트는 TradingView lightweight-chartsSkia(CanvasKit)는 wasm만 수 MB라 첫 화면이 느려짐. 캔버스 기반, 약 57KB(gzip), 거래소에서 검증된 라이브러리. 종목 상세에서만 내려받음
디자인 토큰은 토스증권 PC, 키컬러·CTA만 카카오페이카카오페이증권은 PC 버전이 없어서, 간편한 UX로 잘 알려진 토스증권 PC를 참고. 증권 사용자가 이미 익숙한 정보 밀도와 컴포넌트(패널, 칩, 호가, 검색, 필터). 하이퍼리퀴드는 그쪽 키컬러에 가까운 민트로 구분. 브랜드 구분은 노랑(#FFEB00) 하나로 충분. 폰트는 토스 전용 서체 대신 가장 가까운 공개 서체 Pretendard
React 19.3.1 / Vite 8.3.5최신 패치 버전이면서 실사용 2위 버전. 2025~26년 React 보안 이슈는 서버 컴포넌트 한정이라 SPA는 해당 없음. Vite는 10월 보안 패치 포함 버전

7. GTM

단계기간대상채널넘어가는 조건
0-A. MCP 목록 등록상시LLM 자동매매 봇 운영자 (초기 타겟)공식 MCP Registry·Glama 등록(11/6), awesome-mcp-servers·awesome-remote-mcp-servers 추가 PR, AI 검색 유입(GEO·llms.txt)주간 외부 호출자 증가 (H5)
0-B. 커뮤니티 실험2주디시 주식 갤러리 사용자 (확장 타겟)갤러리 3곳에 시간대·형식을 바꿔 꾸준히 게시 (UTM 분리)개장 전 재방문 15%
1. 홈 공개4주삼성전자·하이닉스 보유자개장 전 07:00 알림(미국장 마감 뒤: "삼성전자 하이퍼리퀴드 −2.1%, 과거 이 시간대엔 87%가 이 방향대로 열렸어요"), 증권 앱 종목 페이지 진입점North Star 주 1만 명, H2 재방문 30% (가정. 첫 실험·인터뷰 결과로 다시 정함)
2. 종목 상세 주문4주주식·코인 겸업 트레이더업비트·하이퍼리퀴드 커뮤니티, 주말 갭 리포트 콘텐츠H4 전환 5%
3. 봇 운영자 확대상시초기 타겟하이퍼리퀴드·퀀트 커뮤니티, 예제 봇 저장소H5 주 1,000회
  • 메시지: "장 열리기 전에 먼저 보세요" (가격 정보가 아니라 '시간'을 파는 서비스)
  • 훅 콘텐츠: 연휴 끝 개장 전날 "연휴 동안 해외에서 삼성전자 -3.7%, 내일 장 시작 가격은?" (2026-10-18 주말 사례처럼 큰 갭이 생기는 날이 가장 강한 획득 시점)
  • 증권사 입장에서의 가치: 해외 perp로 빠져나가는 수요를 '국내 주식 장 시작 가격 판단' 쪽으로 되돌림. 주문은 국내 주식으로 연결

검색·AI 검색 유입 (SEO · GEO · llms.txt)

장 시작 전 "삼성전자 야간 시세", "하이닉스 장전", "하이퍼리퀴드 삼성전자"를 검색하거나 AI에게 묻는 사람이 그대로 들어오게 함

항목한 것
페이지별 정적 HTML빌드할 때 홈·소개·API·종목 7개 페이지마다 제목·설명·canonical·공유 미리보기·크롤러용 요약이 다른 HTML을 만듦(scripts/prerender.ts). JS를 실행하지 않는 네이버·AI 크롤러도 페이지별 내용을 읽음. 이전에는 모든 페이지가 홈과 같은 HTML이고 canonical도 홈이라 종목 페이지가 색인되지 않는 구조였음
구조화 데이터홈: WebApplication + FAQ(서비스 설명·적중률·환산 방식·API). 나머지: WebPage + 경로(Breadcrumb)
sitemap · robotssitemap은 빌드마다 갱신일을 새로 씀. robots는 주문·계좌 API만 막고 GPTBot·ClaudeBot·PerplexityBot·Google-Extended를 명시적으로 허용
llms.txt서비스 요약, 지원 종목, 계산 방법과 수치(기준일 표기), API·MCP 사용법, 페이지 안내를 AI가 읽기 쉬운 형식으로 공개
에이전트 접근OpenAPI 문서(/api/openapi.json)와 MCP 서버(/api/mcp)를 열어 AI 답변이 숫자를 직접 가져가 인용할 수 있게 함
검색엔진 등록2026-11-06 구글 서치콘솔(도메인 속성, DNS 확인)과 네이버 서치어드바이저(HTML 태그 확인)에 등록. 구글은 sitemap 등록 성공, 페이지 10개 발견

8. 다음 액션 (개선 포인트 아이디어)

  • 예측시장: "월요일 장 시작 가격 +2% 이상?" 같은 질문에 사용자 예측을 받아 모델과 비교 (포인트 기반, 현금 없음)
  • 개장 전 알림 (웹 푸시 / 카카오 알림톡)
  • 개인 주문 이벤트 실시간 구독 (토스증권 personal:order 웹소켓)
  • 예측 대상 확대: 지금은 가격만 보여주는 코스피200·EWY·KORU·ADR에도 국내 비교 기준을 만들어 예측 적용 (예: 코스피200 선물·ETF 시세)
  • 자동 시세차익용 안전장치: 사용자의 AI 에이전트가 get_arbitrage로 감시하다 직접 띄운 서버(본인 키)의 페어 주문 API로 실행하는 흐름은 지금도 가능함. 빠진 것은 안전장치라, 주문 API에 1회·하루 금액 한도, 레버리지 상한, 국내 장 마감 전 청산 규칙, 승인 대기 모드를 추가

AI 활용 과정

Claude Code(Opus 5.5)와 대화하며 기획부터 배포까지 진행

AI로 만든 것과 제품 안의 계산은 다름

  • AI는 개발 도구로만 씀: 리서치, 데이터 검증, 백테스트 코드 작성·분석, 구현, QA
  • 화면과 API의 숫자는 전부 실제 시세 데이터로 통계 계산이 만듦. 서비스 실행 중에 LLM API를 부르지 않고, LLM이 금융 수치를 만들거나 바꾸지 않음
단계AI가 한 일사람이 한 일
리서치하이퍼리퀴드 API를 직접 호출해 한국 종목 perp 목록·상장일·호가 확인. 토스증권 OpenAPI·AsyncAPI 스펙을 받아 엔드포인트·웹소켓 확인. HIP-3 수수료 구조 문서 확인아이디어(perp ↔ 국장 차익, 개장 예측), 범위 결정
사실 확인서브 에이전트가 2026년 주요 이슈 25건을 출처와 함께 조사 → 차트 뉴스로 사용사용할 이슈 기준 결정 (하루 1건)
검증삼성전자 perp 환산가(204,919원)와 KRX 현재가(204,750원)를 비교해 환산 방식 검증. 토스 일봉이 넥스트레이드 포함 통합 시세라 KRX 종가와 다르다는 점(218,000원 vs 221,500원)을 찾아 분봉 기준으로 수정원/USDC(업비트) 사용 결정
모델walk-forward 백테스트 작성, 사전분포 강도 5가지 비교 후 선택. 채점 기준을 넥스트레이드 포함 '국내 시장'으로 다시 정하면서 시작 가격 정의 5가지(08:00 첫 체결·5분·10분·30분 평균·09:00)를 같은 기간으로 다시 채점해 비교지표 해석, 공개 방식 결정. "개인이 거래할 수 있는 가장 이른 시간부터 가장 늦은 시간까지가 국내 시장"이라는 기준 제시
디자인토스증권 PC 화면에서 디자인 토큰(배경 #101013, 패널 #17171c·16px, 칩 13px/600·7px, 라벨 12px/500)을 브라우저로 직접 추출. 카카오페이 CSS에서 키컬러 #FFEB00, CTA 색 추출토스 PC 기준·키컬러만 카카오페이로 방향 지정, 로고 콘셉트(구름·초승달·호버 시 노란 화살표) 제안
구현·QA서버·프론트 구현. 바꿀 때마다 AI가 Chrome을 직접 띄워 화면을 누르고 스크린샷·콘솔·네트워크 요청을 확인(예: 1분봉 3분 관찰로 새 봉이 밀리는지, iPhone Safari 조건으로 로딩되는지, 아이폰 폭에서 5초 동안 화면 속성이 몇 번 바뀌는지 세어 지표 줄 깜빡임 원인 확인) → 차트 새 봉·깜빡임, 마커 과밀, 아이폰 지표 줄 깜빡임 등 수정. 이 확인 흐름을 E2E 테스트로 옮겨 PR마다 자동 실행문구·UX 리뷰
보안React·Vite 버전별 보안 권고(GitHub Advisory) 조회 후 버전 선택최종 승인
판단 교정처음 화면은 저녁 하이퍼리퀴드 가격으로 계산한 '내일 오를 확률'을 보여줬음. 커뮤니티 글에 저녁 9시 '내일 시초가 +0.3%'를 썼다가 실제 −11.9%로 시작 → 밤 시각별 적중률을 상장 이후 전체로 다시 계산해 21시 49% vs 06시 86~87%를 찾음"미국장 끝난 뒤 가격으로 봐야 한다", "오를 확률 대신 담백하게 과거 비율로" 방향 결정
채택·거절외부 AI 리뷰 피드백을 근거로 하나씩 검토: North Star 시간대 불일치(채택), 거래대금 기준 민감도 표(채택), 확률 보정 검증(다음 단계로 분리), AI 야간 브리핑(거절: LLM API 운영 비용과 수치 생성 위험)최종 선택
운영 버그아이폰 사파리 조건으로 API를 반복 요청해 CDN이 zstd 응답을 잘못 내보내는 문제를 찾고, 서버가 직접 gzip 압축하도록 수정. 토스 한도 초과는 1분 단위 그룹별 호출 집계 로그를 만들어 원인(지수 미니차트가 며칠치 분봉을 10초마다 다시 받음)을 찾고 고침 (README '오픈 후 고친 것')배포 승인, "접속자가 늘면?" 관점 제시
사용자 관점 점검API 14개·MCP 도구 5개를 실서버에서 직접 호출해 문서와 대조 → MCP 종목 검증 누락(ADR에 +48%), OpenAPI의 잘못된 출처 표기 등 수정"우리 계좌로 주문이 나가면 안 된다" 기준 제시, 실주문 경로 확인 지시
데이터 출처 검토KRX·공공데이터·한국은행·증권사 API를 조사해 비교, 토스 약관(시세는 본인 매매 목적만)을 찾아 한계로 문서화공개 화면 축소는 보류, 문서 명시로 결정

실행 방법

npm install
cp .env.example .env.local   # TOSS_CLIENT_ID / TOSS_CLIENT_SECRET 입력 (토스증권 WTS > 설정 > Open API)
npm run dev                  # 웹 http://localhost:5173 (API는 배포 서버 bamsai-api.fly.dev 사용)
npm run dev:local            # 서버 코드 수정 시: 로컬 API http://localhost:8787/api 도 실행. 켜는 동안 배포 서버의 토스 토큰이 끊김 (토스 키는 하나뿐이고 새 토큰이 이전 토큰을 무효화)
npm run mcp:stdio            # MCP를 표준 입출력으로 실행 (Claude Desktop 등 로컬 프로세스로 붙이는 클라이언트용). 조회 도구는 키 없이 동작
npx tsx --env-file=.env.local server/scripts/backtest.ts        # 백테스트 결과 출력 (서버를 끄고 실행: 토스 토큰이 서로를 무효화함. 서버가 켜져 있으면 /api/v1/convergence로 확인)
npx tsx --env-file=.env.local server/scripts/build-sessions.ts  # 지난 국내 시장 하루 가격(20:00 마지막 가격·08:00~08:10 평균·정규장 시작·종가) 저장 (배포 전, 서버를 끄고 실행)
환경변수용도없으면
TOSS_CLIENT_ID TOSS_CLIENT_SECRET토스증권 Open API (국내 시세·호가·실시간·주문)국내 시세 없음
TOSS_LIVE_ORDERS1이면 API 국내 실주문 허용 (실제 돈). 화면은 항상 '출시 예정'API는 미리보기만
HL_AGENT_KEY HL_ACCOUNT서버 API로 perp 주문API perp 주문은 미리보기만
HL_ALLOW_MAINNET1이면 메인넷 주문 허용테스트넷만
API_TOKEN실주문·주문 취소·계좌 조회 API 인증. 화면에서 보낸 것처럼 보이는 요청도 예외 없이 필요 (sec-fetch-site 헤더는 누구나 꾸밀 수 있어서)실주문 불가
VITE_GA_IDGA4 측정이벤트 전송 안 함
VITE_NOTIFY_URL주문 출시 알림 이메일을 쌓는 구글 시트(Apps Script 웹앱, docs/launch-notify)신청 수만 GA에 기록
GA_API_SECRET서버가 외부 API·MCP 호출을 GA4 api_call·api_data_call로 보냄 (Measurement Protocol). 호출자 해시(caller_id)를 만들 때 섞는 비밀 값으로도 씀서버 로그에만 남음

GA4 설정

가설별 실험 계획·결과 기록과 GA 이벤트·파라미터 전체 목록(어느 화면에서 언제 보내는지)은 docs/experiments/에 정리함

  1. Google Analytics → 관리 → 속성 만들기 → 웹 스트림 추가 → 측정 ID(G-…) 복사
  2. Vercel 환경변수 VITE_GA_ID에 넣고 재배포
  3. 관리 → 맞춤 정의에 등록
    • 이벤트 범위: kst_window, asset, from, market, tab, mode, side, lev_bucket, api_path, api_status, caller, caller_id, is_bot, ua_head, mcp_call, mcp_client
    • 측정항목: leverage
    • 사용자 범위: first_source, first_content
    • 주요 이벤트(전환): launch_notify_signup, order_submit, model_explain_open
  4. 탐색 → 코호트 탐색: 코호트 = first_source, 재방문 조건 = prediction_view 중 kst_window = preopen (4장 확장 타겟 지표와 같은 정의)
  5. 커뮤니티 글 링크 예시: https://bamsai.kr/?utm_source=dc_stock&utm_medium=community&utm_campaign=bamsai_test1&utm_content=smsn_thu_A

사용한 외부 API

출처쓰는 곳
토스증권 Open API현재가, 호가, 1분봉·일봉, 지수(코스피·코스닥), 장 운영 캘린더, 투자자별 매매, 실시간 체결·호가(웹소켓), 주문·취소, 보유 주식, 매수 가능 금액, 계좌
하이퍼리퀴드 (trade.xyz HIP-3)perp 시세·펀딩·미결제약정, 나스닥 100·S&P 500(국내 정규장 밖 상단 지표), 캔들, 호가, 펀딩 이력, 실시간 WS, 주문·취소·레버리지·에이전트 승인
업비트원/USDC 호가·캔들, 실시간 WS

구조

server/   Hono API (Fly.io, 고정 IP). sources=외부 API, services=차익·예측·주문
shared/   서버·브라우저 공통 (종목, 장 시간, HL 주문 서명)
src/      React 웹앱. pages=홈·종목 상세·소개(계산 방법)·API, pro=차트·호가·주문
docs/     experiments=가설별 실험 계획·결과·GA 이벤트 연결

테스트와 장애 대응

구분내용
AI 브라우저 QA화면을 바꿀 때마다 AI(Claude Code)가 Chrome을 직접 띄워 누르고, 스크린샷·콘솔 에러·네트워크 요청으로 확인한 뒤 PR을 올림
단위 테스트 (vitest, 19개 파일·170개)오라클 급변 감지(7/28 재현 포함), 시세차익(호가 체결가·부분 체결·주문 간 시차), 장 시간·휴장일, 미국장 단계(서머타임), IP당 호출 제한, 토스 그룹별 한도, 헬스체크, 토큰 없는 실주문·계좌 조회 거절(화면 요청으로 꾸며도), API 호출자 구분·데이터 호출 판별
E2E (Playwright, 11개, 약 9초)녹화한 API 응답, 테스트가 직접 보내는 시세 웹소켓, 고정한 시계로 시장 상황과 무관하게 같은 결과.
① 홈 카드·시세차익 줄
② 금 19:59 → 20:00 넘기면 장중 라벨이 '국내 종가'·'지금 글로벌 가격'으로 바뀜
③ 차트 드래그·휠 확대·1시간봉·시장 끄기/켜기·RSI 패널
④ 1분봉 다음 분 tick → 새 봉이 생기고 오른쪽 여백을 유지한 채 밀림, 늦게 온 서버 분봉이 새 봉을 지우지 않음
⑤ 매수 버튼 → 출시 알림 신청, 실제 주문 요청 0건
⑥ 소개 페이지 계산 설명
⑦ API 페이지 MCP 설정 복사
⑧ 국내장이 닫히면 주문 박스 시세차익 탭에 수익 숫자 대신 안내
⑨ 서버 재시작 중 API가 503을 돌려줘도 오류 문구 없이 기다렸다가 화면이 채워짐
⑩ 아이폰 크기(393×852)에서 가로 넘침 없음, 헤더 검색·하단 바가 화면 안에 들어옴
⑪ 아이폰 크기 종목 상세: 지표 줄이 멈춰 있고, 지표 메뉴가 잘리지 않으며, 차트 크게 보기가 화면 전체를 채움
매 테스트마다 콘솔 에러 0건 확인
CI (GitHub Actions)PR·push마다 타입 검사 → 단위 테스트 → 빌드 → E2E
커버리지전체 소스(src·server·shared) 기준 문장 약 12%. 돈이 걸린 계산(시세차익)과 시간 처리(장 시간·미국장 단계) 위주로 단위 테스트를 두고, 화면 흐름은 E2E로 확인. 다음: 예측·채점(predict.ts) 단위 테스트
헬스체크GET /api/health: 하이퍼리퀴드·업비트·토스 마지막 성공 시각. 하이퍼리퀴드나 업비트가 5분 넘게 응답이 없으면 503. Fly 점검은 서버가 1대라 프로세스 생존(?live=1)만 봄
장애 대응 런북docs/ops/runbook.md: 증상 → 확인 → 조치 (화면 로딩 멈춤, 국내 시세 비어 있음, 오라클 급변, 환율 없음, 서버 다운, API 남용)

오픈 후 고친 것

오픈 후 실제로 돌려 보며 찾은 문제와 고친 방법. 숫자는 Fly 서버 로그와 직접 측정 기준.

날짜문제원인고친 방법결과
11/6iPhone 등 일부 브라우저에서 화면이 계속 로딩Vercel CDN이 zstd로 압축된 API 응답을 캐시해서, zstd를 못 읽는 브라우저에도 그대로 줌API 서버가 직접 gzip으로 압축iPhone Safari 프로필 15회 요청 모두 정상
11/6봇·과도한 호출에 비용 위험호출 제한 없음IP당 1분 300회(REST·MCP 합산), 넘으면 429화면 하나가 1분 약 55회라 여러 탭도 여유
11/6국내 시세가 가끔 비거나 502토스 API는 그룹별 초당 한도(캔들 20, 지수 캔들 5 등)가 있는데, 화면 하나가 여러 API를 동시에 부르고 접속자가 겹치면 넘침토스 호출을 API 그룹별 대기열로 공개 한도보다 낮게 보냄(지수 캔들 4/초, 캔들 15/초 …). 한도 초과 시 1·2·3초 간격 재시도. 1분마다 그룹별 호출·초과 수를 로그로 남김1~2초마다 나던 한도 초과 → 분당 0~2회. 재시작 직후 1분에 캔들 423회도 초과 0
11/6접속자가 늘면 토스 호출도 늘까분봉을 몇 초마다 며칠치 통째로 다시 받음(지수 미니차트만 1분 약 50회)서버 캐시는 모든 접속자가 공유. 과거 봉은 10분(일봉 1시간) 캐시하고 최신 200개만 10초마다 받아 합침. 같은 요청은 한 번만토스 호출은 접속자 수가 아니라 종목 × 봉 간격 수에 비례
11/6'개장 직전 글로벌 가격'이 낮 동안 바뀜8시 달러 가격에 '지금' 환율을 곱함그 시각의 업비트 USDC 시간봉 환율로 환산삼성 8시 가격 181,791 → 182,326원(8시 환율 1,364원)으로 고정, 백테스트 기록과 일치
11/6차트 새 봉이 안 밀리고 가격표에 가려짐, 직전 봉 깜빡임시작 위치가 마지막 봉을 오른쪽 끝에 붙임 / 실시간 봉이 미래 빈칸을 채움 / 늦게 오는 서버 분봉이 실시간 봉을 덮어씀오른쪽 여백 화면 폭 12%(80~160px), 새 봉마다 같은 간격으로 밀기, 실시간 봉을 보관해 서버 데이터에 이어 붙이기1분봉 3분 관찰: 여백 유지, 봉 사라짐 없음
11/6MCP에 SK하이닉스 ADR을 넣으면 '+48%' 같은 엉터리 값REST는 막았지만 MCP는 종목 검증이 없었음REST와 같은 규칙으로 국내 주식만 받음이유와 함께 오류 응답
11/6토스 토큰 발급 429 때 API 서버가 종료캔들 두 요청 중 하나를 기다리는 동안 다른 쪽 실패가 처리되지 않은 오류가 됨두 요청을 함께 기다리도록 수정실패해도 오류 응답만 내고 서버는 유지
11/6화면이 서버보다 먼저 배포되면 시세차익이 '+NaN원'새 응답 필드가 없을 때 대비가 없었음 (E2E가 발견)이전 필드로 대신 표시E2E 통과
11/6API·MCP를 누가 얼마나 쓰는지 모름 (H5)서버 로그에만 잠깐 남음외부 호출을 GA4 api_call 이벤트로 전송(경로·응답 코드·호출 종류·MCP 도구, IP 없음)GA 실시간에서 확인
11/7서버 배포·재시작 중 화면에 오류 문구('요청 실패', JSON 오류)가 뜸프록시가 502·503이나 HTML 오류 페이지를 돌려주면 그 오류를 그대로 보여줌5xx·429·네트워크 오류·JSON이 아닌 응답은 일시적 오류로 보고 기존 화면(또는 스켈레톤)을 유지한 채 1·2·4…10초 간격으로 다시 시도. 400 같은 요청 오류만 오류로 표시사용자는 열리는 데 시간이 조금 더 걸리는 것으로만 느낌. E2E로 확인
11/7실주문을 켠 서버라면 토큰 없이 주문이 들어올 수 있음'같은 사이트 화면에서 온 요청'이면 토큰을 건너뛰었는데, 그 판단 헤더(sec-fetch-site)는 누구나 꾸밀 수 있음 (운영 서버는 실주문이 꺼져 있어 해당 없었음)실주문·취소·계좌 조회는 항상 API_TOKEN 필요꾸민 요청 403 테스트 통과
11/7주말에도 '내일 아침 가격', 국내장이 닫혔는데 주문 박스에 시세차익 수익 표시개장일·장 상태를 문구와 주문 박스가 따로 보지 않음개장일(오늘·내일·월요일)로 표시, 장이 닫히면 주문 박스도 '국장 중에만 가능' 안내E2E로 확인
11/7API·MCP 사용자를 사람 수로 셀 수 없음 (H5)User-Agent로만 구분해 같은 도구를 쓰는 사람이 한 명으로 묶이고, 연결 확인 수백 건과 실제 조회, 우리 확인 호출이 섞임IP+User-Agent 해시(caller_id)로 호출자 구분, 데이터 조회만 api_data_call로 따로 기록, x-bamsai-internal 헤더가 붙은 우리 확인 호출 제외날짜별 신규·재사용자 집계 가능
11/8아이폰 크롬에서 종목 상세 지표 줄(하이퍼리퀴드 환산·종가 대비 아래)이 계속 깜빡이고, 상단 검색창·하단 고정 바가 깨짐줄 맨 앞 그룹의 구분선을 빼면 폭이 줄어 윗줄로 올라가고, 그러면 다시 넓어져 내려가는 반복을 ResizeObserver가 계속 다시 실행함(화면 내용 변경 없이 5초에 클래스 변경 3,588번). 하단 바는 좁은 화면에서 넘친 부분을 숨김모든 그룹 폭을 같게 두고 줄 맨 앞 구분선은 clip-path로 잘라 숨김(판정 JS 제거), 좁은 화면에서 검색은 아이콘으로·하단 바는 홈 인디케이터 여백과 가로 스크롤아이폰 폭에서 5초간 클래스 변경 0번·레이아웃 고정, E2E 통과
11/8아이폰에서 차트 '지표' 버튼을 누르면 툴바 안에 얇은 박스만 생기고, '크게 보기'를 눌러도 화면 전체로 안 커짐폰에서는 차트 툴바가 가로 스크롤이라 그 아래로 열리는 메뉴가 툴바 높이(28px)로 잘림 / 폰용 차트 높이(520px) 규칙이 크게 보기 규칙을 덮어써서 위쪽 520px만 고정됨폰에서는 지표 메뉴를 화면 위 시트로 열고 바깥을 누르면 닫힘, 크게 보기는 화면 전체 높이(노치·홈 인디케이터 여백 포함)402px 폭에서 메뉴 전체 표시, 크게 보기 874/874px. 아이폰 크기 E2E 추가
11/8차트 '하이퍼리퀴드 지금' 상자가 최근 하루 반 구간 선과 오른쪽 가격 칩을 덮어, 주말 움직임이 안 보이고 '차트가 안 움직인다'로 보임. 뉴스 말풍선도 그 상자 아래로 깔림상자를 지금 가격 높이 중앙, 축 바로 옆에 고정했고, 아래 설명 글은 한 줄로 약 380px 뻗음. 말풍선과 상자의 겹침 순서가 같았음상자가 덮는 구간의 최근 선과 가격 칩을 보고 덜 겹치는 쪽(위/아래)에 배치, 설명 글은 상자 폭 안에서 줄바꿈, 말풍선을 상자 위로1440px·402px 1시간 봉에서 주말 선·칩이 보임
11/8배포 직후 열려 있던 페이지에서 종목 화면으로 가면 '이 영역을 불러오지 못했어요. 새로고침해 주세요.'배포되면 화면 파일 이름이 바뀌는데, Vercel이 없는 파일에도 HTML(200)을 돌려줘 화면 파일 로딩이 깨졌고 페이지 오류 경계가 문구를 띄움. API 재시도는 이 경우를 다루지 않았음없는 /assets 파일은 404, 화면 파일 오류면 자동 새로고침(30초에 한 번까지), 그 외 화면 오류도 문구 대신 스켈레톤을 두고 1·2·4…10초 간격으로 다시 그림없는 화면 파일 요청 404 확인, E2E 통과
11/8오라클에 얇은 체결이 들어가 perp가 튀면 밤사이 가격·예상이 그대로 따라 튐 (2026-07-28 SK하이닉스 −17.9%)순간 중간값만 썼고 오라클·체결 수·시장 전체 방향을 보지 않음오라클 차이 3%·1분 5%(체결 3건 이하 2%)·EWY/코스피200 대비 4%p 기준으로 이상 구간 판단, 그동안 최근 30분 중간값을 쓰고 '가격 불안정' 표시. 시세차익은 숫자 그대로 청산 위험 경고07-28 재현 테스트에서 표시·이전 가격 유지, 최근 3.6일 실제 1분봉에선 오탐 0건

한계 메모

  • 국내 시세 이용 조건: 토스증권 오픈 API 약관(제3조 ③)은 시세를 "개인투자자 본인의 매매 목적에 한하여" 쓰고 제3자 제공·배포·상업적 활용을 하지 않도록 정함. 공개 사이트로 국내 시세를 보여주는 이 프로토타입은 이 조건을 넘을 수 있음. 실제로 출시한다면 증권사가 이미 계약한 정식 시세(코스콤 등 시세 제공업체)를 써야 함. 무료 공공 출처(KRX Open API, 공공데이터포털 금융위 주식시세)는 일별·T+1 데이터라 저녁 8시 넥스트레이드 종가와 아침 8:00~8:10 분봉을 대신할 수 없음
  • 하이퍼리퀴드 한국 주식 perp와 오라클: 2026년 2월 상장 후 거래가 성장세(SK하이닉스 perp 월 거래대금 3월 1.2억 달러 → 10월 70억 달러, 시장 상황에 따라 월별 변동. 11/6 기준 trade.xyz 주식 perp 전체 24시간 거래대금 약 96억 달러). 다만 perp 가격은 오라클(기초 시장이 열려 있을 땐 외부 체결가, 닫혀 있을 땐 자체 계산 가격)에 묶여 있음. 2026-07-28 08:00 넥스트레이드 프리마켓에서 SK하이닉스 1주가 하한가(127만 2천 원, −29.99%)에 체결되자 이 가격이 오라클에 들어가 perp가 17.9% 급락했고, 약 5,700만 달러의 롱이 청산됨(보도 기준). 거래가 얇은 시점의 체결 하나로 청산을 일으키고 반대편에서 이익을 내는 것이 구조적으로 가능하다는 뜻(국내에서는 시세조종에 해당할 수 있음). 밤사이의 비교 시점(08:00)과 같은 시각이라, 비교 가격은 08:00 직전(07:59) 가격을 씀. 이후 급변 구간을 '가격 불안정'으로 표시하고 최근 30분 중간값으로 보정(5. 해결 방법 '오라클 이상 구간 방어'). 다만 지난 개장 기록 채점은 1시간봉 07:59 종가 그대로라(1분봉은 최근 약 3.5일만 남음) 07:00대에 급변이 있던 날은 걸러지지 않음. 이상 구간 판단 자체의 한계: 최근 30분만 보므로 튄 가격이 30분 넘게 유지되면 정상 가격으로 받아들이고(15분 넘게 이어지면 중간값도 따라감), 기준값(오라클 차이 3%·1분 5%·체결 3건 이하 2%·지수 대비 4%p)은 7/28 사례와 최근 1분봉에 맞춰 정한 값이라 다른 형태의 이상은 놓칠 수 있음
  • 토스증권 API는 그룹별 초당 한도(캔들 20, 현재가 15, 지수 캔들 5 등)가 있어 서버가 그룹마다 한도 아래로 줄 세움. 몰리면 국내 시세 갱신이 잠깐 늦어질 수 있음
  • 시세차익의 호가 잔량은 받아 오는 호가 단계까지만 반영(보이지 않는 잔량은 모름). 주문 간 시차 비용은 변동성 기반 근사값
  • 토스증권 API는 허용 IP에서만 호출 가능. 서버 IP가 고정이어야 함
  • 토스증권 토큰은 새로 발급하면 이전 토큰이 바로 무효 → 서버는 한 대(한 프로세스)로 운영
  • 토스증권은 동시호가 예상체결가를 주지 않아 개장 직전 예상가는 perp 기준만 표시
  • 서버 메모리 캐시라 인스턴스가 바뀌면 백테스트를 다시 계산함 (첫 요청 수 초)
  • 하이퍼리퀴드 API는 간격별로 최근 캔들 5,000개만 보관 → 08:00 가격이 필요한 1시간봉은 약 7개월치. 그래서 채점 기간이 2026-04-13부터이고, 서버가 매일 쌓으면 길어짐
  • 넥스트레이드 08:00 직후는 거래가 적어 10분 평균도 가끔 튈 수 있음. 현대차처럼 거래가 적은 종목은 영향이 더 큼
  • 투자 권유가 아닌 참고 정보. 해외 perp는 국내 투자자 보호 대상이 아님

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。