Details
Nobody types a strategy. They answer questions about one.
We built a scripting language so a strategy could be expressed precisely. That was the right call for the engine and the wrong call for the person. Almost nobody who wants to trade a prediction market wants to learn a DSL first, and the ones who do still get it wrong in ways that cost real money.
So the script stops being the input and becomes the output. A template is a strategy that already works, with the hard thinking done. The user opens it, answers a handful of plain questions on screens built for the specific bot being configured, reads the whole thing back in English, watches it run on last week’s data, and only then arms it. The DSL is generated underneath and stays visible for anyone who wants it.
The same strategy, two ways to say it
Left is what we ask a developer to write today. Right is the same four decisions, asked as questions. Both produce the identical bundle.
What the DSL asks for
Precise. Also: eleven ways to be silently wrong.
# maker-tight-election.strat bind cluster US_ELECT_2028_A engine strat.maker_tight { half_spread_bps = 10 quote_size_pusd = 200 cooldown_s = 10 requote_on = [mid, depth] } guard risk.exposureguard { max_pos_market = 500 max_pos_cluster = 5000 } guard risk.drawdownguard { daily_stop_pct = 8 scope = strategy } route exec.smartrouter { objective = balanced max_latency_ms = 200 }
What the builder asks for
Four screens. Every number has its consequence next to it.
Six answers. The other nine fields are derived, and shown read-only.
The user never sees half_spread_bps. They see a price ladder with two handles and a line that reads “you will offer to buy at 41¢ and sell at 43¢.” The 10 is what we write down afterwards.
How authoring works, end to end
Five steps. The user can leave at any point and the draft survives — nothing is executed until step five.
Pick a template
Eight starting points. Each one says in a sentence what it is trying to do, and how many decisions it will ask of you.
you choose: 1 of 8Pick your markets
Search or take the whole cluster. Live count of how much work that implies. Hard cap at 50.
you choose: which marketsTune each bot
One screen per bot, each built for what that bot does. A guard gets a sentence and a bar. An execution bot gets three named choices.
you choose: 4–8 answersRead it back
The whole strategy as one paragraph of English. Every number is a link back to the control that set it.
you choose: confirm or go backDry run, then arm
Replayed against last week. You see what it would have done, and every guard that would have fired, before anything is live.
you choose: arm it, or don’tSee it working
The whole flow is built out and clickable — every screen, every control, for all four bots in Maker-Tight Election.
The eight templates
Each card says what the strategy is trying to do in words a newcomer can hold, then lists exactly what it will ask of them. If a template needs more than eight decisions it is too complicated to ship as a template.
Maker-Tight Election
v1.4.2Sit on both sides of an election market and earn the spread. You are not betting on who wins — you are being the shop that buys and sells while other people make up their minds.
- Which election markets to quote on
- How tight to quote (three presets, or drag the handles)
- The most money you will ever have riding on one market
- When to stop for the day
Sum-to-One Crypto
v1.1.0When a market has several outcomes, their prices should add up to 100%. When they don't, buy the cheap side of the mistake. Purely arithmetic — no opinion needed.
- Which multi-outcome crypto markets to watch
- How far off 100% it has to be before you act
- The most money in play at once
NBA Mean-Rev
v1.2.1After a big scoring run the crowd overreacts and the price swings too far. Take the other side and wait for it to settle back.
- Which games and which markets
- How big a move counts as an overreaction
- How long to wait before giving up on the snap-back
- Position size, daily stop, and whether to trade in the last 2 minutes
Fed Rate Carry
v1.0.3The prediction market's view of the next rate decision drifts away from the futures market's view. Hold the gap and collect as it closes.
- Which meeting dates to trade
- How wide the gap has to be to be worth it
- Which data sources you trust for the futures side
- Position size and daily stop
AI Frontier Scout
v0.9.8Watch the news for the words that move AI markets, and get in before the price catches up. The most opinionated template here — it acts on headlines.
- The words and sources you want watched
- How confident the read has to be before it acts
- How fast to get in, and how long to hold
- Everything about sizing and stopping
Exposure Guard Wrapper
v1.3.0Not a strategy on its own — a lid you put on top of other strategies so a whole cluster can never run away from you at once.
- Which strategies sit under the lid
- The cluster-wide ceiling
Smart Router Arb
v1.1.5The same contract trades in two places at slightly different prices. Buy in the cheap one, sell in the dear one, in the same breath.
- Which venues to route between
- The smallest gap worth crossing for
- How stale a book can be before you refuse to trade on it
- Position size
Compliance Gate Alpha
v1.0.1A wrapper that refuses to let anything through without a valid builderCode and a passing geofence check. Boring on purpose.
- Which jurisdictions you are cleared for
Where templates come from, and who can publish one
A template is a frozen, versioned bundle: an engine binding, a set of guards, a default parameter map, and a decision manifest that says which of those parameters the user is allowed to see and change. The manifest is what the builder renders — the builder has no hard-coded knowledge of any strategy.
Templates are published by us, not by users, and go through the same promotion ladder as bots: written down, demo-wired, shadow, runtime, production. A template can only reference bots that are at the same rung or higher. That is why AI Frontier Scout sits at v0.9.8 — disc.headline_scanner is still frozen.
User-authored templates are a later milestone and will need a review queue. Cloning an existing template into a private draft is the substitute for now.