Skip to main content

copy-trading

Automatically copy trades from successful wallets on Polymarket and crypto

소스 정보

저장소
alsk1992/CloddsBot
최근 소스 활동
2026년 2월 10일 15:20
감지된 SKILL.md 언어
영어
스타
2,972
포크
359

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
copy-trading
description
Automatically copy trades from successful wallets on Polymarket and crypto
emoji
📋
gates
{"envs":{"anyOf":["POLY_API_KEY","SOLANA_PRIVATE_KEY","EVM_PRIVATE_KEY"]}}
# Copy Trading - Complete API Reference Automatically mirror trades from successful wallets with configurable sizing, delays, and risk controls. ## Features - **Follow whale wallets** on Polymarket and crypto chains - **Configurable sizing**: Fixed, proportional, or % of portfolio - **Trade delay** to avoid detection and front-running - **Risk limits**: Max position, daily loss limits - **Stop-loss / Take-profit** monitoring with auto-exit --- ## Chat Commands ### Following Wallets ``` /copy follow <address> # Start following a wallet /copy follow 0x1234... --size 100 # Follow with $100 fixed size /copy follow 0x1234... --size 50% # Follow with 50% of their size /copy follow 0x1234... --delay 30 # 30 second delay before copying /copy unfollow <address> # Stop following /copy list # List followed wallets /copy status # Show copy trading status ``` ### Sizing Modes ``` /copy size <address> fixed 100 # Always trade $100 /copy size <address> proportional 0.5 # 50% of their size /copy size <address> portfolio 5% # 5% of your portfolio ``` ### Risk Controls ``` /copy limits --max-position 1000 # Max $1000 per position /copy limits --daily-loss 500 # Stop after $500 daily loss /copy limits --max-trades 20 # Max 20 trades per day /copy sl <address> 10% # 10% stop-loss on copies /copy tp <address> 20% # 20% take-profit on copies ``` ### Discovery ``` /copy top 10 # Top 10 traders to copy /copy top 10 --min-winrate 60 # Min 60% win rate /copy top 10 --min-volume 100000 # Min $100k volume /copy analyze <address> # Analyze a trader's performance ``` --- ## TypeScript API Reference ### Create Copy Trading Service ```typescript import { createCopyTradingService } from 'clodds/trading/copy-trading'; const copyTrader = createCopyTradingService({ // Polymarket credentials polymarket: { apiKey: process.env.POLY_API_KEY, apiSecret: process.env.POLY_API_SECRET, passphrase: process.env.POLY_API_PASSPHRASE, privateKey: process.env.PRIVATE_KEY, }, // Default settings defaults: { sizingMode: 'proportional', sizingValue: 0.5, // 50% of their size delaySeconds: 15, // 15s delay maxPositionSize: 1000, // $1000 max stopLossPct: 10, // 10% stop-loss takeProfitPct: 25, // 25% take-profit }, // Risk limits limits: { maxDailyLoss: 500, maxDailyTrades: 20, maxTotalExposure: 5000, }, }); ``` ### Follow Wallets ```typescript // Follow a wallet with default settings await copyTrader.follow('0x1234...'); // Follow with custom settings await copyTrader.follow('0x1234...', { sizingMode: 'fixed', sizingValue: 100, // $100 per trade delaySeconds: 30, // 30s delay stopLossPct: 15, // 15% stop-loss takeProfitPct: 30, // 30% take-profit // Filters minTradeSize: 50, // Only copy trades > $50 maxTradeSize: 5000, // Skip trades > $5000 markets: ['politics'], // Only copy politics markets }); // Unfollow await copyTrader.unfollow('0x1234...'); // List followed const followed = await copyTrader.listFollowed(); ``` ### Sizing Modes ```typescript // Fixed: Always trade same dollar amount await copyTrader.follow(address, { sizingMode: 'fixed', sizingValue: 100, // Always $100 }); // Proportional: Percentage of their trade size await copyTrader.follow(address, { sizingMode: 'proportional', sizingValue: 0.5, // 50% of their size }); // Portfolio: Percentage of your portfolio await copyTrader.follow(address, { sizingMode: 'portfolio', sizingValue: 0.05, // 5% of portfolio per trade }); ``` ### Event Handling ```typescript 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}`); }); ``` ### Start/Stop ```typescript // Start copy trading (monitors followed wallets) await copyTrader.start(); // Stop copy trading await copyTrader.stop(); // Get status const status = copyTrader.getStatus(); console.log(`Following: ${status.followedCount} wallets`); console.log(`Today's P&L: $${status.dailyPnl}`); console.log(`Active positions: ${status.activePositions}`); ``` ### Find Best Traders ```typescript import { findBestAddressesToCopy } from 'clodds/trading/copy-trading'; // Find top traders const topTraders = await findBestAddressesToCopy({ minWinRate: 0.6, // 60%+ win rate minVolume: 100000, // $100k+ volume minTrades: 50, // 50+ trades timeframeDays: 30, // Last 30 days limit: 10, // Top 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}`); } ``` ### Analyze Trader ```typescript 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}`); ``` --- ## Risk Management ### Stop-Loss Monitoring Copy trading includes automatic stop-loss monitoring with 5-second price polling: ```typescript // Configure stop-loss per followed wallet await copyTrader.follow(address, { stopLossPct: 10, // Exit at 10% loss }); // Or set global stop-loss copyTrader.setGlobalStopLoss(15); // 15% for all positions ``` ### Take-Profit Monitoring ```typescript // Configure take-profit per followed wallet await copyTrader.follow(address, { takeProfitPct: 25, // Exit at 25% profit }); // Trailing take-profit await copyTrader.follow(address, { trailingTakeProfit: true, trailingPct: 5, // Trail by 5% }); ``` ### Daily Limits ```typescript const copyTrader = createCopyTradingService({ limits: { maxDailyLoss: 500, // Stop after $500 loss maxDailyTrades: 20, // Max 20 trades maxTotalExposure: 5000, // Max $5k total exposure }, }); ``` --- ## Best Practices 1. **Start with small sizes** - Test with 10-25% proportional sizing 2. **Use delays** - 15-30 second delays reduce front-running risk 3. **Set stop-losses** - Always use 10-15% stop-loss 4. **Diversify** - Follow 3-5 wallets, not just one 5. **Monitor regularly** - Check performance daily 6. **Filter markets** - Focus on categories you understand
GitHub에서 보기