Genesis-Core är en Python 3.11+ kodbas för deterministisk backtest/optimering och en FastAPI-tjänst runt en trading-strategi.
Viktiga principer:
- Paper / TEST-symboler: paper-orderflöden är hårt begränsade till whitelistade TEST-spotpar.
- Reproducerbarhet: samma config + samma data ska ge samma resultat (stabiliseringsfokus).
- SSOT config: runtime-konfig styrs via
config/runtime.jsonoch config-API.
python -m venv .venv
. .\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"Starta API (lokalt):
uvicorn core.server:app --reload --app-dir srcVerifiera tooling & tester:
pre-commit run --all-files
python -m pytest- Lägg aldrig
.envi git. - Utgå från
.env.exampleför lokala nycklar/inställningar. - Säkerhet: API:t ska inte returnera råa exception-meddelanden till klienter; felsök via loggar (och
error_idnär det finns).
Repo:t innehåller en MCP-server (Model Context Protocol) för integration med VS Code / Copilot och andra assistenter.
python -m pip install -e ".[mcp]"
python -m mcp_server.serverSe:
mcp_server/README.md(operativ guide)docs/mcp_server_guide.md(projekt-specifik guide)
Genesis-Core har två prestandaväxlar som också påverkar exekveringsvägen i backtestmotorn:
GENESIS_FAST_WINDOW=1(zero-copy windows)GENESIS_PRECOMPUTE_FEATURES=1(precompute + on-disk cache)
Policy (2025-12): 1/1 är canonical för alla "quality decisions" (Optuna, Validate, champion-jämförelser, rapportering).
- Standardflöden kommer därför att köra 1/1 även om ditt shell råkat ha gamla env-flaggor.
- För debug/felsökning kan du köra 0/0, men det är debug-only och ska inte jämföras mot Optuna/Validate.
Se docs/features/FEATURE_COMPUTATION_MODES.md för detaljer, inkl. GENESIS_MODE_EXPLICIT.
- Runtime config lagras i
config/runtime.json(SSOT). Filen ignoreras av git;config/runtime.seed.jsonanvänds som seed. - API:
GET /config/runtime→{ cfg, version, hash }POST /config/runtime/validate→{ valid, errors, cfg? }POST /config/runtime/propose(kräver Bearer) →{ cfg, version, hash }
- Bearer‑auth: sätt env
BEARER_TOKENi backend. SkickaAuthorization: Bearer <token>i UI/klient. - Audit: ändringar loggas i
logs/config_audit.jsonl(rotation vid ~5MB). Innehålleractor,paths,hash_before/after.
Genesis-Core använder en enkel governance-modell där "skills" och "compacts" är versionerade i repo:t och används som SSOT för agent-/processregler.
- Registry-data ligger under
registry/.registry/skills/*.jsonochregistry/compacts/*.json(versionerade objekt)registry/manifests/dev.jsonochregistry/manifests/stable.json(vilka versioner som är aktiva)registry/schemas/*.schema.json(JSON Schema)
- CI gate:
python scripts/validate_registry.pyvaliderar schema + korsreferenser. - Break-glass / audit: om
registry/manifests/stable.jsonändras i en PR kräver CI även attregistry/audit/break_glass.jsonluppdateras med en audit-entry som refererar committen som ändraderegistry/manifests/stable.json(viacommit_sha). - Review-disciplin:
.github/CODEOWNERSkan kräva review för ändringar underregistry/.
- UI laddar alltid
/config/runtimevid start och visarconfig_version/hashi status. - Knappen “Föreslå ändring” POST:ar
/config/runtime/proposeoch uppdaterar status. - Sätt bearer‑token i UI‑fältet (sparas i
localStorage.ui_bearer).
SymbolMode:realistic|synthetic(envSYMBOL_MODE, CI sättersynthetic).- Strategier använder mänskliga symboler (t.ex.
BTCUSD); I/O mappar:- Realistic:
BTCUSD→tBTCUSD - Synthetic:
BTCUSD→tTESTBTC:TESTUSD
- Realistic:
- Explicit TEST‑symboler (
tTEST...:TESTUSD) bypassas oförändrade.