Add Ticker24h support: hourly market snapshots with USD-normalized volume filtering

This commit is contained in:
2026-04-26 18:39:52 -04:00
parent 85fcbe1330
commit 0178b5d29d
45 changed files with 1995 additions and 170 deletions

View File

@@ -1472,6 +1472,7 @@ class UserContainer:
self.data_api: Optional[DataAPIImpl] = None
self.event_bridge: Optional[StrategyEventBridge] = None
self.running = False
self._uvicorn_server: Optional["uvicorn.Server"] = None
async def start(self) -> None:
"""Start all subsystems"""
@@ -1642,6 +1643,7 @@ class UserContainer:
access_log=True,
)
server = uvicorn.Server(config)
self._uvicorn_server = server
await server.serve()
else:
raise ValueError(f"Unknown MCP transport: {self.config.mcp_transport}")
@@ -1670,9 +1672,11 @@ async def main():
loop = asyncio.get_event_loop()
def handle_signal(sig):
logging.info(f"Received signal {sig}, shutting down...")
asyncio.create_task(container.stop())
loop.stop()
logging.info(f"Received signal {sig}, initiating graceful shutdown...")
if container._uvicorn_server is not None:
container._uvicorn_server.should_exit = True
else:
loop.stop()
for sig in (signal.SIGTERM, signal.SIGINT):
loop.add_signal_handler(sig, lambda s=sig: handle_signal(s))