Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
금·지수·암호화폐 실시간 스마트 머니 분석, 브로커급 파이프라인으로 실시간 차트 제공, 자동 거래 에이전트 Archi와 연동
Real-time Smart Money Concepts analytics for gold, indices & crypto — a broker-grade pipeline feeding a live WebSocket chart, paired with Archi, an autonomous Claude trading agent that writes its own
금융Python · TypeScriptGitHub @Std07-1최근 접속 확인 실패운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Real-time Smart Money Concepts (SMC) trading platform: FXCM/Binance → UnifiedDataStore → live WebSocket charts, paired with an autonomous Claude trading agent.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Trading Platform v3 (FXCM Connector + UDS + UI)
Real-time Smart Money Concepts (SMC) analytics for gold, indices and crypto — a
broker-grade data pipeline (FXCM / Binance) feeding a live WebSocket chart, with a
read-only HTTP/WS API that any external client — a dashboard, a research notebook, or
an AI agent — can connect to and read.README 전문 보기 ↗Real-time Smart Money Concepts (SMC) analytics for gold, silver, US and European indices and USD/JPY — a data pipeline on FXCM CFD quotes feeding a live WebSocket chart, with a read-only HTTP/WS API that any external client — a dashboard, a research notebook, or an AI agent — can connect to and read.
▶ Live: aione-smc.com
UnifiedDataStore write-center, Final > Preview,
degraded-but-loud (no silent fallbacks). Every non-trivial decision is captured in an
ADR (registry).⚠️ Not financial advice. Analytical / research tool only — SMC labels are technical markers, not signals. Trading carries substantial risk of loss. Full terms: DISCLAIMER.md · LICENSE.
English · Українська
A "data → analytics/SMC → UI → trading interaction" platform built on hard invariants, with the UnifiedDataStore (UDS) as the single write-center.
The platform is client-agnostic: anything that speaks HTTP or WebSocket can read it.
GET /api/v3/* endpoints behind an API key:
bars, SMC snapshot, status. Rate-limited, no write path.full / delta frames the chart renders, for any
same-origin consumer.One such client is an autonomous trading agent kept in its own repository (Std07-1/smc-trader-v3). Its rules, personality and decisions live there; this repository documents only the read-only surface it consumes. Neither side hands trading decisions to the other: the platform never fabricates signals, and no client can steer what the chart shows.
| Layer | What | Where |
|---|---|---|
| A Broker + ingest | FXCM history + tick stream → writer processes (Binance — off) | runtime/ingest/, app/ |
| C UDS | SSOT disk + Redis cache + updates bus | runtime/store/uds.py |
| B UI (ws) | read-only WS real-time renderer, same-origin, port 8000 | ui_v4/ + runtime/ws/ws_server.py |
| TUI | aione-top: interactive TUI monitor for processes/pipeline | aione_top/ |
config.json, one TF allowlist.complete=true always wins; two different final sources for one key are forbidden.warnings[] / meta.degraded[].close_time_ms = open + tf_s*1000); Redis ALL = end-inclusive (close_ms = open + tf_s*1000 - 1). Conversion happens only at the Redis write boundary.# Main venv (Python >=3.11) — platform, UDS, derive, SMC, UI
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
# Broker venv (Python 3.7) — forexconnect SDK (.venv37/)
C:\Python37\python.exe -m venv .venv37
.venv37\Scripts\pip install -r requirements-broker.txt
# UI v4 frontend (Svelte 5 + Vite)
cd ui_v4
npm install
npm run build
cd ..
# Secrets
cp .env.example .env # edit FXCM_USER / FXCM_PASS / FXCM_URL
The platform is 6 independent processes. Each starts separately — so you can restart the UI (ws_server) in 3 seconds without stopping the data pipeline.
| Process | --mode | What it does |
|---|---|---|
| M1 poller | m1_poller | broker_sidecar + m1_ingestion + derive cascade |
| Broker sidecar | broker_sidecar | FXCM M1 fetch + tick relay V2 (.venv37/) |
| Tick preview | tick_preview | ticks → preview bars |
| Binance ingest | binance_ingest_worker | BTCUSDT/ETHUSDT M1 + backfill — off (binance.enabled = false) |
| Binance ticks | binance_tick_publisher | Binance live ticks → Redis — off |
| WS server | ws_server | UI backend, port 8000 |
# Each in its own terminal:
python -m app.main --mode <mode> --stdio pipe
# Or all together (legacy, NOT recommended for dev):
python -m app.main --mode all --stdio pipe
Full cheat-sheet with every command (local + VPS): docs/runbooks/commands.md
Dual-venv (ADR-0016): the supervisor automatically uses
.venv37/for broker_sidecar (M1 fetch + tick relay V2) and.venv/for everything else.tick_publisher_fxcmis permanently stopped (FXCM dual-session conflict). Per-mode PID locks:logs/supervisor_{mode}.pid— allow parallel startup.
python -m tools.run_exit_gates --manifest tools/exit_gates/manifest.json
If gates FAIL → a formal NO-GO until the next PATCH.
pip and npmFull documentation: docs/index.md — single entry point.
| Document | Description |
|---|---|
| docs/index.md | Navigation across all documentation |
| docs/system_current_overview.md | Architecture, processes, diagrams, invariants |
| docs/contracts.md | Contract registry (bar_v1, window_v1, updates_v1, tick_v1) |
| docs/ui_api.md | HTTP API reference (endpoints, guards, TTL) |
| docs/config_reference.md | config.json field reference |
| docs/runbooks/production.md | Production runbook (startup, incidents, recovery) |
| docs/adr/index.md | Registry of all ADRs (canonical archive) |
| docs/adr/0001-unified-data-store.md | ADR: UDS as the single waist |
| docs/adr/0002-derive-chain-from-m1.md | ADR: DeriveChain M1→M3→M5→H4 (Phase 0 complete) |
| docs/adr/0003-cold-start-hardening.md | ADR: Cold start hardening (S1 ✅, S2 ✅, S3-S4 pending) |
┌─────────────────────────────────────────────────────────────┐
│ LAYER 1: INGEST (simple, focused, single-responsibility) │
│ │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ m1_ingestion │ │ binance_ingest │ │
│ │ M1 from FXCM │ │ Binance (off) │ │
│ └──────┬───────┘ └──────┬───────────┘ │
│ │ commit M1 │ commit M1 │
│ ▼ ▼ │
│ ┌──────────────────────────────────┐ │
│ │ UDS (SSOT) │ │
│ └──────────────┬───────────────────┘ │
│ │ updates bus (Redis pub/sub) │
└─────────────────┼───────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ LAYER 2: DERIVE ENGINE (cascade, async, priority) │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ core/derive.py (PURE, no I/O) │ │
│ │ GenericBuffer(tf_s) + aggregate_bars() │ │
│ │ DERIVE_CHAIN = declarative cascade rules │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ runtime/ingest/derive_engine.py (I/O layer) │ │
│ │ │ │
│ │ On new M1 bar → cascade per symbol: │ │
│ │ M1 → M3 (3×M1) │ │
│ │ M1 → M5 (5×M1) │ │
│ │ M5 → M15 (3×M5) │ │
│ │ M15 → M30 (2×M15) │ │
│ │ M30 → H1 (2×M30) │ │
│ │ H1 → H4 (4×H1, session anchor) │ │
│ │ M1 → D1 (live; 17:00 New York; settle) │ │
│ │ │ │
│ │ 8 symbols (metals, indices, USD/JPY) │ │
│ │ Priority: watched symbol → front of queue │ │
│ │ Buffers: GenericBuffer per (symbol, tf_s) │ │
│ └─────────────────────────────────────────────────┘ │
│ │ │
│ ▼ commit derived bars │
│ ┌──────────────────────────────────┐ │
│ │ UDS (SSOT) │ │
│ └──────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────┐
│ LAYER 3: UI v4 (WS real-time, read-only, ZERO domain logic) │
│ WS full/delta/scrollback → UDS via ws_server.py │
│ Svelte 5 + LWC 5 + TypeScript, ~80 files ~22000 LOC │
│ Drawing: 6 tools, PC panel + phone (ADR-0111, 0112) │
│ Port 8000, same-origin, config-gated │
│ Chart parity DONE, audit T1-T10 COMPLETE │
└──────────────────────────────────────────────────────────────┘
In active development since 14 October 2024 — it began as the AiOne-t crypto screener, evolved through SMC analytics engines (AiOne_t v2/v3, smc_v1) and FXCM connectors, and became this real-time platform. Its first external AI client was connected on 30 March 2026 (kept in a separate repository).
Channel (SMC market commentary): @smc_v3 · GitHub: @Std07-1
See LICENSE (MIT).
A list of third-party dependencies and their licenses: THIRD_PARTY_NOTICES.md
FXCM ForexConnect SDK: this repository does NOT contain or distribute the ForexConnect SDK. To use the SDK, each user must accept the FXCM EULA themselves and hold an active FXCM account. Details: docs/compliance/fxcm-sdk-license-review.md