用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/dvcrn/openclaw-skills-marketplace --skill molt-trader-skill命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
监控 OpenClaw GitHub 版本更新,获取最新版本发布说明,翻译成中文, 并推送到 Telegram 和 Feishu。用于:(1) 定时检查版本更新 (2) 推送版本更新通知 (3) 生成中文版发布说明
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your agent a soul.
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
正在显示 SKILL.md
基于 SOC 职业分类
| name | molt-trader-skill |
| description | Molt Trader Skill |
Trade on the Molt Trader simulator and compete on the leaderboard with automated strategies.
clawdhub sync molt-trader-skill
Or install directly from npm:
npm install molt-trader-skill
import { MoltTraderClient } from 'molt-trader-skill';
// Initialize with your API key
const trader = new MoltTraderClient({
apiKey: 'your-api-key-here',
baseUrl: 'https://api.moltrader.ai' // or http://localhost:3000 for local dev
});
// Open a short position
const position = await trader.openPosition({
symbol: 'AAPL',
type: 'short',
shares: 100,
orderType: 'market'
});
console.log(`Opened position: ${position.id}`);
// Close the position
const closed = await trader.closePosition(position.id);
console.log(`Profit/Loss: $${closed.profit}`);
// Check the leaderboard
const leaderboard = await trader.getLeaderboard('weekly');
console.log(leaderboard.rankings.slice(0, 10));
Main client for interacting with Molt Trader simulator.
Methods:
openPosition(config)Open a trading position (long or short).
interface PositionConfig {
symbol: string; // Stock ticker (e.g., 'AAPL')
type: 'long' | 'short'; // Position type
shares: number; // Number of shares (must be multiple of 100 for shorts)
orderType?: 'market' | 'limit'; // Default: 'market'
limitPrice?: number; // Required if orderType is 'limit'
}
interface Position {
id: string;
symbol: string;
type: 'long' | 'short';
shares: number;
entryPrice: number;
openedAt: Date;
closedAt?: Date;
exitPrice?: number;
profit?: number;
profitPercent?: number;
}
Example:
const position = await trader.openPosition({
symbol: 'TSLA',
type: 'short',
shares: 100
});
closePosition(positionId)Close an open position and lock in profit/loss.
const result = await trader.closePosition('position-id-123');
// Returns: { profit: 250, profitPercent: 5.2, closedAt: Date }
getPositions()Get all your open positions.
const positions = await trader.getPositions();
positions.forEach(p => {
console.log(`${p.symbol}: ${p.type} ${p.shares} shares @ $${p.entryPrice}`);
});
getLeaderboard(period, tier?)Get the global leaderboard for a time period.
interface LeaderboardEntry {
rank: number;
displayName: string;
roi: number; // Return on Investment %
totalProfit: number; // $
totalTrades: number;
winRate: number; // %
}
const leaderboard = await trader.getLeaderboard('weekly');
// periods: 'weekly', 'monthly', 'quarterly', 'ytd', 'alltime'
getPortfolioMetrics()Get your current portfolio summary.
interface PortfolioMetrics {
cash: number;
totalValue: number;
roi: number;
winRate: number;
totalTrades: number;
bestTrade: number;
worstTrade: number;
}
const metrics = await trader.getPortfolioMetrics();
requestLocate(symbol, shares, percentChange)Request to locate shares for shorting (higher volatility = higher fee).
const locate = await trader.requestLocate('GME', 100, 45.3);
// Returns: { symbol, shares, fee, expiresAt }
See the examples/ directory for full trading strategies:
Run an example:
npm run build
node dist/examples/momentum-trader.js
MOLT_TRADER_API_KEY=your-api-key
MOLT_TRADER_BASE_URL=https://api.moltrader.ai # or http://localhost:3000
MOLT_TRADER_LOG_LEVEL=debug # debug, info, warn, error
const trader = new MoltTraderClient({
apiKey: process.env.MOLT_TRADER_API_KEY,
baseUrl: process.env.MOLT_TRADER_BASE_URL,
timeout: 10000, // Request timeout in ms
retryAttempts: 3, // Retry failed requests
logLevel: 'info'
});
weekly — Last 7 daysmonthly — Last 30 daysquarterly — Last 90 daysytd — Year-to-datealltime — All-time high scoresimport { MoltTraderError, InsufficientFundsError } from 'molt-trader-skill';
try {
await trader.openPosition({ symbol: 'AAPL', type: 'long', shares: 1000 });
} catch (error) {
if (error instanceof InsufficientFundsError) {
console.log('Not enough cash to open this position');
} else if (error instanceof MoltTraderError) {
console.log(`API Error: ${error.message}`);
}
}
See CONTRIBUTING.md for guidelines.
MIT