name: copy-trading description: “自动复制Polymarket和加密货币上成功钱包的交易” emoji: “📋” gates: envs: anyOf: - POLY_API_KEY - SOLANA_PRIVATE_KEY - EVM_PRIVATE_KEY
复制交易 - 完整API参考
自动镜像Polymarket和加密货币链上成功钱包的交易,具有可配置的尺寸、延迟和风险控制。
特点
- 跟随Polymarket和加密货币链上的鲸鱼钱包
- 可配置尺寸:固定、比例或投资组合的%
- 交易延迟:避免检测和抢先交易
- 风险限制:最大仓位、每日损失限制
- 止损/止盈监控自动退出
聊天命令
跟随钱包
/copy follow <address> # 开始跟随钱包
/copy follow 0x1234... --size 100 # 跟随时固定$100
/copy follow 0x1234... --size 50% # 跟随时为他们的50%
/copy follow 0x1234... --delay 30 # 复制前延迟30秒
/copy unfollow <address> # 停止跟随
/copy list # 列出跟随的钱包
/copy status # 显示复制交易状态
尺寸模式
/copy size <address> fixed 100 # 总是交易$100
/copy size <address> proportional 0.5 # 他们的50%
/copy size <address> portfolio 5% # 你的投资组合的5%
风险控制
/copy limits --max-position 1000 # 每仓位最大$1000
/copy limits --daily-loss 500 # 每日损失后停止$500
/copy limits --max-trades 20 # 每日最多交易20次
/copy sl <address> 10% # 复制时设置10%止损
/copy tp <address> 20% # 复制时设置20%止盈
发现
/copy top 10 # 可以复制的前10名交易者
/copy top 10 --min-winrate 60 # 最小60%胜率
/copy top 10 --min-volume 100000 # 最小$100k交易量
/copy analyze <address> # 分析交易者的表现
TypeScript API参考
创建复制交易服务
import { createCopyTradingService } from 'clodds/trading/copy-trading';
const copyTrader = createCopyTradingService({
// Polymarket凭证
polymarket: {
apiKey: process.env.POLY_API_KEY,
apiSecret: process.env.POLY_API_SECRET,
passphrase: process.env.POLY_API_PASSPHRASE,
privateKey: process.env.PRIVATE_KEY,
},
// 默认设置
defaults: {
sizingMode: 'proportional',
sizingValue: 0.5, // 50%的他们的尺寸
delaySeconds: 15, // 延迟15s
maxPositionSize: 1000, // 最大$1000
stopLossPct: 10, // 10%止损
takeProfitPct: 25, // 25%止盈
},
// 风险限制
limits: {
maxDailyLoss: 500,
maxDailyTrades: 20,
maxTotalExposure: 5000,
},
});
跟随钱包
// 跟随钱包,默认设置
await copyTrader.follow('0x1234...');
// 自定义设置跟随
await copyTrader.follow('0x1234...', {
sizingMode: 'fixed',
sizingValue: 100, // 每笔交易$100
delaySeconds: 30, // 延迟30s
stopLossPct: 15, // 15%止损
takeProfitPct: 30, // 30%止盈
// 过滤器
minTradeSize: 50, // 只复制交易额>$50
maxTradeSize: 5000, // 跳过交易额>$5000
markets: ['politics'], // 只复制政治市场
});
// 取消跟随
await copyTrader.unfollow('0x1234...');
// 列出跟随的
const followed = await copyTrader.listFollowed();
尺寸模式
// 固定:总是交易相同金额
await copyTrader.follow(address, {
sizingMode: 'fixed',
sizingValue: 100, // 总是$100
});
// 比例:他们交易尺寸的百分比
await copyTrader.follow(address, {
sizingMode: 'proportional',
sizingValue: 0.5, // 50%的他们的尺寸
});
// 投资组合:你投资组合的百分比
await copyTrader.follow(address, {
sizingMode: 'portfolio',
sizingValue: 0.05, // 每笔交易投资组合的5%
});
事件处理
copyTrader.on('trade_copied', (event) => {
console.log(`Copied ${event.side} on ${event.market}`);
console.log(`Original: $${event.originalSize}, Copied: $${event.copiedSize}`);
});
copyTrader.on('stop_loss_triggered', (event) => {
console.log(`Stop-loss hit on ${event.market}`);
console.log(`Loss: $${event.loss}`);
});
copyTrader.on('take_profit_triggered', (event) => {
console.log(`Take-profit hit on ${event.market}`);
console.log(`Profit: $${event.profit}`);
});
copyTrader.on('limit_reached', (event) => {
console.log(`Limit reached: ${event.type}`);
});
开始/停止
// 开始复制交易(监控跟随的钱包)
await copyTrader.start();
// 停止复制交易
await copyTrader.stop();
// 获取状态
const status = copyTrader.getStatus();
console.log(`Following: ${status.followedCount} wallets`);
console.log(`Today's P&L: $${status.dailyPnl}`);
console.log(`Active positions: ${status.activePositions}`);
寻找最佳交易者
import { findBestAddressesToCopy } from 'clodds/trading/copy-trading';
// 寻找顶级交易者
const topTraders = await findBestAddressesToCopy({
minWinRate: 0.6, // 60%+胜率
minVolume: 100000, // $100k+交易量
minTrades: 50, // 50+交易
timeframeDays: 30, // 最后30天
limit: 10, // 前10名
});
for (const trader of topTraders) {
console.log(`${trader.address}`);
console.log(` Win rate: ${(trader.winRate * 100).toFixed(1)}%`);
console.log(` Volume: $${trader.totalVolume.toLocaleString()}`);
console.log(` P&L: $${trader.pnl.toLocaleString()}`);
console.log(` Trades: ${trader.tradeCount}`);
}
分析交易者
const analysis = await copyTrader.analyzeTrader('0x1234...');
console.log(`Win rate: ${analysis.winRate}%`);
console.log(`Avg trade size: $${analysis.avgTradeSize}`);
console.log(`Best market: ${analysis.bestMarket}`);
console.log(`Worst market: ${analysis.worstMarket}`);
console.log(`Avg hold time: ${analysis.avgHoldTime} hours`);
console.log(`Sharpe ratio: ${analysis.sharpeRatio}`);
风险管理
止损监控
复制交易包括自动止损监控,价格轮询每5秒一次:
// 为每个跟随的钱包配置止损
await copyTrader.follow(address, {
stopLossPct: 10, // 亏损10%时退出
});
// 或设置全局止损
copyTrader.setGlobalStopLoss(15); // 所有仓位15%
止盈监控
// 为每个跟随的钱包配置止盈
await copyTrader.follow(address, {
takeProfitPct: 25, // 盈利25%时退出
});
// 跟踪止盈
await copyTrader.follow(address, {
trailingTakeProfit: true,
trailingPct: 5, // 跟踪5%
});
日常限制
const copyTrader = createCopyTradingService({
limits: {
maxDailyLoss: 500, // 损失后停止$500
maxDailyTrades: 20, // 最多20次交易
maxTotalExposure: 5000, // 最大$5k总敞口
},
});
最佳实践
- 从小尺寸开始 - 测试10-25%的比例尺寸
- 使用延迟 - 15-30秒的延迟减少抢先交易风险
- 设置止损 - 总是使用10-15%的止损
- 多元化 - 跟随3-5个钱包,不仅仅是一个
- 定期监控 - 每天检查表现
- 过滤市场 - 专注于你了解的类别