← 返回 Skills 市场
rsoutar

Claw Screener

作者 Richard Soutar · GitHub ↗ · v1.0.3
cross-platform ✓ 安全检测通过
716
总下载
0
收藏
2
当前安装
4
版本数
在 OpenClaw 中安装
/install claw-screener
功能描述
Stock screener combining Williams %R oversold signals with Warren Buffett-style fundamental analysis. Supports US (S&P 500) and Thai (SET) markets.
使用说明 (SKILL.md)

Claw-Screener

A stock screener that combines technical analysis (Williams %R oversold signals) with Warren Buffett-style fundamental analysis using SEC data. Supports US (S&P 500) and Thai (SET) markets.

When to Use This Skill

Use this skill when you need to:

  • Find oversold stocks with strong fundamentals
  • Screen for quality stocks using Buffett's 10 formulas
  • Screen for long-term compounders using Carlson filters (ROIC, growth, buybacks)
  • Analyze individual stocks for investment decisions
  • Get daily stock screening results in text, JSON, or Telegram format

Tools

This skill provides the following capabilities:

1. Combined Screening

Finds stocks that are both technically oversold (Williams %R \x3C -80) and fundamentally strong (Buffett score >= threshold).

Command:

bun run src/screening.ts [options]

Options:

Flag Description Default
--market Market: us or bk us
--min-score Minimum Buffett score (0-10) 5
--top-n Number of results to show 10
--format Output: text, json, telegram text

Examples:

bun run src/screening.ts
bun run src/screening.ts --market us --min-score 7 --top-n 5
bun run src/screening.ts --market bk
bun run src/screening.ts --format json
bun run src/screening.ts --format telegram

2. Technical Only Scan

Fast oversold scan using Williams %R indicator only. No SEC data required. Works for both US and Thai markets.

Command:

bun run src/technicalOnly.ts [options]

Options:

Flag Description Default
--market Market: us or bk us
--threshold Williams %R threshold -80
--top-n Number of results to show 20
--format Output: text, json, telegram text

Examples:

bun run src/technicalOnly.ts
bun run src/technicalOnly.ts --threshold -70 --top-n 50
bun run src/technicalOnly.ts --market bk

3. Analyze Stock

Deep analysis of a single stock using Buffett's 10 formulas.

Command:

bun run src/analyze.ts \x3Cticker> [options]

Options:

Flag Description Default
--format Output: text, json, telegram text

Examples:

bun run src/analyze.ts AAPL
bun run src/analyze.ts MSFT --format telegram
bun run src/analyze.ts GOOGL --format json
bun run src/analyze.ts PTT.BK

4. Compounding Machine

Screens for "compounders" using Carlson-style filters:

  • Revenue and net income YoY trend strength
  • ROIC threshold (default >15%)
  • Share count reduction over 3 years (buyback signal)
  • Operating margin threshold (default >20%)
  • Includes current yield vs 5-year average and a simple 10-year DCF context

Command:

bun run src/compoundingMachine.ts [options]

Options:

Flag Description Default
--market Market universe: us or bk us
--tickers Comma-separated tickers (overrides market universe) -
--max-tickers Limit universe size all
--top-n Number of passing stocks to show 25
--concurrency Parallel fetch workers 4
--format Output: text or json text
--db-path SQLite cache path sec_cache.db
--ttl-days Cache TTL in days 7
--min-roic ROIC threshold (%) 15
--min-op-margin Operating margin threshold (%) 20
--min-buyback Required 3Y share reduction (%) 2
--show-rejected Include failed tickers with reasons in output off

Examples:

bun run src/compoundingMachine.ts
bun run src/compoundingMachine.ts --tickers AAPL,MSFT,NVDA --top-n 10
bun run src/compoundingMachine.ts --format json --max-tickers 100
bun run src/compoundingMachine.ts --tickers PLTR --show-rejected

Runtime / Caching Notes:

  • First uncached run on full US universe can take ~20-30+ minutes.
  • This is expected: each ticker requires multiple Yahoo fundamentals/quote requests and retry backoff for rate-limit resilience.
  • Subsequent runs are much faster due to SQLite caching (sec_cache.db, TTL default 7 days).
  • For quick checks, run smaller scans first (for example --max-tickers 50 or specific --tickers).

Agent Guidance for User Messaging:

  • If user runs full-universe Compounding Machine scan, explicitly warn that initial run may take ~20-30 minutes.
  • Suggest quick-test alternatives while waiting:
    • bun run src/compoundingMachine.ts --max-tickers 50
    • bun run src/compoundingMachine.ts --tickers AAPL,MSFT,NVDA

5. Watchlist Management

Track stocks you're interested in and get alerts when they become oversold or overbought.

Command:

bun run src/watchList.ts \x3Ccommand> [options]

Commands:

Command Description
add \x3Cticker> Add a stock to your watchlist
remove \x3Cticker> Remove a stock from your watchlist
list Show all watched stocks

Options:

Flag Description Default
--market us|th Market: us (US) or th (Thai) us
--notes '...' Optional notes for the stock -
--alert-threshold Williams %R threshold for alerts -

Examples:

bun run src/watchList.ts add AAPL
bun run src/watchList.ts add AAPL --market us --notes 'Big tech'
bun run src/watchList.ts add PTT.BK --market th
bun run src/watchList.ts remove AAPL
bun run src/watchList.ts list
bun run src/watchList.ts list --market us

Storage: Watchlist is saved to ~/.claw-screener-watchlist.json

Buffett's 10 Formulas

The fundamental analysis evaluates stocks against Warren Buffett's criteria:

# Formula Target Description
1 Cash Test > Total Debt Cash covers all debt
2 Debt-to-Equity \x3C 0.5 Low leverage
3 Return on Equity > 15% Efficient use of capital
4 Current Ratio > 1.5 Short-term liquidity
5 Operating Margin > 12% Operational efficiency
6 Asset Turnover > 0.5 Asset efficiency
7 Interest Coverage > 3x Ability to pay interest
8 Earnings Stability Positive Consistent profitability
9 Free Cash Flow > 0 Cash generation
10 Capital Allocation > 15% ROE Management effectiveness

Scoring: Each passing formula earns 1 point. Maximum score: 10/10.

Technical Indicator

Williams %R (Williams Percent Range)

  • Range: -100 to 0
  • Oversold: \x3C -80 (potential buy signal)
  • Overbought: > -20 (potential sell signal)

Combined Score Formula

Combined score = (Technical Score × 0.3) + (Fundamental Score × 0.7)

  • Technical Score: (Williams %R + 100) / 100
  • Fundamental Score: (Buffett Score / 10) × 100

Data Sources

  • US Stocks: SEC EDGAR for fundamentals, Yahoo Finance for prices
  • Thai Stocks: Yahoo Finance only (no SEC data available)

Installation

Runtime Requirements

  • Bun (>=1.3.1) - Required runtime for executing TypeScript scripts
  • Node.js is NOT required as Bun provides all necessary runtime functionality

Install Bun

If you don't have Bun installed, run:

# macOS/Linux
curl -fsSL https://bun.sh/install | bash

# Windows (PowerShell)
iwr https://bun.sh/install -outfile "install.ps1"; ./install.ps1

Install Dependencies

bun install

File Persistence

This skill creates and manages the following files:

File Location Purpose TTL
Watchlist ~/.claw-screener-watchlist.json User's stock watchlist Permanent
SEC Cache sec_cache.db Cached SEC EDGAR financial data 7 days (default)
Price Cache price_cache.db Cached stock price data 1 day (default)

Cache Management

  • Cache files are automatically created on first run
  • Use --ttl-days flag with compounding machine to adjust cache TTL
  • Cache files can be deleted to force fresh data fetch
  • Cache improves performance significantly on subsequent runs

Notes

  • First run on full US universe can take ~20-30+ minutes (expected behavior)
  • Subsequent runs are much faster due to caching
  • For quick tests, use --max-tickers 50 or specific --tickers

Bun Scripts

bun run dev              # Run screening (alias for bun run src/screening.ts)
bun run screening        # Run combined screening
bun run technical        # Run technical-only scan
bun run analyze          # Analyze a stock (requires ticker argument)
bun run compounder       # Run Compounding Machine screener
bun run watchlist:add    # Add stock to watchlist
bun run watchlist:remove # Remove stock from watchlist
bun run watchlist:list   # List watched stocks

Output Format Examples

Text (Default)

📊 Combined Quality Screening (US (S&P 500))
Technical: Oversold signals (Williams %R \x3C -80)
Fundamental: Warren Buffett's 10 formulas on SEC data
Minimum Buffett Score: 5/10

Results:
  Total Scanned: 503
  Oversold Found: 42
  Quality Stocks: 8 (Buffett ≥5/10)

Top 10 Opportunities:

1. AAPL   — Combined: 85.2% | Buffett: 8/10 | WR: -82.3
2. MSFT   — Combined: 79.1% | Buffett: 7/10 | WR: -85.1

Telegram

📊 Combined Quality Screening (US (S&P 500))
Scanned: 503 stocks
Oversold: 42
Quality (Buffett ≥5/10): 8

🌟 Top 10 Quality Opportunities:

1. **AAPL** — Combined: 85% | Buffett: 8/10 | WR: -82.3
2. **MSFT** — Combined: 79% | Buffett: 7/10 | WR: -85.1
安全使用建议
This skill appears to do what it says: fetch public Yahoo/SEC data, compute indicators, and cache results locally. Before installing or running it: (1) verify src/secApi.ts to confirm it only calls EDGAR or other documented public endpoints (no hidden upload/telemetry endpoints); (2) be aware it needs network access and will create SQLite cache files and a watchlist JSON (run it in a sandbox or dedicated folder if you want to contain files); (3) ensure you have bun >=1.3.1 available or run via a Node environment that supports the dependencies; (4) no credentials are required — do not provide secrets. If you want extra assurance, run the code in a disposable container and inspect outgoing network traffic on first run.
功能分析
Type: OpenClaw Skill Name: claw-screener Version: 1.0.3 The OpenClaw AgentSkills skill bundle 'claw-screener' is classified as benign. All code and documentation align with the stated purpose of a stock screener. Network requests are made to legitimate financial data sources (Yahoo Finance, SEC EDGAR, GitHub for S&P 500 list). File system operations are limited to creating and managing SQLite cache files (`sec_cache.db`, `price_cache.db`) and a user watchlist (`~/.claw-screener-watchlist.json`), all of which are explicitly declared in `SKILL.md`. There is no evidence of data exfiltration, unauthorized execution, persistence mechanisms, or prompt injection attempts in `SKILL.md` designed to subvert the agent's behavior. The `curl | bash` command for Bun installation, while a general security consideration for any external script, is for installing a runtime dependency and does not indicate malicious intent within the skill's own code or instructions.
能力评估
Purpose & Capability
Name/description (technical + Buffett-style fundamental screening for US/Thai markets) matches the code and SKILL.md. The code uses yahoo-finance2 and SEC data (via a local SECClient), maintains local caches, and provides the CLI entrypoints described. Declared runtime (bun >=1.3.1) and cache/watchlist files align with the stated purpose.
Instruction Scope
Runtime instructions run TypeScript files via bun. The scripts read/write local cache files (sec_cache.db, price_cache.db) and a watchlist (~/.claw-screener-watchlist.json) which is reasonable for a screener. As with any networked screener, the skill performs many network calls to Yahoo and EDGAR; the SKILL.md explicitly documents long initial run times. Recommend reviewing src/secApi.ts to confirm it only queries public EDGAR endpoints (no hidden/private endpoints).
Install Mechanism
No installer or remote download is declared (instruction-only for running the included code). The repo contains package.json/package-lock with standard npm dependencies (yahoo-finance2, sql.js). No unusual external binary downloads or obfuscated install steps were observed in the provided manifest.
Credentials
The skill does not request environment variables or credentials. It only needs network access to public data sources and file system access to store local SQLite caches and a watchlist file — proportionate to its purpose. There are no signs it requires unrelated tokens or secrets.
Persistence & Privilege
always:false and user-invocable — normal. The skill creates/updates local cache DBs (sec_cache.db, price_cache.db) and a watchlist JSON; this is expected for caching/alerts. If you prefer, run in a controlled directory or container to confine these files to a location you control.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install claw-screener
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /claw-screener 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.3
**Changelog for claw-screener v1.0.3** - Added explicit file requirements and runtime version (Bun ≥1.3.1) to SKILL.md metadata - Declared additional persisted files: `sec_cache.db` and `price_cache.db` in SKILL.md - Listed config path and described storage files in documentation - Updated installation instructions to clarify Bun as required runtime - No functional code changes—documentation and metadata improvements only
v1.0.2
**Adds "Compounding Machine" screener for long-term compounders.** - Introduced a new "Compounding Machine" tool (via `src/compoundingMachine.ts`) to screen for compounders using Carlson-style filters (ROIC, revenue/net income growth, buybacks, operating margin). - Updated documentation (README.md, SKILL.md) to describe the new feature and its command-line options. - Added guidance for expected scan runtimes and caching behavior for the compounding tool. - Updated NPM scripts to include the new "compounder" command. - No breaking changes to existing screening or watchlist functionality.
v1.0.1
- Added watchlist management: track stocks, add/remove/list, set alert thresholds, and attach notes. - Introduced new CLI (`src/watchList.ts`) and related NPM scripts for watchlist operations. - Watchlist is saved to `~/.claw-screener-watchlist.json`. - Updated documentation to include watchlist commands, usage examples, and requirements.
v1.0.0
- Initial release of claw-screener. - Combines Williams %R technical oversold screening with Warren Buffett-style fundamental analysis (10 formulas). - Supports both US (S&P 500) and Thai (SET) stock markets. - Provides combined screening, technical-only screening, and deep fundamental analysis for individual stocks. - Multiple output formats: text, JSON, and Telegram. - Includes clear CLI usage with customizable options for each screening mode.
元数据
Slug claw-screener
版本 1.0.3
许可证
累计安装 2
当前安装数 2
历史版本数 4
常见问题

Claw Screener 是什么?

Stock screener combining Williams %R oversold signals with Warren Buffett-style fundamental analysis. Supports US (S&P 500) and Thai (SET) markets. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 716 次。

如何安装 Claw Screener?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install claw-screener」即可一键安装,无需额外配置。

Claw Screener 是免费的吗?

是的,Claw Screener 完全免费(开源免费),可自由下载、安装和使用。

Claw Screener 支持哪些平台?

Claw Screener 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Claw Screener?

由 Richard Soutar(@rsoutar)开发并维护,当前版本 v1.0.3。

💬 留言讨论