Global Elections & Democracy Trader
This is a template.
The default signal is keyword-based market discovery combined with conviction-based sizing and election_bias() — remix it with the data sources listed below.
The skill handles all the plumbing (market discovery, trade execution, safeguards). Your agent provides the alpha.
Strategy Overview
Global election markets on Polymarket have two layered structural edges that compound cleanly without any external API:
- 1. Electoral system type — Polymarket retail trades all elections as if they were US presidential races. They aren't. FPTP systems amplify poll leads into landslides; proportional representation systems make outright majorities near-impossible. Retail systematically misprices both.
- 2. Regional information lag — Polymarket is US-English-speaking. Wahlrecht.de updates German polling daily. DataFolha updates Brazilian tracking daily. Neither is read by the average Polymarket trader. The lag between a 3-point swing in a non-English aggregator and Polymarket repricing is 12–48 hours.
Signal Logic
Default Signal: Conviction-Based Sizing with Election Bias
- 1. Discover active election and referendum markets on Polymarket
- Compute base conviction from distance to threshold (0% at boundary → 100% at p=0/p=1)
- Apply
election_bias() — combines electoral system type with regional information lag - Size =
max(MIN_TRADE, conviction × bias × MAX_POSITION) — capped at MAXPOSITION - Skip markets with spread > MAXSPREAD or fewer than MIN_DAYS to resolution
Election Bias (built-in, no API required)
Factor 1 — Electoral System Type
| System / question type | Multiplier | The structural reality |
|---|
| FPTP "will X win" (UK, Australia, Canada) | 1.20x | A 5% poll lead → ~80-85% win probability; retail anchors to raw margin, not seat translation |
| Runoff / second round |
1.15x | Post-round-1 head-to-head polling has <3% average error; retail treats it like first round |
| Referendum (binary yes/no) |
1.10x | Clean resolution criteria, well-polled in democracies |
| Snap election / early dissolution |
0.85x | No steady polling baseline — volatility dominates |
| Coalition formation / who governs |
0.80x | Multi-party negotiation dynamics genuinely unpredictable from polls alone |
| No-confidence / leadership challenge |
0.80x | Parliamentary arithmetic + defection timing — hard to model |
| PR system "will X win outright majority" |
0.70x | Near-impossible in Germany, Sweden, Netherlands, Spain, Israel — retail massively overprices |
The PR Majority Rule — In proportional representation systems, a single party winning an outright majority is a statistical anomaly, not a plausible baseline. Germany's Bundestag, Sweden's Riksdag, Israel's Knesset, the Netherlands' Tweede Kamer — single-party majorities happen perhaps once per generation. Yet retail prices these markets at 15–30% because they project the US two-party binary onto a multi-party system. Every such market is a structural NO unless one party is polling above 45%, which essentially never happens in mature PR democracies.
Factor 2 — Regional Information Lag
| Region | Multiplier | Key data sources retail doesn't read |
|---|
| Germany / France / Benelux / Scandinavia | 1.20x | Wahlrecht.de (daily), Politico Europe, Votecompass — 12-36h lag vs Polymarket |
| Brazil / Latin America |
1.15x | DataFolha, Quaest (daily tracking in Portuguese); CIEP, CNC for other countries |
| South / Southeast Asia |
1.15x | India: CSDS, ABP-CVoter; Indonesia: LSI/Indikator; Philippines: Pulse Asia — local exit polls hours ahead of English |
| UK / Australia / Canada |
1.05x | English but underweighted vs US — Electoral Calculus MRP models give structural edge |
| Sub-Saharan Africa / fragile democracies |
0.75x | Low polling quality, coup risk, result disputes — resolution risk is material |
Combined Examples
| Market | System mult | Region mult | Final bias |
|---|
| "Will SPD win majority in Bundestag?" | 0.70x (PR majority) | 1.20x (Germany lag) | 0.84x — skeptical |
| "Will CDU win German general election?" |
1.20x (FPTP-style win) | 1.20x (Germany lag) |
1.35x cap |
| "Who wins Brazil runoff?" | 1.15x (runoff) | 1.15x (Latin America) |
1.32x |
| "Will UK Labour win majority?" | 1.20x (FPTP) | 1.05x (English) |
1.26x |
| "Will snap election be called?" | 0.85x (snap) | 1.0x |
0.85x |
| "Will Nigerian election resolve cleanly?" | 1.0x | 0.75x (Africa) |
0.75x |
Keywords Monitored
CODEBLOCK0
Remix Signal Ideas
- - Wahlrecht.de: German polling aggregator updated daily — compare to Polymarket for German election markets; the lag is often >24h and actionable
- Politico Europe Poll of Polls: Aggregated EU-wide polling — covers France, Germany, Italy, Spain, Poland simultaneously
- DataFolha / Quaest: Brazilian tracking polls in Portuguese — daily updates on presidential and state races
- Electoral Calculus MRP (UK): Constituency-level seat projections — translates raw polling to seat counts, far more predictive than national vote share alone
Safety & Execution Mode
The skill defaults to paper trading (venue="sim"). Real trades only with --live flag.
| Scenario | Mode | Financial risk |
|---|
| INLINECODE5 | Paper (sim) | None |
| Cron / automaton |
Paper (sim) | None |
|
python trader.py --live | Live (polymarket) | Real USDC |
INLINECODE7 and cron: null — nothing runs automatically until you configure it in Simmer UI.
Required Credentials
| Variable | Required | Notes |
|---|
| INLINECODE9 | Yes | Trading authority. Treat as high-value credential. |
Tunables (Risk Parameters)
All declared as tunables in clawhub.json and adjustable from the Simmer UI.
| Variable | Default | Purpose |
|---|
| INLINECODE12 | INLINECODE13 | Max USDC per trade (reached at 100% conviction) |
| INLINECODE14 |
10000 | Min market volume filter (USD) — elections need liquidity |
|
SIMMER_MAX_SPREAD |
0.08 | Max bid-ask spread (8%) |
|
SIMMER_MIN_DAYS |
5 | Min days until resolution |
|
SIMMER_MAX_POSITIONS |
8 | Max concurrent open positions |
|
SIMMER_YES_THRESHOLD |
0.38 | Buy YES if market price ≤ this value |
|
SIMMER_NO_THRESHOLD |
0.62 | Sell NO if market price ≥ this value |
|
SIMMER_MIN_TRADE |
5 | Floor for any trade (min USDC regardless of conviction) |
Dependency
INLINECODE28 by Simmer Markets (SpartanLabsXyz)
- - PyPI: https://pypi.org/project/simmer-sdk/
- GitHub: https://github.com/SpartanLabsXyz/simmer-sdk
技能名称: polymarket-global-elections-trader
详细描述:
全球选举与民主交易者
这是一个模板。
默认信号是基于关键词的市场发现,结合基于信念的头寸管理和 election_bias() —— 你可以使用下面列出的数据源对其进行重新组合。
该技能处理所有底层工作(市场发现、交易执行、安全保障)。你的智能体提供阿尔法收益。
策略概述
Polymarket 上的全球选举市场具有两个层次的结构性优势,它们可以干净地叠加,无需任何外部 API:
- 1. 选举制度类型 —— Polymarket 的散户将所有选举都当作美国总统大选来交易。事实并非如此。简单多数制(FPTP)系统会将民调领先优势放大为压倒性胜利;比例代表制(PR)系统则使绝对多数几乎不可能实现。散户系统性地错误定价了这两种情况。
- 2. 区域信息滞后 —— Polymarket 是英语(美国)环境。Wahlrecht.de 每日更新德国民调。DataFolha 每日更新巴西追踪数据。普通 Polymarket 交易者不会阅读这两者。非英语聚合器中的3个百分点波动与 Polymarket 重新定价之间存在12-48小时的滞后。
信号逻辑
默认信号:基于信念的头寸管理与选举偏差
- 1. 发现 Polymarket 上的活跃选举和公投市场
- 根据与阈值的距离计算基础信念(边界处为0% → p=0/p=1 处为100%)
- 应用 electionbias() —— 结合选举制度类型与区域信息滞后
- 头寸 = max(MINTRADE, 信念 × 偏差 × MAXPOSITION) —— 上限为 MAXPOSITION
- 跳过价差 > MAXSPREAD 或距离结果揭晓日少于 MINDAYS 的市场
选举偏差(内置,无需 API)
因素 1 —— 选举制度类型
| 制度/问题类型 | 乘数 | 结构性现实 |
|---|
| 简单多数制“X会赢”(英国、澳大利亚、加拿大) | 1.20x | 5%的民调领先 → 约80-85%的获胜概率;散户锚定原始差距,而非席位转化 |
| 决选/第二轮投票 |
1.15x | 第一轮后的正面交锋民调平均误差<3%;散户将其视为第一轮 |
| 公投(二元是/否) |
1.10x | 清晰的解决标准,在民主国家有充分的民调 |
| 提前大选/提前解散议会 |
0.85x | 没有稳定的民调基线——波动性占主导 |
| 联盟组建/谁将执政 |
0.80x | 多党谈判动态仅凭民调确实难以预测 |
| 不信任案/领导权挑战 |
0.80x | 议会算术 + 倒戈时机——难以建模 |
| 比例代表制“X会赢得绝对多数” |
0.70x | 在德国、瑞典、荷兰、西班牙、以色列几乎不可能——散户严重高估 |
比例代表制多数规则 —— 在比例代表制中,单一政党赢得绝对多数是一个统计异常,而非合理的基线。德国的联邦议院、瑞典的议会、以色列的议会、荷兰的二院——单一政党多数可能一代人才能出现一次。然而,散户将这些市场定价在15-30%,因为他们将美国的两党二元制投射到了多党制体系上。除非某个政党的民调支持率超过45%(这在成熟的比例代表制民主国家基本不会发生),否则每个此类市场在结构上都应该是“否”。
因素 2 —— 区域信息滞后
| 区域 | 乘数 | 散户不阅读的关键数据源 |
|---|
| 德国/法国/比荷卢/斯堪的纳维亚 | 1.20x | Wahlrecht.de(每日),Politico Europe,Votecompass —— 与 Polymarket 相比滞后12-36小时 |
| 巴西/拉丁美洲 |
1.15x | DataFolha,Quaest(葡萄牙语每日追踪);其他国家的 CIEP,CNC |
| 南亚/东南亚 |
1.15x | 印度:CSDS,ABP-CVoter;印度尼西亚:LSI/Indikator;菲律宾:Pulse Asia —— 当地出口民调比英语消息早数小时 |
| 英国/澳大利亚/加拿大 |
1.05x | 英语但相对于美国权重不足 —— Electoral Calculus MRP 模型提供结构性优势 |
| 撒哈拉以南非洲/脆弱民主国家 |
0.75x | 民调质量低,政变风险,结果争议 —— 解决风险是实质性的 |
组合示例
| 市场 | 制度乘数 | 区域乘数 | 最终偏差 |
|---|
| “社民党会赢得联邦议院多数席位吗?” | 0.70x(比例代表制多数) | 1.20x(德国滞后) | 0.84x —— 怀疑 |
| “基民盟会赢得德国大选吗?” |
1.20x(简单多数制式胜利) | 1.20x(德国滞后) |
1.35x 上限 |
| “谁会赢得巴西决选?” | 1.15x(决选) | 1.15x(拉丁美洲) |
1.32x |
| “英国工党会赢得多数席位吗?” | 1.20x(简单多数制) | 1.05x(英语) |
1.26x |
| “会触发提前大选吗?” | 0.85x(提前大选) | 1.0x |
0.85x |
| “尼日利亚选举会顺利解决吗?” | 1.0x | 0.75x(非洲) |
0.75x |
监控的关键词
election, referendum, vote, prime minister, chancellor, president,
Germany election, France election, Brazil election, India election,
UK election, Japan election, South Korea, Taiwan election, snap election,
coalition, majority, parliament, polling, exit poll, incumbent, runoff,
second round, Bundestag, Riksdag, Assemblée, Duma, Diet, Congress,
Lok Sabha, confidence vote, no confidence, hung parliament,
minority government, proportional representation, first past the post
可重组的信号思路
- - Wahlrecht.de:每日更新的德国民调聚合器 —— 与 Polymarket 上的德国选举市场进行比较;滞后通常>24小时且可操作
- Politico Europe Poll of Polls:聚合的欧盟范围民调 —— 同时覆盖法国、德国、意大利、西班牙、波兰
- DataFolha / Quaest:葡萄牙语的巴西追踪民调 —— 每日更新总统和州级选举
- Electoral Calculus MRP (UK):选区级别的席位预测 —— 将原始民调转化为席位数量,比全国得票率更具预测性
安全与执行模式
该技能默认为模拟交易(venue=sim)。只有使用 --live 标志才会进行真实交易。
| 场景 | 模式 | 财务风险 |
|---|
| python trader.py | 模拟 | 无 |
| Cron / 自动化 |
模拟 | 无 |
| python trader.py --live | 实盘 | 真实 USDC |
autostart: false 和 cron: null —— 在你于 Simmer UI 中配置之前,不会自动运行任何内容。
所需凭证
| 变量 | 必需 | 备注 |
|---|
| SIMMERAPIKEY | 是 | 交易授权。请视为高价值凭证。 |
可调参数(风险参数)
所有参数均在 clawhub.json 中声明为 tunables,并可在 Simmer UI 中调整。
| 变量 | 默认值 | 用途 |
|---|
| SIMMERMAXPOSITION | 30 | 每笔交易最大 USDC(在100%信念时达到) |
| SIMMERMINVOLUME |
10000 | 最小市场交易量过滤器(美元)—— 选举需要流动性 |
| SIMMER
MAXSPREAD | 0.08 | 最大买卖价差(8%) |
| SIMMER
MINDAYS | 5 | 距离结果揭晓的最小天数 |
| SIMMER
MAXPOSITIONS | 8 | 最大并发持仓数量 |
| SIMMER
YESTHRESHOLD | 0.38 | 如果市场价格 ≤ 此值,则买入“是” |
| SIMMER
NOTHRESHOLD | 0.62 | 如果市场价格 ≥ 此值,则卖出“否” |
| SIMMER
MINTRADE | 5 | 任何交易的最低金额(无论信念如何,最小 USDC) |
依赖项