Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
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
FinancePython · TypeScriptGitHub @Std07-1Latest connection check failedOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Real-time Smart Money Concepts (SMC) trading platform: FXCM/Binance → UnifiedDataStore → live WebSocket charts, paired with an autonomous Claude trading agent.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.Read the full 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