名称: 滑点
description: “用于交易执行的滑点估计、优化和保护”
emoji: “📉”
滑点 - 完整 API 参考
在所有交易平台上估计、最小化和保护滑点。
聊天命令
估计滑点
/slippage estimate "Trump" YES 5000 为 5000 美元订单估计
/slippage BTCUSDT 1.5 BTC 为期货估计
/slippage ETH 50 --dex uniswap 估计 DEX 滑点
分析订单簿
/slippage depth "Trump" 显示订单簿深度
/slippage impact 10000 价格影响分析
/slippage levels "Trump" 显示不同规模的滑点
优化执行
/slippage optimize "Trump" YES 10000 寻找最佳执行
/slippage split 50000 最优订单拆分
/slippage timing "Trump" 低滑点的最佳时间
保护设置
/slippage max 1% 设置最大滑点容忍度
/slippage protect on 启用滑点保护
/slippage revert-threshold 2% 如果滑点超过则取消
TypeScript API 参考
创建滑点管理器
import { createSlippageManager } from 'clodds/slippage';
const slippage = createSlippageManager({
// 默认容忍度
defaultMaxSlippage: 0.01, // 1%
// 保护
enableProtection: true,
revertThreshold: 0.02, // 如果 > 2% 则取消
// 数据源
orderbookDepth: 20, // 分析级别
refreshInterval: 1000, // 毫秒
});
估计滑点
const estimate = await slippage.estimate({
platform: 'polymarket',
market: 'trump-win-2028',
side: 'YES',
size: 5000,
});
console.log(`预期滑点: ${estimate.slippage}%`);
console.log(`价格影响: ${estimate.priceImpact}%`);
console.log(`有效价格: ${estimate.effectivePrice}`);
console.log(`最佳价格: ${estimate.bestPrice}`);
console.log(`最差价格: ${estimate.worstPrice}`);
console.log(`置信度: ${estimate.confidence}%`);
分析订单簿深度
const depth = await slippage.analyzeDepth({
platform: 'polymarket',
market: 'trump-win-2028',
side: 'YES',
});
console.log('订单簿深度:');
console.log(` 0.5% 处流动性: $${depth.liquidityAt05Pct}`);
console.log(` 1% 处流动性: $${depth.liquidityAt1Pct}`);
console.log(` 2% 处流动性: $${depth.liquidityAt2Pct}`);
console.log(` 总深度: $${depth.totalDepth}`);
console.log('
按规模的滑点:');
for (const level of depth.slippageLevels) {
console.log(` $${level.size}: ${level.slippage}% 滑点`);
}
价格影响分析
const impact = await slippage.priceImpact({
platform: 'polymarket',
market: 'trump-win-2028',
side: 'YES',
sizes: [1000, 5000, 10000, 25000, 50000],
});
console.log('价格影响分析:');
for (const level of impact.levels) {
console.log(` $${level.size}:`);
console.log(` 滑点: ${level.slippage}%`);
console.log(` 影响: ${level.impact}%`);
console.log(` 有效: ${level.effectivePrice}`);
}
优化执行
const optimized = await slippage.optimize({
platform: 'polymarket',
market: 'trump-win-2028',
side: 'YES',
size: 25000,
maxSlippage: 0.01,
});
console.log('优化执行:');
console.log(` 策略: ${optimized.strategy}`); // 'single' | 'split' | 'twap'
console.log(` 预期滑点: ${optimized.expectedSlippage}%`);
console.log(` 对比原始: ${optimized.naiveSlippage}%`);
console.log(` 节省: $${optimized.savings}`);
if (optimized.strategy === 'split') {
console.log('
订单拆分:');
for (const order of optimized.orders) {
console.log(` ${order.size} @ ${order.limitPrice} (延迟 ${order.delay}s)`);
}
}
订单拆分
const split = await slippage.splitOrder({
platform: 'polymarket',
market: 'trump-win-2028',
side: 'YES',
totalSize: 50000,
maxSlippagePerOrder: 0.005, // 每个订单最大 0.5%
minOrderSize: 1000,
});
console.log(`拆分为 ${split.orders.length} 个订单:`);
for (const order of split.orders) {
console.log(` $${order.size} - 预期 ${order.expectedSlippage}%`);
}
console.log(`总预期滑点: ${split.totalSlippage}%`);
console.log(`执行时间: ${split.estimatedTime}s`);
TWAP 执行
const twap = await slippage.twapSchedule({
platform: 'polymarket',
market: 'trump-win-2028',
side: 'YES',
totalSize: 100000,
duration: 3600, // 1 小时
intervals: 12, // 12 个订单
});
console.log('TWAP 时间表:');
for (const order of twap.orders) {
console.log(` ${order.time}: $${order.size}`);
}
console.log(`预期平均滑点: ${twap.expectedSlippage}%`);
最佳时间分析
const timing = await slippage.analyzeTiming({
platform: 'polymarket',
market: 'trump-win-2028',
side: 'YES',
size: 10000,
});
console.log('低滑点的最佳时间:');
for (const window of timing.bestWindows) {
console.log(` ${window.time}: 平均 ${window.avgSlippage}% 滑点`);
console.log(` 流动性: $${window.avgLiquidity}`);
}
console.log('
最差时间:');
for (const window of timing.worstWindows) {
console.log(` ${window.time}: 平均 ${window.avgSlippage}% 滑点`);
}
滑点保护
// 设置保护参数
slippage.setProtection({
maxSlippage: 0.01, // 最大 1%
revertThreshold: 0.02, // 如果 > 2% 则取消
notifyThreshold: 0.005, // 在 0.5% 时警报
retryOnRevert: true, // 重试并减小规模
retryReductionPct: 50, // 减小 50%
});
// 执行带保护
const result = await slippage.executeProtected({
platform: 'polymarket',
market: 'trump-win-2028',
side: 'YES',
size: 10000,
});
console.log(`已执行: ${result.executed}`);
console.log(`实际滑点: ${result.actualSlippage}%`);
console.log(`已保护: ${result.protected}`);
if (result.reverted) {
console.log(`已取消: ${result.revertReason}`);
}
DEX 滑点 (加密货币)
const dexSlippage = await slippage.estimateDex({
chain: 'ethereum',
dex: 'uniswap',
tokenIn: 'USDC',
tokenOut: 'ETH',
amountIn: 50000,
});
console.log('DEX 滑点估计:');
console.log(` 预期输出: ${dexSlippage.expectedOut}`);
console.log(` 最小输出 (1% 滑点): ${dexSlippage.minOut1Pct}`);
console.log(` 价格影响: ${dexSlippage.priceImpact}%`);
console.log(` 路径: ${dexSlippage.route.join(' → ')}`);
历史滑点
const history = await slippage.getHistory({
platform: 'polymarket',
period: '30d',
});
console.log('历史滑点:');
console.log(` 平均滑点: ${history.avgSlippage}%`);
console.log(` 最大滑点: ${history.maxSlippage}%`);
console.log(` 滑点 > 1% 的交易: ${history.tradesOver1Pct}`);
console.log(` 总滑点成本: $${history.totalCost}`);
滑点因素
| 因素 |
影响 |
缓解措施 |
| 订单规模 |
越大 = 滑点越多 |
拆分订单 |
| 流动性 |
稀薄 = 滑点越多 |
先检查深度 |
| 波动性 |
高 = 滑点越多 |
使用限价单 |
| 时间 |
非高峰 = 滑点越多 |
交易高峰时段 |
| 市场类型 |
新市场 = 滑点越多 |
避免非流动性市场 |
保护模式
| 模式 |
行为 |
warn |
警报但执行 |
confirm |
需要确认 |
block |
如果超过则取消 |
retry |
重试并减小规模 |
最佳实践
- 始终先估计 — 在交易前检查滑点
- 拆分大订单 — 减少对薄订单簿的影响
- 使用限价单 — 保护免受意外滑点
- 交易流动性市场 — 更高交易量 = 更低滑点
- 监控执行 — 跟踪实际 vs 预期滑点