Passa al contenuto principale

capital-manager

Cosa fa

capital-manager calcola il capitale massimo investibile per ogni richiesta di acquisto, prevenendo l'over-allocation e adattando l'esposizione al regime macro corrente.

Ruoli e responsabilità

  • calcola reservedCashPct in funzione di score macro, regime e volatilità (formula lineare + aggiustamenti);
  • interroga ibkr-bridge per cash disponibile e ordini aperti;
  • interroga liquidity-manager per il risk score;
  • gestisce prenotazioni Redis con TTL per prevenire race condition tra segnali concorrenti;
  • garantisce idempotenza delle prenotazioni tramite clientRequestId.

Porta esposta

  • Porta interna servizio: 3010
  • Prefisso API: /allocation

Configurazione compose

capital-manager:
build:
context: .
dockerfile: capital-manager/Dockerfile
ports:
- "3010:3010"
environment:
- DATAHUB_URL=http://datahub:3000
- REDIS_URL=redis://redis:6379
- IBKR_BRIDGE_URL=http://ibkr-bridge:3017
- LIQUIDITY_MANAGER_URL=http://liquidity-manager:3001
- RESERVATION_TTL_SEC=180
- VOL_SCALE=100
- FALLBACK_RESERVED_CASH_PCT=0.60
- MIN_ORDER_NOTIONAL=50
- TZ=${TIMEZONE}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3010/status/health"]
interval: 30s
timeout: 10s
retries: 3

Variabili d'ambiente

Infrastruttura

VariabileDefaultDescrizione
DATAHUB_URLhttp://datahub:3000URL del servizio datahub (alias DBMANAGER_URL ancora accettato).
REDIS_URLURI Redis. Obbligatorio per prenotazioni e bus eventi.
LOG_LEVELinfoLivello di log: trace, debug, info, warning, error.
ENVAmbiente (local, paper, prod). Usato come prefisso canali Redis.
TZTimezone del container.

Formula di allocazione

VariabileDefaultDescrizione
FALLBACK_RESERVED_CASH_PCT0.60Riserva in caso di bassa confidenza macro.
CONFIDENCE_THRESHOLD69Soglia minima di confidenza del liquidity-manager.
SCORE_RESERVED_MAX0.70Riserva massima (score=0).
SCORE_RESERVED_MIN0.20Riserva minima (score=100).
RISK_OFF_ADD_PCT0.10Aggiustamento addizionale in regime RISK_OFF.
VOL_ADD_MAX_PCT0.10Massimo aggiustamento per volatilità.
VOL_SCALE100Divisore normalizzazione volatilità.
MIN_ORDER_NOTIONAL50Importo minimo investibile (USD). Sotto questa soglia → ok: false.

Prenotazioni

VariabileDefaultDescrizione
RESERVATION_TTL_SEC180TTL delle prenotazioni Redis in secondi.

Integrazione ibkr-bridge

VariabileDefaultDescrizione
IBKR_BRIDGE_URLhttp://ibkr-bridge:3017URL ibkr-bridge.
IBKR_ACCOUNT_SUMMARY_PATH/account/summaryPath sommario conto.
IBKR_POSITIONS_PATH/positionsPath posizioni.
IBKR_OPEN_ORDERS_PATH/orders/openPath ordini aperti.
IBKR_ADAPTER_TIMEOUT_MS5000Timeout HTTP verso ibkr-bridge.

Integrazione liquidity-manager

VariabileDefaultDescrizione
LIQUIDITY_MANAGER_URLhttp://liquidity-manager:3001URL liquidity-manager.
LIQUIDITY_SCORE_PATH/risk/scorePath risk score.
LIQUIDITY_ADAPTER_TIMEOUT_MS5000Timeout HTTP verso liquidity-manager.

Pagine dedicate