Prediction Market Trader — Kalshi Trading Toolkit
Trade prediction markets with edge. Scan markets, calculate true probabilities, size positions, execute orders.
Pipeline
- 1. Scan — Pull open markets from Kalshi API by category (sports, weather, politics, economics)
- De-vig — Get bookmaker odds from Sofascore, remove vig to find true probabilities
- Compare — Find gaps between Kalshi price and true probability (minimum 4% edge)
- Size — Quarter-Kelly criterion for position sizing (max 15% of bankroll per trade)
- Execute — Place limit orders via Kalshi API with RSA-PSS authentication
- Monitor — Track positions, P&L, and exit on profit targets
Requirements
- - Kalshi API credentials —
KALSHI_KEY_ID and KALSHI_PRIVATE_KEY (RSA private key, inline or .pem) - Node.js 18+ — for crypto.sign with RSA-PSS
Quick Start
CODEBLOCK0
Kalshi API Authentication
Kalshi uses RSA-PSS signatures. The signing message is: timestamp + method + path (NO request body in signature).
CODEBLOCK1
Headers: KALSHI-ACCESS-KEY, KALSHI-ACCESS-TIMESTAMP, KALSHI-ACCESS-SIGNATURE (base64)
De-Vigging Methodology
Bookmaker odds include a margin (vig). Remove it to find true probabilities:
CODEBLOCK2
Kelly Criterion Sizing
CODEBLOCK3
Constraints: max 15% bankroll per position, min 4% edge to trade.
Scripts
- -
scripts/kalshi-auth.js — Kalshi API client with RSA-PSS authentication - INLINECODE7 — Scan markets and compare to Sofascore de-vig
- INLINECODE8 — Place/cancel orders with safety checks
- INLINECODE9 — Check balance, positions, P&L
References
- -
references/market-categories.md — Kalshi series tickers and best edge sources - INLINECODE11 — Position sizing rules and risk management
- INLINECODE12 — Common mistakes and how to avoid them
Key Insights (Battle-Tested)
- - Tennis qualifying/challengers = best edge source (5-40% EV gaps)
- NBA/NHL live markets = 1¢ spreads, zero edge. Don't bother.
- NCAAB small conference tournaments = 4-9% EV
- Indian Wells main draw = efficiently priced (within 1-3% of books)
- Live edges close in 2-3 minutes — speed matters
- Weather markets = high variance, NWS data helps but forecasts shift
- Always match Odds API outcomes by name, NEVER by array index
预测市场交易者 — Kalshi交易工具包
利用优势交易预测市场。扫描市场、计算真实概率、确定仓位规模、执行订单。
流程
- 1. 扫描 — 按类别(体育、天气、政治、经济)从Kalshi API拉取开放市场
- 去水 — 从Sofascore获取庄家赔率,去除抽水以找到真实概率
- 对比 — 发现Kalshi价格与真实概率之间的差距(至少4%优势)
- 定仓 — 采用四分之一凯利准则确定仓位规模(每笔交易不超过资金池的15%)
- 执行 — 通过Kalshi API使用RSA-PSS认证下达限价单
- 监控 — 跟踪仓位、盈亏,并在达到盈利目标时退出
要求
- - Kalshi API凭证 — KALSHIKEYID和KALSHIPRIVATEKEY(RSA私钥,内联或.pem格式)
- Node.js 18+ — 用于使用RSA-PSS进行crypto.sign
快速开始
bash
设置凭证
export KALSHI
KEYID=your
keyid
export KALSHI
PRIVATEKEY=-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----
扫描优势
node scripts/scan-edges.js --category tennis
下订单(模拟运行)
node scripts/trade.js --ticker KXATPMATCH-26MAR12DRAMED-DRA --side yes --price 38 --count 10 --dry
查看投资组合
node scripts/portfolio.js
Kalshi API认证
Kalshi使用RSA-PSS签名。签名消息为:时间戳 + 方法 + 路径(签名中不包含请求体)。
javascript
const crypto = require(crypto);
const timestamp = Math.floor(Date.now() / 1000).toString();
const message = timestamp + GET + /trade-api/v2/portfolio/balance;
const signature = crypto.sign(sha256, Buffer.from(message), {
key: crypto.createPrivateKey(privateKey),
padding: crypto.constants.RSAPKCS1PSS_PADDING,
saltLength: 32
});
请求头:KALSHI-ACCESS-KEY、KALSHI-ACCESS-TIMESTAMP、KALSHI-ACCESS-SIGNATURE(base64编码)
去水方法
庄家赔率包含抽水。去除抽水以找到真实概率:
隐含概率A = 1 / 小数赔率A
隐含概率B = 1 / 小数赔率B
总和 = 隐含概率A + 隐含概率B (始终大于1.0)
真实概率A = 隐含概率A / 总和
真实概率B = 隐含概率B / 总和
凯利准则定仓
优势 = 真实概率 - kalshi价格
赔率 = (1 / kalshi价格) - 1
凯利分数 = (真实概率 * 赔率 - (1 - 真实概率)) / 赔率
仓位规模 = 凯利分数 0.25 资金池 (四分之一凯利)
约束条件:每笔仓位不超过资金池的15%,最低4%优势才交易。
脚本
- - scripts/kalshi-auth.js — 带RSA-PSS认证的Kalshi API客户端
- scripts/scan-edges.js — 扫描市场并与Sofascore去水数据对比
- scripts/trade.js — 带安全检查的下单/撤单
- scripts/portfolio.js — 查看余额、仓位、盈亏
参考
- - references/market-categories.md — Kalshi系列代码和最佳优势来源
- references/risk-rules.md — 仓位规模规则和风险管理
- references/lessons-learned.md — 常见错误及如何避免
关键洞察(实战验证)
- - 网球资格赛/挑战赛 = 最佳优势来源(5-40%预期价值差距)
- NBA/NHL实时市场 = 1美分价差,零优势。别费劲了。
- NCAA小型联盟锦标赛 = 4-9%预期价值
- 印第安维尔斯正赛 = 定价有效(与博彩公司差距在1-3%以内)
- 实时优势在2-3分钟内消失 — 速度至关重要
- 天气市场 = 高波动性,NWS数据有帮助但预测会变化
- 始终按名称匹配Odds API结果,绝不按数组索引匹配