name: slippage
description: “滑点估计、优化和保护交易执行”
emoji: “📉”
滑点 - 完整API参考
估计、最小化和保护所有交易平台上的滑点。
聊天命令
估计滑点
/slippage estimate "特朗普" YES 5000 估计5000美元订单的滑点
/slippage BTCUSDT 1.5 BTC 估计期货滑点
/slippage ETH 50 --dex uniswap 估计去中心化交易所滑点
分析订单簿
/slippage depth "特朗普" 显示订单簿深度
/slippage impact 10000 价格影响大小
/slippage levels "特朗普" 显示不同大小的滑点
优化执行
/slippage optimize "特朗普" YES 10000 寻找最佳执行方式
/slippage split 50000 最优订单分割
/slippage timing "特朗普" 滑点最低的最佳时间
保护设置
/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, // ms
});
估计滑点
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}`);
}
去中心化交易所滑点(加密货币)
const dexSlippage = await slippage.estimateDex({
chain: 'ethereum',
dex: 'uniswap',
tokenIn: 'USDC',
tokenOut: 'ETH',
amountIn: 50000,
});
console.log('去中心化交易所滑点估计:');
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 |
用更小的规模重试 |
最佳实践
- 总是先估计 — 交易前检查滑点
- 分割大订单 — 减少对薄弱订单簿的影响
- 使用限价单 — 防止意外的滑点
- 交易流动性市场 — 成交量高=滑点低
- 监控执行 — 跟踪实际与预期滑点