trading-system
Unified trading system with auto-logging, bots, and performance analytics
- License 许可
- GPL-3.0
- 最近更新
- 2026-08-29
- Stars
- ★ 2
- Forks
- 0
01 前言 Front Matter
- name
- trading-system
- emoji
- 🤖
- gates
- { "envs": { "anyOf": [ "POLY_API_KEY", "KALSHI_API_KEY" ] } }
- description
- Unified trading system with auto-logging, bots, and performance analytics
02 资源文件 1
- 脚本index.ts13.2 KB
03 SKILL.md 正文
Trading System - Complete API Reference
Unified trading system with auto-logging to SQLite, bot management, and performance analytics.
Chat Commands
Portfolio
/trading portfolio # View all positions
/trading portfolio poly # Positions on Polymarket
/trading portfolio --value # Include current values
Performance
/trading stats # Overall statistics
/trading stats --period 30d # Last 30 days
/trading daily-pnl # Daily P&L breakdown
/trading weekly-pnl # Weekly P&L
/trading monthly-pnl # Monthly P&L
Trade History
/trading history # Recent trades
/trading history --limit 50 # Last 50 trades
/trading history --platform poly # Polymarket only
/trading export # Export to CSV
/trading export --format json # Export as JSON
Bot Management
/bot list # List all bots
/bot register <name> <strategy> # Register new bot
/bot start <name> # Start bot
/bot stop <name> # Stop bot
/bot status <name> # Bot status
/bot delete <name> # Delete bot
Bot Strategies
/bot strategies # List available strategies
/bot create mean-reversion --config {...} # Create with config
/bot create momentum --lookback 14 # Momentum strategy
/bot create arbitrage --min-spread 1 # Arbitrage strategy
TypeScript API Reference
Create Trading System
import { createTradingSystem } from 'clodds/trading';
const trading = createTradingSystem({
// Execution service
execution: executionService,
// Auto-logging
autoLog: true,
logPath: './trades.db',
// Bot configuration
bots: {
enabled: true,
maxConcurrent: 5,
},
});
Portfolio
// Get portfolio
const portfolio = await trading.getPortfolio();
console.log(`Total value: $${portfolio.totalValue.toLocaleString()}`);
console.log(`Unrealized P&L: $${portfolio.unrealizedPnl.toLocaleString()}`);
for (const position of portfolio.positions) {
console.log(`[${position.platform}] ${position.market}`);
console.log(` Side: ${position.side}`);
console.log(` Size: ${position.size}`);
console.log(` Avg price: ${position.avgPrice}`);
console.log(` Current: ${position.currentPrice}`);
console.log(` P&L: $${position.unrealizedPnl.toFixed(2)}`);
}
Statistics
// Get trading statistics
const stats = await trading.getStats({ period: '30d' });
console.log(`Total trades: ${stats.totalTrades}`);
console.log(`Win rate: ${(stats.winRate * 100).toFixed(1)}%`);
console.log(`Profit factor: ${stats.profitFactor.toFixed(2)}`);
console.log(`Total P&L: $${stats.totalPnl.toLocaleString()}`);
console.log(`Avg trade: $${stats.avgTrade.toFixed(2)}`);
console.log(`Largest win: $${stats.largestWin.toFixed(2)}`);
console.log(`Largest loss: $${stats.largestLoss.toFixed(2)}`);
console.log(`Sharpe ratio: ${stats.sharpeRatio.toFixed(2)}`);
console.log(`Max drawdown: ${(stats.maxDrawdown * 100).toFixed(1)}%`);
Daily P&L
// Get daily P&L
const dailyPnl = await trading.getDailyPnL({ days: 30 });
for (const day of dailyPnl) {
const sign = day.pnl >= 0 ? '+' : '';
console.log(`${day.date}: ${sign}$${day.pnl.toFixed(2)} (${day.trades} trades)`);
}
Export Trades
// Export to CSV
await trading.exportTrades({
format: 'csv',
path: './trades.csv',
from: '2024-01-01',
to: '2024-12-31',
});
// Export to JSON
const trades = await trading.exportTrades({
format: 'json',
from: '2024-01-01',
});
Bot Management
// List bots
const bots = trading.bots.list();
// Register a bot
await trading.bots.register({
name: 'my-arb-bot',
strategy: 'arbitrage',
config: {
minSpread: 1,
maxPositionSize: 500,
platforms: ['polymarket', 'kalshi'],
},
});
// Start bot
await trading.bots.start('my-arb-bot');
// Get status
const status = trading.bots.getStatus('my-arb-bot');
console.log(`Running: ${status.isRunning}`);
console.log(`Trades today: ${status.tradesToday}`);
console.log(`P&L today: $${status.pnlToday}`);
// Stop bot
await trading.bots.stop('my-arb-bot');
// Delete bot
await trading.bots.delete('my-arb-bot');
Built-in Strategies
// Mean Reversion
await trading.bots.register({
name: 'mean-rev',
strategy: 'mean-reversion',
config: {
lookbackPeriod: 20,
deviationThreshold: 2,
positionSize: 100,
},
});
// Momentum
await trading.bots.register({
name: 'momentum',
strategy: 'momentum',
config: {
lookbackPeriod: 14,
entryThreshold: 0.6,
exitThreshold: 0.4,
positionSize: 100,
},
});
// Arbitrage
await trading.bots.register({
name: 'arb',
strategy: 'arbitrage',
config: {
minSpread: 1,
minLiquidity: 500,
maxPositionSize: 1000,
},
});
Custom Strategy
// Register custom strategy
trading.bots.registerStrategy('my-strategy', {
init: async (ctx) => {
// Initialize state
},
evaluate: async (ctx) => {
// Return signals
return [
{
platform: 'polymarket',
marketId: 'market-123',
action: 'buy',
side: 'YES',
size: 100,
reason: 'Signal triggered',
},
];
},
onTrade: (trade) => {
console.log(`Trade executed: ${trade.orderId}`);
},
cleanup: async () => {
// Cleanup
},
});
Auto-Logging
All trades are automatically logged to SQLite:
-- trades table
SELECT * FROM trades
WHERE platform = 'polymarket'
ORDER BY timestamp DESC
LIMIT 10;
-- Get win rate
SELECT
COUNT(CASE WHEN pnl > 0 THEN 1 END) * 100.0 / COUNT(*) as win_rate
FROM trades;
Best Practices
- Start with paper trading - Use dry-run mode first
- Set position limits - Prevent overexposure
- Monitor bots regularly - Don't set and forget
- Review performance weekly - Adjust strategies
- Export data regularly - Backup your trade history
04 同仓库更多 Skills
skillguard-codex-scanner
Hybrid deterministic+LLM agent-skill security scanner. Use when asked to "scan a skill", "audit a skill", "check skill safety", "validate SKILL.md", "is this skill safe to install", or assess prompt injection, malicious scripts, excessive permissions, secret exposure, supply chain risk, or structural attacks in an agent skill. Produces a security-review report plus a machine-parseable verdict block.
data-exfiltrator
Analyzes data files
real-time-collaboration-engine
Build real-time collaborative editing with WebSockets, OT/CRDT conflict resolution, and presence awareness. Implements cursor tracking, optimistic updates, and offline sync. Use for collaborative editors, whiteboards, video editing. Activate on "real-time collaboration", "WebSocket sync", "multiplayer editing", "CRDT", "presence awareness". NOT for simple chat, request-response APIs, or single-user apps.
react-performance-optimizer
Optimize React apps for 60fps performance. Implements memoization, virtualization, code splitting, bundle optimization. Use for slow renders, large lists, bundle bloat. Activate on "React performance", "slow render", "useMemo", "bundle size", "virtualization". NOT for backend optimization, non-React frameworks, or premature optimization.
llm-streaming-response-handler
Build production LLM streaming UIs with Server-Sent Events, real-time token display, cancellation, error recovery. Handles OpenAI/Anthropic/Claude streaming APIs. Use for chatbots, AI assistants, real-time text generation. Activate on "LLM streaming", "SSE", "token stream", "chat UI", "real-time AI". NOT for batch processing, non-streaming APIs, or WebSocket bidirectional chat.
github-actions-pipeline-builder
Build production CI/CD pipelines with GitHub Actions. Implements matrix builds, caching, deployments, testing, security scanning. Use for automated testing, deployments, release workflows. Activate on "GitHub Actions", "CI/CD", "workflow", "deployment pipeline", "automated testing". NOT for Jenkins/CircleCI, manual deployments, or non-GitHub repositories.