feat: klines-based simulation instead of polling

- Fetch historical klines once from AVE API (10 CU per request)
- Process each candle as a time step
- Limit to 500 candles max per simulation
- No continuous polling - processes all data in seconds
- Frontend now selects kline interval (1m, 5m, 15m, 1h)
- Much more efficient API usage
This commit is contained in:
shokollm
2026-04-12 01:34:20 +00:00
parent d4400f5dcd
commit f425ae08d7
5 changed files with 135 additions and 66 deletions

View File

@@ -145,7 +145,7 @@ async def start_simulation(
"bot_id": bot_id,
"token": config.token,
"chain": config.chain,
"check_interval": config.check_interval,
"kline_interval": config.kline_interval,
"auto_execute": False, # Always paper trade
"strategy_config": bot.strategy_config,
"ave_api_key": settings.AVE_API_KEY,
@@ -160,7 +160,7 @@ async def start_simulation(
config={
"token": config.token,
"chain": config.chain,
"check_interval": config.check_interval,
"kline_interval": config.kline_interval,
},
signals=[],
)