Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Mecha-cockpit paper trading HUD: stocks and crypto on Alpaca, with live positions, combat log and analytics.
FinanceTypeScript · CSSGitHub @nznofficialOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A rule-based trading bot that paper-trades US stocks and crypto on Alpaca's paper account using real market data, with a public read-only dashboard for history, positions, and analytics.
POST /api/tick runs one cycle. cron-job.org calls it every 15 minutes, 24/7 (GitHub Actions is a backup): crypto trades every tick, stocks only during market hours. The Sorties page shows which scheduler started each run.paper-api.alpaca.markets.lib/engine.ts)bot_runs row. Skip if another run is still in flight.lib/risk.ts).
{strategy}.{side}.{symbol}.{barTime}. That makes retries idempotent and attributes every fill to a strategy.BTCUSD in positions and fills but BTC/USD in orders; everything is stored as BTC/USD.lib/strategies/)| Strategy | Symbols | Entry | Exit |
|---|---|---|---|
rsi_revert | SPY QQQ AAPL MSFT | RSI(14) < 30 | RSI > 55, or the 5% stop |
sma_cross | NVDA AMZN META TSLA AMD | SMA20 crosses above SMA50 (within 3 bars) | SMA20 < SMA50, or the 5% stop |
sma_cross | BTC/USD ETH/USD | same | same |
rsi_revert | SOL/USD | same | same |
Universe, parameters, and risk limits live in lib/config.ts. To add a strategy, implement the Strategy interface and register it in lib/strategies/index.ts.
Risk limits
Crypto trades pay Alpaca's trading fee. Fees are synced from the account's CFEE activities and shown next to realized P&L; round-trip P&L itself is before fees.
npm i -g vercel && vercel login
vercel link
vercel integration add neon # provisions DATABASE_URL
vercel env add ALPACA_KEY_ID
vercel env add ALPACA_SECRET_KEY
vercel env add CRON_SECRET # openssl rand -hex 32
vercel env add ADMIN_SECRET # openssl rand -hex 32
vercel env pull .env.local
npm run db:migrate
vercel git connect. Every push to main then deploys to production. Use vercel deploy --prod for a one-off manual deploy.https://<your-app>/api/tick every 15 minutes with header Authorization: Bearer <CRON_SECRET>. Runs it starts show as cron-job.org in Sorties.TICK_URL (https://<your-app>/api/tick) and CRON_SECRET. The 24/7 schedule uses about 2,900 Actions minutes a month: free on a public repo, over the 2,000-minute free tier on a private one. A weekly keep-alive job re-enables the workflow so GitHub's 60-day inactivity shutoff never triggers.npm run dev
# Dry run: evaluates strategies even when the market is closed, never places orders
curl -X POST -H "Authorization: Bearer $CRON_SECRET" "localhost:3000/api/tick?dryRun=1"
npm test
The Runs page has an admin panel (needs ADMIN_SECRET) with: dry run, run a tick now, pause/resume, and liquidate all.