name: execution
description: “在预测市场上执行交易,具有滑点保护和订单管理功能”
emoji: “⚡”
gates:
envs:
anyOf:
- POLY_API_KEY
- KALSHI_API_KEY
执行服务 - 完整API参考
在Polymarket和Kalshi上执行交易,具有滑点保护、maker订单和订单管理功能。
支持平台
| 平台 |
订单类型 |
特性 |
| Polymarket |
限价单,市价单,Maker |
-0.5% maker返佣,GTC/FOK |
| Kalshi |
限价单,市价单 |
美国监管 |
聊天命令
下单
/execute buy poly <market> YES 100 @ 0.52 # 在Polymarket上限价买入
/execute sell kalshi <market> NO 50 @ 0.48 # 在Kalshi上限价卖出
/execute market-buy poly <market> YES 100 # 市价买入
/execute market-sell poly <market> NO 50 # 市价卖出
Maker订单(返佣)
/execute maker-buy poly <market> YES 100 @ 0.52 # 仅挂单买入
/execute maker-sell poly <market> NO 50 @ 0.48 # 仅挂单卖出
保护订单(滑点保护)
/execute protected-buy poly <market> YES 100 --max-slippage 1%
/execute protected-sell poly <market> NO 50 --max-slippage 0.5%
订单管理
/orders open # 查看开放订单
/orders open poly # 在Polymarket上的开放订单
/orders cancel <order-id> # 取消特定订单
/orders cancel-all # 取消所有开放订单
/orders cancel-all poly # 在Polymarket上取消所有
滑点估算
/estimate-slippage poly <market> buy 1000 # 估算$1000买入的滑点
/estimate-slippage kalshi <market> sell 500 # 估算$500卖出的滑点
TypeScript API参考
创建执行服务
import { createExecutionService } from 'clodds/execution';
const executor = createExecutionService({
polymarket: {
apiKey: process.env.POLY_API_KEY,
apiSecret: process.env.POLY_API_SECRET,
passphrase: process.env.POLY_API_PASSPHRASE,
privateKey: process.env.PRIVATE_KEY,
},
kalshi: {
apiKey: process.env.KALSHI_API_KEY,
privateKey: process.env.KALSHI_PRIVATE_KEY,
},
// 默认设置
defaultSlippageTolerance: 0.5, // 0.5%
autoLogTrades: true,
});
限价单
// 限价买入订单
const order = await executor.buyLimit({
platform: 'polymarket',
marketId: 'market-123',
side: 'YES',
size: 100, // $100
price: 0.52, // 52美分
timeInForce: 'GTC', // 直至取消
});
console.log(`订单已放置: ${order.orderId}`);
console.log(`状态: ${order.status}`);
// 限价卖出订单
const sellOrder = await executor.sellLimit({
platform: 'polymarket',
marketId: 'market-123',
side: 'YES',
size: 100,
price: 0.55,
});
市价单
// 市价买入 - 立即以最佳价格执行
const order = await executor.marketBuy({
platform: 'polymarket',
marketId: 'market-123',
side: 'YES',
size: 100,
});
console.log(`成交于: ${order.avgFillPrice}`);
console.log(`成交数量: ${order.filledSize}`);
// 市价卖出
const sellOrder = await executor.marketSell({
platform: 'kalshi',
marketId: 'TRUMP-WIN',
side: 'YES',
size: 50,
});
Maker订单(仅挂单)
// Maker买入 - 仅作为maker执行(获得返佣)
const order = await executor.makerBuy({
platform: 'polymarket',
marketId: 'market-123',
side: 'YES',
size: 100,
price: 0.52,
});
// 如果会立即作为taker执行则会被拒绝
if (order.status === 'rejected') {
console.log('价格过于激进 - 会是taker');
}
// Maker卖出
const sellOrder = await executor.makerSell({
platform: 'polymarket',
marketId: 'market-123',
side: 'NO',
size: 50,
price: 0.48,
});
保护订单(滑点保护)
// 保护买入 - 在执行前检查滑点
const order = await executor.protectedBuy({
platform: 'polymarket',
marketId: 'market-123',
side: 'YES',
size: 100,
maxSlippage: 0.5, // 最大0.5%滑点
});
if (order.status === 'rejected') {
console.log(`被拒绝: 滑点将会是 ${order.estimatedSlippage}%`);
} else {
console.log(`以 ${order.actualSlippage}%滑点执行`);
}
// 保护卖出
const sellOrder = await executor.protectedSell({
platform: 'kalshi',
marketId: 'TRUMP-WIN',
side: 'YES',
size: 50,
maxSlippage: 1,
});
订单管理
// 取消特定订单
await executor.cancelOrder('polymarket', orderId);
// 在平台上取消所有订单
await executor.cancelAllOrders('polymarket');
// 为市场取消所有订单
await executor.cancelAllOrders('polymarket', { marketId: 'market-123' });
// 获取开放订单
const openOrders = await executor.getOpenOrders('polymarket');
for (const order of openOrders) {
console.log(`${order.orderId}: ${order.side} ${order.size} @ ${order.price}`);
console.log(` 状态: ${order.status}`);
console.log(` 成交: ${order.filledSize}/${order.size}`);
}
滑点估算
// 在执行前估算滑点
const estimate = await executor.estimateSlippage({
platform: 'polymarket',
marketId: 'market-123',
side: 'buy',
size: 1000,
});
console.log(`对于$1000买入:`);
console.log(` 平均成交价格: ${estimate.avgFillPrice}`);
console.log(` 预期滑点: ${estimate.slippagePct}%`);
console.log(` 总成交: ${estimate.totalFilled}`);
console.log(` 消耗层级: ${estimate.levelsConsumed}`);
订单类型
| 类型 |
描述 |
最佳用途 |
| 限价单 |
在特定价格或更好的价格执行 |
对价格敏感的订单 |
| 市价单 |
立即以最佳可用价格执行 |
紧急执行 |
| Maker |
仅挂单,获得返佣 |
收集返佣 |
| 保护单 |
在执行前检查滑点 |
大额订单 |
时间效力
| 值 |
描述 |
| GTC |
直至取消(默认) |
| FOK |
全部成交或不成交 - 全部或无 |
| IOC |
立即成交或取消 - 尽可能成交 |
费用结构
Polymarket(2026年1月验证)
- 大多数市场: 0% maker,0% taker(零费用)
- 15分钟加密市场: 动态taker费用高达~3%在50/50赔率;maker有资格获得返佣计划
Kalshi
- Taker: 基于公式的平均~1.2%,上限~2%
- Maker: ~0.17%(基于公式)
最佳实践
- 尽可能使用maker订单 - 在Polymarket上支付零费用(大多数市场)
- 在大额订单前检查滑点
- 对于>$500的订单使用保护订单
- 设置适当的timeInForce - 对于耐心的订单使用GTC,对于全部或无的订单使用FOK
- 监控开放订单 - 取消陈旧的订单
- 从小开始 - 先用小额测试