execution execution

执行服务是一个在预测市场上进行交易的工具,它提供滑点保护和订单管理功能,以确保交易的安全性和效率。

算法交易 0 次安装 0 次浏览 更新于 3/5/2026

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%(基于公式)

最佳实践

  1. 尽可能使用maker订单 - 在Polymarket上支付零费用(大多数市场)
  2. 在大额订单前检查滑点
  3. 对于>$500的订单使用保护订单
  4. 设置适当的timeInForce - 对于耐心的订单使用GTC,对于全部或无的订单使用FOK
  5. 监控开放订单 - 取消陈旧的订单
  6. 从小开始 - 先用小额测试