APEX — Diagrama de flujo vivo

Regla_1612/flow-diagram/v1 · generado 2026-06-22T20:20:45Z · 17 HARD_PROTECTOR · 4 SOVEREIGN_CONFIG · 1 BUG_FIXED · READ-ONLY

Arquitectura E2E (AWS Tokyo — único runtime)

Binance Futures (WSS + REST Ed25519) → gRPC :50051 (UPG-003, dual-stack) → ring buffer LMAX (lock-free) → strategy arena (matemática OMNI) → executor.go (RAM-truth + gates) → SQLite local WAL (SSOT durable; Firestore DISABLED)

Embudo de fire (señal → orden) + frenos

1. Señal (ingestión)
gRPC :50051 (UPG-003) · kline WS producer · ring buffer LMAX · arena eval por tick
2. Evaluación (calidad)
consensus score · Kelly fraccional · anti-noise floor · staleness 50ms
signal-staleness-50msconsensus-divergencekelly-gateapex5m-noise-floorsame-side-cooldown
3. Gates de fire
env=LIVE guard · requireLiveEntryCertified · ownership lock · multi-bot conflict · loss-cap $0.25 · backpressure · fire-lock 60s + rate-cap 30/h
env-live-mutation-guardrequire-live-entry-certifiedemulator-math-certownership-symbol-lockmulti-bot-open-position-conflictloss-cap-025trade-write-backpressurelivePrueba-fire-lock-60srate-cap-30hauto-pause-block-pausedcold-snapshot-warmingcold-emulator-cert-false-fail
4. Pre-auth (Ley #149)
Telegram pre-auth por orden · o sesión armada /go_live_real CONFIRM
telegram-preauth-ley149
5. Orden (Binance)
placeMarketOrder / placeAtomicBatch · POST orden Binance Futures (Tokyo)
6. Arming (soberano)
/go_live_prueba CONFIRM · /go_live_real CONFIRM · roster + runtime category · leverage + capital (X-Sovereign-Key)
lane-arminglive-real-sessionroster-membershipruntime-category-kill-switch

Frenos (clasificación + ubicación)

FrenoEtapaClaseArchivoQué bloquea
signal-staleness-50msEVALHARD_PROTECTORmain.godescarta señal con queueLatency>50ms (anti-slippage)
consensus-divergenceEVALHARD_PROTECTORmain.godropea cuando los timeframes discrepan en dirección
kelly-gateEVALHARD_PROTECTORmain.gothrottle de riesgo: consensus < Kelly fraccional
apex5m-noise-floorEVALHARD_PROTECTORmain.gofiltro anti-ruido del scalper extremo-RR
same-side-cooldownEVALHARD_PROTECTORmain.govelocity throttle mismo símbolo/dirección (ATR-scaled)
env-live-mutation-guardFIRE_GATESHARD_PROTECTORexecutor.gobloquea toda mutación Binance si env != LIVE
require-live-entry-certifiedFIRE_GATESHARD_PROTECTORlive_entry_certification.gocert de categoría + SL/TP nativo + ownership + checklist RAM-native + loss-cap budget
emulator-math-certFIRE_GATESHARD_PROTECTORram_native_active_checklist.gocert COMPUTADO mathScore>=100 obligatorio (cold->WATCH por Regla_1611)
ownership-symbol-lockFIRE_GATESHARD_PROTECTORlive_ownership.go1 slot por bot:símbolo (anti-stacking de capital real)
multi-bot-open-position-conflictFIRE_GATESHARD_PROTECTORlive_prueba_multibot.goevita hedge no gobernado (posición opuesta de otro bot)
loss-cap-025FIRE_GATESHARD_PROTECTORlive_prueba.goloss-cap absoluto $0.25 por trade (DeepV3)
trade-write-backpressureFIRE_GATESHARD_PROTECTORlive_prueba.gogatea entradas si el WAL/ledger no puede persistir (anti-amnesia)
livePrueba-fire-lock-60sFIRE_GATESHARD_PROTECTORlive_prueba.goanti-duplicado: 1 fire en vuelo por bot:símbolo (60s)
rate-cap-30hFIRE_GATESHARD_PROTECTORlive_prueba.gotecho duro 30 fires/h por bot (ventana 60min)
auto-pause-block-pausedFIRE_GATESHARD_PROTECTORauto_pause.gopausa bot estructuralmente perdedor (STREAK>=15, PF<0.30, balance<0)
cold-snapshot-warmingFIRE_GATESHARD_PROTECTORlive_prueba_flow_blockers.gofail-closed mientras el snapshot de safety está frío (nunca relaja)
telegram-preauth-ley149PRE_AUTHHARD_PROTECTORlive_preauth.gotoda entrada LIVE real requiere pre-auth Telegram o sesión armada (Ley #149)
lane-armingARMINGSOVEREIGN_CONFIGlive_prueba.gooperador: armar lane vía /go_live_prueba CONFIRM (s.Enabled/s.Auto)
live-real-sessionARMINGSOVEREIGN_CONFIGlive_real_session.gooperador: sesión LIVE_REAL vía /go_live_real CONFIRM
roster-membershipARMINGSOVEREIGN_CONFIGlive_roster.gooperador: roster + modo del bot (apex_live_roster)
runtime-category-kill-switchARMINGSOVEREIGN_CONFIGruntime_category_control.gooperador: habilitar/deshabilitar categoría de runtime
cold-emulator-cert-false-failFIRE_GATESBUG_FIXEDram_native_active_checklist.go[ARREGLADO Regla_1611] cert en frío ya NO bloquea entrada por error (cold->WATCH)

Mermaid (copiar a cualquier visor)

flowchart TD
  %% Generated from flow_diagram.go SSOT (Regla_1612) — do not hand-edit
  SIGNAL["1. Señal (ingestión)"]
  EVAL["2. Evaluación (calidad)"]
  SIGNAL --> EVAL
  FIRE_GATES["3. Gates de fire"]
  EVAL --> FIRE_GATES
  PRE_AUTH["4. Pre-auth (Ley #149)"]
  FIRE_GATES --> PRE_AUTH
  ORDER["5. Orden (Binance)"]
  PRE_AUTH --> ORDER
  ARMING["6. Arming (soberano)"]
  ORDER --> ARMING
  BRK_signal_staleness_50ms{{"signal-staleness-50ms (HARD_PROTECTOR)"}}:::protector
  EVAL -.freno.-> BRK_signal_staleness_50ms
  BRK_consensus_divergence{{"consensus-divergence (HARD_PROTECTOR)"}}:::protector
  EVAL -.freno.-> BRK_consensus_divergence
  BRK_kelly_gate{{"kelly-gate (HARD_PROTECTOR)"}}:::protector
  EVAL -.freno.-> BRK_kelly_gate
  BRK_apex5m_noise_floor{{"apex5m-noise-floor (HARD_PROTECTOR)"}}:::protector
  EVAL -.freno.-> BRK_apex5m_noise_floor
  BRK_same_side_cooldown{{"same-side-cooldown (HARD_PROTECTOR)"}}:::protector
  EVAL -.freno.-> BRK_same_side_cooldown
  BRK_env_live_mutation_guard{{"env-live-mutation-guard (HARD_PROTECTOR)"}}:::protector
  FIRE_GATES -.freno.-> BRK_env_live_mutation_guard
  BRK_require_live_entry_certified{{"require-live-entry-certified (HARD_PROTECTOR)"}}:::protector
  FIRE_GATES -.freno.-> BRK_require_live_entry_certified
  BRK_emulator_math_cert{{"emulator-math-cert (HARD_PROTECTOR)"}}:::protector
  FIRE_GATES -.freno.-> BRK_emulator_math_cert
  BRK_ownership_symbol_lock{{"ownership-symbol-lock (HARD_PROTECTOR)"}}:::protector
  FIRE_GATES -.freno.-> BRK_ownership_symbol_lock
  BRK_multi_bot_open_position_conflict{{"multi-bot-open-position-conflict (HARD_PROTECTOR)"}}:::protector
  FIRE_GATES -.freno.-> BRK_multi_bot_open_position_conflict
  BRK_loss_cap_025{{"loss-cap-025 (HARD_PROTECTOR)"}}:::protector
  FIRE_GATES -.freno.-> BRK_loss_cap_025
  BRK_trade_write_backpressure{{"trade-write-backpressure (HARD_PROTECTOR)"}}:::protector
  FIRE_GATES -.freno.-> BRK_trade_write_backpressure
  BRK_livePrueba_fire_lock_60s{{"livePrueba-fire-lock-60s (HARD_PROTECTOR)"}}:::protector
  FIRE_GATES -.freno.-> BRK_livePrueba_fire_lock_60s
  BRK_rate_cap_30h{{"rate-cap-30h (HARD_PROTECTOR)"}}:::protector
  FIRE_GATES -.freno.-> BRK_rate_cap_30h
  BRK_auto_pause_block_paused{{"auto-pause-block-paused (HARD_PROTECTOR)"}}:::protector
  FIRE_GATES -.freno.-> BRK_auto_pause_block_paused
  BRK_cold_snapshot_warming{{"cold-snapshot-warming (HARD_PROTECTOR)"}}:::protector
  FIRE_GATES -.freno.-> BRK_cold_snapshot_warming
  BRK_telegram_preauth_ley149{{"telegram-preauth-ley149 (HARD_PROTECTOR)"}}:::protector
  PRE_AUTH -.freno.-> BRK_telegram_preauth_ley149
  BRK_lane_arming{{"lane-arming (SOVEREIGN_CONFIG)"}}:::sovereign
  ARMING -.freno.-> BRK_lane_arming
  BRK_live_real_session{{"live-real-session (SOVEREIGN_CONFIG)"}}:::sovereign
  ARMING -.freno.-> BRK_live_real_session
  BRK_roster_membership{{"roster-membership (SOVEREIGN_CONFIG)"}}:::sovereign
  ARMING -.freno.-> BRK_roster_membership
  BRK_runtime_category_kill_switch{{"runtime-category-kill-switch (SOVEREIGN_CONFIG)"}}:::sovereign
  ARMING -.freno.-> BRK_runtime_category_kill_switch
  BRK_cold_emulator_cert_false_fail{{"cold-emulator-cert-false-fail (BUG_FIXED)"}}:::bugfixed
  FIRE_GATES -.freno.-> BRK_cold_emulator_cert_false_fail
  classDef protector fill:#fcebeb,stroke:#a32d2d,color:#501313;
  classDef sovereign fill:#e6f1fb,stroke:#185fa5,color:#042c53;
  classDef bugfixed fill:#eaf3de,stroke:#3b6d11,color:#173404;