paisamaker · automated 0DTE execution
Python 3.12 · ib_insync · Hetzner systemd · uptime 19h 55m at snapshot, NRestarts=0
Two independent signal sources (a custom GEX evaluator on SPX and an advisor poller on 7 equity tickers) feed a unified dispatcher. The dual-lane design came from one specific observation: IBKR gateway reconnects take ~6 seconds, and a single-loop design would miss the next 30-second cycle. Separate lanes, independent cooldowns, per-(source,ticker) gates. The mode state machine (DATA_ONLY → RECONNECT_WARMUP → FULLY_LIVE, with EXECUTION_DEGRADED on disconnect) blocks new entries during recovery instead of retrying synchronously.