Algorithmic Trading for Prediction Markets
Meridian turns natural language into executable trading strategies on Polymarket. AI generates the code, you control the deployment.
How it works
Write what you want in plain English. "Buy YES tokens when momentum exceeds 3% over 15 minutes with a trailing stop loss."
AI generates a complete Python strategy with proper risk management. Refine it through conversation until it's exactly right.
One click to go live — paper trade first, then real. Monitor P&L, positions, and orders in real time from your dashboard.
Platform
Claude generates production-grade Python strategies from natural language. Iterate through conversation to refine parameters, risk limits, and entry logic.
Test with simulated trading before committing capital. Switch to live execution with one toggle. Same code, same monitoring, real markets.
Live-streaming P&L charts, position tracking, and order history. Metrics update every 10 seconds with auto-reconnecting data feeds.
Every strategy is AST-validated before execution. No filesystem access, no network calls, no dangerous imports. Your code runs in an isolated process.
Exchange private keys are encrypted with AES-256-GCM at rest. Keys are decrypted only at deploy time and passed in-memory — never written to disk.
Built on the polymarket-framework with direct CLOB integration. Full order book access, position management, and Polygon L2 settlement.
Under the hood
Every strategy is a Python class with explicit evaluate, size, and manage methods. No black boxes.
class MomentumScalper(BaseStrategy):
"""Buy on upward momentum, exit on reversal."""
def evaluate(self, market, book) -> Signal | None:
mid = book.mid_price
momentum = (mid - self.history[0]) / self.history[0]
if momentum >= self.threshold:
return Signal(
signal_type=SignalType.BUY,
token_id=book.token_id,
confidence=min(momentum / self.threshold, 1.0)
)
def size(self, signal, portfolio) -> SizeResult:
adjusted = self.base_size * Decimal(str(signal.confidence))
return SizeResult(size=adjusted, price=signal.target_price)
def manage(self, position, book) -> Signal | None:
pnl = (book.mid_price - position.avg_entry_price) / position.avg_entry_price
if pnl >= self.take_profit:
return Signal(signal_type=SignalType.EXIT, token_id=position.token_id)Create an account, describe your strategy, and deploy in minutes. Paper trade for free.