Skip to main content

openfinclaw-quantitative-research

OpenFinClaw CLI for end-to-end quant research, strategy backtesting, and paper trading from natural language prompts via MCP in AI agents

Ir a la instalación

Datos de origen

Repositorio
reason-machines/devtools-skills
Última actividad en el origen
13 de julio de 2026 a las 07:41
Idioma detectado de SKILL.md
inglés
Estrellas
4
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
openfinclaw-quantitative-research
description
OpenFinClaw CLI for end-to-end quant research, strategy backtesting, and paper trading from natural language prompts via MCP in AI agents
triggers
["backtest a trading strategy","research stock fundamentals","quantitative analysis","build a momentum strategy","test my trading strategy","screen stocks with technical indicators","fork a quant strategy","publish to strategy leaderboard"]
# OpenFinClaw Quantitative Research > Skill by [ara.so](https://ara.so) — Devtools Skills collection. OpenFinClaw CLI is an MCP-compatible tool that gives AI agents the ability to perform professional quantitative research, strategy development, backtesting, and paper trading. It provides 60+ built-in analysis skills covering technical, fundamental, sentiment, risk, and factor analysis across US equities, A-shares, HK stocks, crypto, and forex markets. ## What It Does - **DeepAgent Research**: Natural language queries that run full research → strategy → backtest loops - **Strategy Management**: Browse, fork, validate, and publish strategies to a community leaderboard - **End-to-End Workflow**: From idea to backtested results with metrics, trade logs, and optimization suggestions - **Multi-Market**: Supports US equities, A-shares (沪深), Hong Kong, crypto, and forex - **MCP Native**: Works in Claude Code, Cursor, VS Code, Windsurf, and 20+ AI agents ## Installation ### Quick Start (60 seconds) ```bash npx @openfinclaw/cli@latest install ``` This interactive wizard will: - Prompt for your `fch_` API key - Auto-configure MCP for all detected AI agents - Register skill keywords (`quant`, `backtest`, `量化`) - Run connectivity checks ### Non-Interactive Installation ```bash npx @openfinclaw/cli@latest install --yes \ --platforms cursor,claude-code \ --tool-groups deepagent,strategy \ --api-key $OPENFINCLAW_API_KEY \ --register-skill ``` ### Manual MCP Configuration For Claude Code (`~/.claude/settings.json`): ```json { "mcpServers": { "openfinclaw": { "command": "npx", "args": ["@openfinclaw/cli", "serve", "--tools=deepagent,strategy"], "env": { "OPENFINCLAW_API_KEY": "fch_xxx" } } } } ``` For Cursor (`.cursor/mcp.json`): ```json { "mcpServers": { "openfinclaw": { "command": "npx", "args": ["@openfinclaw/cli", "serve", "--tools=deepagent,strategy"], "env": { "OPENFINCLAW_API_KEY": "fch_xxx" } } } } ``` ## Key Commands ### DeepAgent Research (Streaming) ```bash # Technical analysis openfinclaw deepagent +research "Find RSI divergence signals on NVDA in the last 6 months, then backtest them" # Fundamental analysis openfinclaw deepagent +research "Pull Apple's last 8 quarters of revenue, margins, and guidance" # Strategy generation openfinclaw deepagent +research "Design a momentum strategy on US mega-cap tech. Backtest 2y" # Chinese markets openfinclaw deepagent +research "A-shares 沪深 300 日内轮动策略,年化目标 15%" # Backtest specific strategy openfinclaw deepagent +research "Backtest a 50/200 SMA crossover on SPY from 2015. Include costs and slippage" ``` ### Strategy Management ```bash # Browse top strategies openfinclaw leaderboard --limit 20 # Get strategy details openfinclaw strategy-info <strategy-id> # Fork a strategy locally openfinclaw fork <strategy-id> # List local strategies openfinclaw list-strategies # Validate before publishing openfinclaw validate ./strategies/my-strategy # Publish to leaderboard openfinclaw publish ./my-strategy.zip # Check publication status openfinclaw publish-verify --submission-id <id> ``` ### DeepAgent Management ```bash # Check service health openfinclaw deepagent health # List available analysis skills openfinclaw deepagent skills # View research threads openfinclaw deepagent threads # View thread messages openfinclaw deepagent messages --thread-id <id> # View backtest results openfinclaw deepagent backtests --thread-id <id> # Download strategy package openfinclaw deepagent download --package-id <id> --output ./strategy.zip ``` ### System Commands ```bash # Run diagnostics openfinclaw doctor # Update CLI openfinclaw update # Show example prompts openfinclaw examples # Direct API access openfinclaw api GET /deepagent/skills openfinclaw api POST /strategies/fork --json '{"strategyId":"abc123"}' ``` ## MCP Tool Groups ### DeepAgent Tools (14 tools, ~1,400 tokens) When `--tools=deepagent` is specified: - `fin_deepagent_health` - Check service status - `fin_deepagent_skills` - List available analysis skills - `fin_deepagent_research_submit` - Submit research query - `fin_deepagent_research_poll` - Poll research status - `fin_deepagent_research_finalize` - Finalize research session - `fin_deepagent_status` - Get task status - `fin_deepagent_cancel` - Cancel running task - `fin_deepagent_threads` - List research threads - `fin_deepagent_messages` - Get thread messages - `fin_deepagent_backtests` - List backtests - `fin_deepagent_backtest_result` - Get backtest details - `fin_deepagent_packages` - List strategy packages - `fin_deepagent_package_meta` - Get package metadata - `fin_deepagent_download_package` - Download strategy package ### Strategy Tools (7 tools, ~1,000 tokens) When `--tools=strategy` is specified: - `strategy_publish` - Publish strategy to leaderboard - `strategy_validate` - Validate FEP v2.0 compliance - `strategy_fork` - Fork strategy to local workspace - `strategy_leaderboard` - Browse ranked strategies - `strategy_get_info` - Get strategy details - `strategy_list_local` - List local strategies - `strategy_publish_verify` - Check publication status ## Configuration ### Environment Variables ```bash # Required - unified API key for all services export OPENFINCLAW_API_KEY=fch_xxx # Optional overrides (rarely needed) export OPENFINCLAW_CONFIG_PATH=~/.openfinclaw/config.json export HUB_API_URL=https://hub.openfinclaw.ai/api export DEEPAGENT_API_URL=https://hub-gw.openfinclaw.ai/api/deepagent export REQUEST_TIMEOUT_MS=30000 export DEEPAGENT_SSE_TIMEOUT_MS=300000 ``` ### Config File Auto-created at `~/.openfinclaw/config.json` (chmod 600): ```json { "apiKey": "fch_xxx", "lastUpdate": "2026-07-13T00:00:00.000Z" } ``` ## Usage Patterns for AI Agents ### Pattern 1: Quick Research Query When user asks: "Can you analyze Tesla's momentum signals?" ```typescript // 1. Submit research const submitResult = await use_mcp_tool("openfinclaw", "fin_deepagent_research_submit", { query: "Analyze Tesla (TSLA) momentum signals over the last 6 months and backtest a momentum strategy" }); // 2. Poll until complete let status = "running"; while (status === "running") { await sleep(2000); const pollResult = await use_mcp_tool("openfinclaw", "fin_deepagent_research_poll", { threadId: submitResult.threadId }); status = pollResult.status; // Show streaming content to user console.log(pollResult.content); } // 3. Finalize and get results const finalResult = await use_mcp_tool("openfinclaw", "fin_deepagent_research_finalize", { threadId: submitResult.threadId }); ``` ### Pattern 2: Browse and Fork Strategy When user asks: "Show me the best momentum strategies and let me try one" ```typescript // 1. Get leaderboard const leaderboard = await use_mcp_tool("openfinclaw", "strategy_leaderboard", { limit: 10, sortBy: "sharpe_ratio" }); // 2. Show user and get selection const strategyId = leaderboard.strategies[0].id; // 3. Get details const info = await use_mcp_tool("openfinclaw", "strategy_get_info", { strategyId }); // 4. Fork it const forkResult = await use_mcp_tool("openfinclaw", "strategy_fork", { strategyId, outputDir: "./strategies/momentum-fork" }); console.log(`Strategy forked to ${forkResult.path}`); ``` ### Pattern 3: Validate and Publish When user says: "I've edited my strategy, can you publish it?" ```typescript // 1. Validate first const validation = await use_mcp_tool("openfinclaw", "strategy_validate", { strategyPath: "./strategies/my-strategy" }); if (!validation.valid) { console.log("Validation errors:", validation.errors); return; } // 2. Publish const publishResult = await use_mcp_tool("openfinclaw", "strategy_publish", { strategyPath: "./strategies/my-strategy", isPublic: true }); // 3. Track verification const verification = await use_mcp_tool("openfinclaw", "strategy_publish_verify", { submissionId: publishResult.submissionId }); console.log(`Backtest status: ${verification.status}`); ``` ### Pattern 4: Direct DeepAgent Health Check Before running expensive queries: ```typescript const health = await use_mcp_tool("openfinclaw", "fin_deepagent_health", {}); if (health.status !== "healthy") { console.log("DeepAgent unavailable, falling back to local analysis"); return; } // Proceed with research ``` ### Pattern 5: List Available Analysis Skills When user asks: "What kind of analysis can you do?" ```typescript const skills = await use_mcp_tool("openfinclaw", "fin_deepagent_skills", {}); console.log("Available analysis skills:"); skills.categories.forEach(cat => { console.log(`\n${cat.name}:`); cat.skills.forEach(skill => { console.log(` - ${skill.name}: ${skill.description}`); }); }); ``` ## Real Code Examples ### Example 1: Complete Research Flow (TypeScript) ```typescript import { exec } from 'child_process'; import { promisify } from 'util'; const execAsync = promisify(exec); async function runQuantResearch(query: string) { try { // Stream research results const { stdout } = await execAsync( `openfinclaw deepagent +research "${query}"`, { env: { ...process.env, OPENFINCLAW_API_KEY: process.env.OPENFINCLAW_API_KEY }, maxBuffer: 10 * 1024 * 1024 // 10MB buffer for large outputs } ); console.log(stdout); // Parse structured results from output const backtestMatch = stdout.match(/Backtest ID: ([\w-]+)/); if (backtestMatch) { const backtestId = backtestMatch[1]; // Fetch detailed metrics const { stdout: metricsJson } = await execAsync( `openfinclaw api GET /deepagent/backtests/${backtestId}` ); const metrics = JSON.parse(metricsJson); console.log('\nKey Metrics:'); console.log(` Sharpe Ratio: ${metrics.sharpe_ratio}`); console.log(` Max Drawdown: ${metrics.max_drawdown}%`); console.log(` Win Rate: ${metrics.win_rate}%`); } } catch (error) { console.error('Research failed:', error); } } // Usage await runQuantResearch('Design a mean-reversion strategy on BTC. Backtest 2 years.'); ``` ### Example 2: Strategy Workflow Automation (Bash) ```bash #!/bin/bash set -e # 1. Find top-performing strategies echo "Fetching top strategies..." openfinclaw leaderboard --limit 5 --format json > leaderboard.json # 2. Fork the best one BEST_ID=$(jq -r '.[0].id' leaderboard.json) echo "Forking strategy $BEST_ID..." openfinclaw fork "$BEST_ID" --output ./my-fork # 3. Modify strategy (example: change position size) cd ./my-fork sed -i 's/position_size: 0.1/position_size: 0.15/' fep.yaml # 4. Validate echo "Validating modified strategy..." openfinclaw validate . # 5. Publish echo "Publishing to leaderboard..." SUBMISSION=$(openfinclaw publish . --json | jq -r '.submissionId') # 6. Wait for backtest echo "Waiting for backtest (submission: $SUBMISSION)..." while true; do STATUS=$(openfinclaw publish-verify --submission-id "$SUBMISSION" --json | jq -r '.status') echo "Status: $STATUS" [ "$STATUS" = "completed" ] && break sleep 10 done echo "Strategy live on leaderboard!" ``` ### Example 3: Batch Analysis (Python) ```python import subprocess import json def analyze_portfolio(tickers: list[str], period: str = "1y"): """Run technical analysis on multiple stocks""" results = {} for ticker in tickers: query = f"Analyze {ticker} technical indicators over {period}. Include RSI, MACD, and Bollinger Bands." proc = subprocess.run( ["openfinclaw", "deepagent", "+research", query], capture_output=True,
Ver en GitHub
Este SKILL.md es muy grande, por eso SkillsMP muestra aqui solo la primera seccion. Ver en GitHub