RH // VELOCITY
SIGNAL ENGINE v2.0

Prediction markets move faster than equities.

We capture the gap.

When a Kalshi or Polymarket contract reprices sharply, correlated equities take minutes to catch up. This engine detects velocity spikes — Δp/Δt exceeding threshold — and submits positions via Robinhood's agentic trading MCP before the gap closes.

KALSHI // LIVE
CONNECTING TO KALSHI API...
SIGNAL LOG
[14:23:47] KXFED-27APR-T4.25  vel=0.23  →  XLF +$4.20
[14:18:31] KXFED-27JUN-T4.50  vel=0.31  →  TLT +$2.85
[14:09:12] KXFED-27APR-T4.00  vel=0.19  →  GLD +$3.60
EXECUTION MODE: MOCK  //  149 TESTS PASSING
01 // THE SIGNAL

Velocity, not probability.

Equity markets lag.

Prediction markets are purpose-built for rapid repricing. When new information arrives, contract probabilities update in seconds. Equity prices take minutes.

Δp/Δt > 0.15

A probability velocity exceeding 0.15 units per minute, confirmed by a volume spike, indicates genuine information arrival — not noise. Two conditions must hold simultaneously.

A 2-hour window.

Positions are held until the equity market reprices or 2 hours elapse — whichever comes first. The thesis is information diffusion speed, not prediction.

02 // ARCHITECTURE

How it works.

Kalshi .prismPolymarket .prismCustom .prismPrism RegistryVelocityTrackerDeduplicatorSizerMCPClientExitManager
149
tests passing
< 1s
WebSocket latency
0.15
default velocity threshold
2h
max hold time
05 // PRISM

Bring your own signal.

Any data source. One interface.

.prism is the connector format for the Velocity Signal Engine. Drop a .prism package into the connectors/ directory and the engine loads it automatically. Prediction markets, alternative data, news sentiment, order flow — if it produces a time series, it can drive a signal.

kalshi_fedBUILT-INWS
Kalshi Fed Markets
Streams KXFED contract prices via WebSocket. Five contracts tracking Fed funds rate targets through April 2027.
5 contracts · Auth required · v1.0.0
polymarket_macroBUILT-INWS
Polymarket Macro
Streams macro prediction market prices from Polymarket's CLOB via WebSocket. Covers Fed, inflation, and economic event contracts.
3 contracts · No auth · v1.0.0
metaculus_macroBUILT-INREST
Metaculus Macro Questions
Polls Metaculus for expert-aggregated probability on macro questions. Low frequency, high conviction — velocity spikes here are rare but informative.
3 contracts · No auth · v1.0.0
.prism
Your Connector
Any data source. One interface. Drop a .prism package into connectors/ and the engine loads it automatically.
Read the spec →
class MyConnector(PrismConnector):
metadata = PrismMetadata(
name="My Data Source",
slug="my_source",
source_type="prediction_market",
transport="rest",
auth_fields=["MY_API_KEY"],
contract_slugs=["KXFED"],
)
 
async def start(self, tracker, mapper, handle_signal):
while True:
price = await self.fetch_latest_price()
tracker.update(self.metadata.slug, PricePoint(
timestamp=datetime.now(UTC),
price=price, # must be 0.0 – 1.0
volume=1,
))
await asyncio.sleep(self.metadata.poll_interval_seconds)
04 // STACK
Signal Layer
Kalshi REST + WebSocket
Primary signal source. RSA-PSS authenticated polling with WebSocket fallback and exponential backoff.
Polymarket CLOB
Secondary signal feed via py-clob-client. Contributes to shared VelocityTracker.
VelocityTracker
Custom Δp/Δt engine with configurable rolling windows (default: 5m, 15m). Threshold-filtered.
SignalDeduplicator
Per-slug and per-sector deduplication. Sector cap enforcement prevents correlated flood.
ConfidenceDecay
Price centrality adjustment. Discounts signals near historical extremes where edge is thinner.
Execution Layer
Robinhood Agentic MCP
Live execution endpoint at agent.robinhood.com. Requires EXECUTION_MODE=live and private beta access.
MockMCPClient
Paper trading mode. Orders logged to logs/mock_orders.jsonl with full metadata. Default mode.
ExposureManager
Macro factor cap enforcement. 15% per-factor, 40% gross total. Checked before every order.
ExitManager
Time-decay primary exits (2h default). Reverse velocity and adverse move (3%) secondary exits.
rich dashboard
Terminal UI refreshing every 5s. Reads orders.jsonl, tracks open positions, shows unrealized P&L.
06 // STATUS
Signal Engine (Phase 0-1)COMPLETE
Mock Execution + Backtest (Phase 1)COMPLETE
Live MCP Execution (Phase 2)AWAITING ACCESS

Live execution requires Robinhood agentic trading account access, currently in private beta. Set EXECUTION_MODE=live only after receiving access confirmation.