import { writeFile } from "node:fs/promises"
import { SimpleFunctions } from "@spfunctions/sdk"
const sf = new SimpleFunctions({
baseUrl: "https://simplefunctions.dev",
apiKey: process.env.SF_API_KEY,
})
const watchlist = [
"KXBTCD-26MAY1917-T76499.99",
"KXINXU-26MAY19H1600-T7374.9999",
"KXWTI-26MAY1914-T104.99",
]
const screen = await sf.markets.screenCandles({
venue: "kalshi",
tickers: watchlist,
timeframes: ["1m", "5m", "15m", "1h"],
limit: 300,
minBars: 20,
minAbsReturnPct: 2,
minRangePct: 3,
sort: "score",
concurrency: 4,
continueOnError: true,
maxResults: 10,
})
const enriched = []
for (const signal of screen.signals.slice(0, 5)) {
const market = await sf.markets.get(signal.ticker, {
venue: signal.venue,
depth: true,
nextActions: false,
})
enriched.push({
...signal,
title: market.title,
bestBid: market.bestBid,
bestAsk: market.bestAsk,
spread: market.spread,
liquidityScore: market.liquidityScore,
bidLevels: market.bidLevels?.slice(0, 3),
askLevels: market.askLevels?.slice(0, 3),
})
}
const packet = {
generatedAt: new Date().toISOString(),
routing: {
sdkBaseUrl: "https://simplefunctions.dev",
candles: "Vercel API -> terminal/Fly candle service",
inspect: "Vercel API -> DB/cache/proxy/venue reads",
},
signals: enriched,
warnings: screen.warnings,
}
await writeFile("candle-screen.json", JSON.stringify(packet, null, 2))
console.log(JSON.stringify(packet, null, 2))