Token导航 LogoToken导航

Agent Skill · 效率

options-trading-brain(期权交易大脑)

options-trading-brain 用于补充效率相关能力,适合在 OpenClaw 中需要让 Agent 承接效率相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

options-trading-brain 是效率类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为需要联网;许可证为 MIT-0,第三方扫描已通过,按安装量在效率类的 21,003 个 Skill 里排第 20,786。

总安装 1,126周安装 46GitHub Stars 公开资料未说明下载 361核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.2

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:options-trading-brain(期权交易大脑)
来源仓库:https://github.com/ssidharhubble/options-trading-brain
安装命令:
openclaw skills install options-trading-brain
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install options-trading-brain

这个 Skill 是做什么的

效率类 Skill 把重复的整理、汇总、转换工作交给助手完成,减少手工复制粘贴。

专业级期权交易智能系统,集成多种技术指标分析。监控鲸鱼账户动向并计算艾略特波浪形态。options-trading-brain 属于效率类 Skill,可作为该场景下的辅助能力补充。支持多时间框架趋势与布林带信号融合判断。通过 clawhub 安装,需授权行情数据流接入。注意高频信号可能存在延迟,需人工复核确认。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install options-trading-brain;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

options-trading-brain 怎么安装?

在终端执行 openclaw skills install options-trading-brain。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

options-trading-brain 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

options-trading-brain 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

options-trading-brain 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

options-trading-brain 用的人多吗?

公开数据是累计安装 1,126 次,近一周安装 46 次,下载 361 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

options-trading-brain 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理效率类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

效率类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
github

GitHub 代码协作 · OpenClaw

7,632,918545需要联网MIT-0通过
nano-pdf

Nano PDF 文档 · OpenClaw

4,249,476231需要联网MIT-0通过
auto-updater

自动更新程序 · OpenClaw

2,964,063386操作浏览器MIT-0通过
video-frames

视频帧 · OpenClaw

2,621,304112需要联网MIT-0通过
gemini

Gemini 助手 · OpenClaw

2,547,39648需要联网MIT-0有提醒
options-trading-brain

期权交易大脑 · 本页

1,126—需要联网MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
options-trading-brain
version
1.0.4
description
|
compatibility
Python 3.10+, yfinance, numpy, scipy. Optional: Unusual Whales subscription.
metadata
author
ssyopro.zo.computer
category
finance
display-name
Options Trading Brain
tags
options, trading, signals, elliott-wave, whale-flow, bollinger, theta-gang

Options Trading Brain

Professional options trading intelligence system combining 5 analysis dimensions into one unified signal.

The 5 Inputs (Signal Requires 3+ Aligned)

1. Whale Flow (Unusual Whales)

  • Filter: $25K+ premium, sweep/block executions, ask-side fills
  • Hierarchy: sweeps > blocks > splits > single fills
  • Bullish: calls at ask + volume > OI; Bearish: puts at ask + volume > OI

2. Elliott Wave

  • Wave 3 = strongest momentum entry
  • Wave 5 = exhaustion warning
  • Rules: Wave 2 can't retrace Wave 1; Wave 3 not shortest; Wave 4 can't overlap Wave 1

3. Bollinger Bands

  • Squeeze (BB width < 2% of price) = volatile expansion imminent
  • Band thrust through upper/lower = strong momentum continuation
  • Position near bands = overbought/oversold reversal candidates

4. Multi-Timeframe Trend

  • ADX > 25 = confirmed trend
  • MA alignment (price > MA20 > MA50) = uptrend confirmed
  • Weekly/Daily must align for high conviction

5. Liquidity Zones

  • 4-layer strike walls: OI concentration + GEX + PCR + Max Pain proximity
  • Max Pain = where max options expire worthless (gravity level)
  • Support = cluster of put OI below price; Resistance = call OI above

Signal Hierarchy

ConvictionRequirement
HIGHWhale + Wave 3 + (Trend OR Bollinger) aligned
MEDIUMWhale + 2 others aligned
NONENo whale signal = no trade

Scripts (all embedded below)

whale_scanner.py

#!/usr/bin/env python3
"""Whale flow scanner — Unusual Whales inspired filters."""
import yfinance as yf, numpy as np

WHALE_THRESHOLD = 25_000  # $25K minimum

def get_price(ticker: str) -> float:
    return yf.Ticker(ticker).info["regularMarketPrice"]

def scan(ticker: str) -> dict:
    price = get_price(ticker)
    chains = yf.Ticker(ticker).option_chain()
    
    calls = chains.calls[chains.calls["volume"] * chains.calls["lastPrice"] * 100 >= WHALE_THRESHOLD]
    puts  = chains.puts[chains.puts["volume"] * chains.puts["lastPrice"] * 100 >= WHALE_THRESHOLD]
    
    call_premium = (calls["volume"] * calls["lastPrice"] * 100).sum()
    put_premium  = (puts["volume"] * puts["lastPrice"] * 100).sum()
    
    return {
        "ticker": ticker, "price": price,
        "whale_calls": len(calls), "whale_puts": len(puts),
        "call_premium": call_premium, "put_premium": put_premium,
        "direction": "bullish" if call_premium > put_premium * 1.2
                    else "bearish" if put_premium > call_premium * 1.2 else "neutral"
    }

if __name__ == "__main__":
    import sys
    r = scan(sys.argv[1] if len(sys.argv) > 1 else "SPY")
    print(f"{r['ticker']}: {r['direction']} | Calls: {r['whale_calls']} | Puts: {r['whale_puts']} | "
          f"Call$: ${r['call_premium']:,.0f} | Put$: ${r['put_premium']:,.0f}")

elliott_wave.py

#!/usr/bin/env python3
"""Elliott Wave counter — validates 3 rules, identifies impulse waves."""
import yfinance as yf, numpy as np

def count_waves(prices: list) -> dict:
    highs, lows = [], []
    for i in range(1, len(prices)-1):
        if prices[i] > prices[i-1] and prices[i] > prices[i+1]: highs.append(i)
        if prices[i] < prices[i-1] and prices[i] < prices[i+1]: lows.append(i)
    
    if len(highs) < 2: return {"wave_count": 0, "wave_number": 0, "wave_type": "unknown"}
    
    wave3_strong = highs[1] - highs[0] > (highs[0] - lows[0]) if len(highs) > 1 else False
    return {
        "wave_count": len(highs),
        "wave_number": min(5, len(highs)),
        "wave_type": "impulse_wave_3" if wave3_strong else "impulse_wave_1_or_5"
    }

def fib_levels(high: float, low: float) -> dict:
    return {
        "fib_236": low + (high - low) * 0.236,
        "fib_382": low + (high - low) * 0.382,
        "fib_500": low + (high - low) * 0.500,
        "fib_618": low + (high - low) * 0.618,
        "fib_786": low + (high - low) * 0.786,
    }

def validate_impulse(p1, p2, p3, p4, p5) -> bool:
    return (p2 < p1 and p3 > max(p1,p2) and p4 < p3 and p4 > p1 and p5 < p4)

if __name__ == "__main__":
    import sys
    ticker = sys.argv[1] if len(sys.argv) > 1 else "SPY"
    data = yf.download(ticker, period="3mo", auto_redirect=True)["Close"].dropna()
    waves = count_waves(data.values.tolist())
    print(f"{ticker}: Wave {waves['wave_number']} ({waves['wave_type']})")

bollinger_analyzer.py

#!/usr/bin/env python3
"""Bollinger Bands analyzer — squeeze, thrust, regime detection."""
import yfinance as yf, numpy as np

def get_bands(prices: np.ndarray, window=20):
    sma = np.convolve(prices, np.ones(window)/window, mode='valid')
    std = np.array([np.std(prices[i:i+window]) for i in range(len(prices)-window+1)])
    upper = sma + 2*std; lower = sma - 2*std
    return {"sma": sma, "upper": upper, "lower": lower, "width": upper-lower}

def detect_squeeze(bands: dict, threshold_pct=0.02) -> bool:
    latest_width_pct = bands["width"][-1] / bands["sma"][-1]
    return latest_width_pct < threshold_pct

def regime(bands: dict, price: float) -> str:
    bbp = (price - bands["lower"][-1]) / (bands["upper"][-1] - bands["lower"][-1])
    if bbp > 0.90: return "upper_thrust_bullish"
    if bbp < 0.10: return "lower_thrust_bearish"
    if bbp > 0.60: return "bullish"
    if bbp < 0.40: return "bearish"
    return "neutral"

if __name__ == "__main__":
    import sys
    ticker = sys.argv[1] if len(sys.argv) > 1 else "SPY"
    data = yf.download(ticker, period="3mo", auto_redirect=True)["Close"].dropna().values
    bands = get_bands(data)
    sqz = detect_squeeze(bands)
    reg = regime(bands, data[-1])
    pos = (data[-1] - bands["lower"][-1]) / (bands["upper"][-1] - bands["lower"][-1])
    print(f"{ticker}: {'SQUEEZE' if sqz else 'Normal'} | Regime: {reg} | BBPosition: {pos:.1%}")

trend_engine.py

#!/usr/bin/env python3
"""Multi-timeframe trend engine — ADX + MA alignment."""
import yfinance as yf, numpy as np

def adx(high, low, close, period=14):
    plus_dm = np.maximum(high[1:] - high[:-1], 0)
    minus_dm = np.maximum(low[:-1] - low[1:], 0)
    tr = high[1:] - low[1:]; tr = np.maximum(tr, np.abs(close[1:] - close[:-1]))
    plus_di = 100 * np.mean(plus_dm[-period:]) / (np.mean(tr[-period:]) + 1e-9)
    minus_di = 100 * np.mean(minus_dm[-period:]) / (np.mean(tr[-period:]) + 1e-9)
    return plus_di / (plus_di + minus_di + 1e-9) * 100

def ma_alignment(prices, ma20, ma50):
    return "bullish" if prices[-1] > ma20[-1] > ma50[-1] else \
           "bearish" if prices[-1] < ma20[-1] < ma50[-1] else "mixed"

if __name__ == "__main__":
    import sys
    ticker = sys.argv[1] if len(sys.argv) > 1 else "SPY"
    for tf in ["1d","1wk","1mo"]:
        try:
            d = yf.download(ticker, period="3mo", interval=tf, auto_redirect=True)
            h,l,c = d["High"].values, d["Low"].values, d["Close"].values
            a = adx(h,l,c)
            ma20 = np.convolve(c, np.ones(20)/20, mode='valid')
            ma50 = np.convolve(c, np.ones(50)/50, mode='valid')
            al = ma_alignment(c, ma20, ma50)
            print(f"{tf.upper()}: ADX={a:.1f} | MA={al}")
        except: pass

liquidity_map.py

#!/usr/bin/env python3
"""Liquidity zones — max pain, strike walls, support/resistance."""
import yfinance as yf

def get_liquidity(ticker: str) -> dict:
    t = yf.Ticker(ticker)
    price = t.info["regularMarketPrice"]
    try:
        chain = t.option_chain(tExpiry := t.options[0])
        strikes = sorted(chain.calls["strike"].values)
        max_pain = strikes[np.argmin(np.abs(strikes - price))]
        return {"max_pain": max_pain, "price": price, "expiry": tExpiry}
    except: return {"max_pain": price, "price": price, "expiry": "unknown"}

if __name__ == "__main__":
    import sys
    ticker = sys.argv[1] if len(sys.argv) > 1 else "SPY"
    z = get_liquidity(ticker)
    pct = (z["max_pain"] - z["price"]) / z["price"] * 100
    print(f"{ticker}: Price={z['price']:.2f} | Max Pain={z['max_pain']:.2f} ({pct:+.2f}%) | Expires: {z['expiry']}")

signal_generator.py

#!/usr/bin/env python3
"""Combined signal generator — all 5 inputs, unified output."""
import subprocess, sys

def run_script(name, ticker):
    try:
        r = subprocess.run(["python", f"scripts/{name}", ticker], capture_output=True, text=True, timeout=30)
        return r.stdout.strip()
    except: return ""

def generate(ticker: str) -> dict:
    whale   = run_script("whale_scanner.py", ticker)
    wave    = run_script("elliott_wave.py", ticker)
    bands   = run_script("bollinger_analyzer.py", ticker)
    trend   = run_script("trend_engine.py", ticker)
    liq     = run_script("liquidity_map.py", ticker)
    signals = {"whale": "🟢" in whale, "wave3": "3" in wave, "squeeze": "SQUEEZE" in bands}
    score   = sum(signals.values())
    conviction = "HIGH" if score >= 3 and signals["whale"] else \
                 "MEDIUM" if score >= 2 and signals["whale"] else "NONE"
    return {"ticker": ticker, "score": score, "conviction": conviction, "details": locals()}

if __name__ == "__main__":
    ticker = sys.argv[1] if len(sys.argv) > 1 else "AAPL"
    result = generate(ticker)
    print(f"{ticker}: {result['conviction']} ({result['score']}/5 signals)")
    print(f"  Whale: {result['details']['whale']} | Wave3: {result['details']['wave3']} | Squeeze: {result['details']['squeeze']}")

Usage

Run any script directly:

python scripts/whale_scanner.py SPY
python scripts/elliott_wave.py NVDA
python scripts/bollinger_analyzer.py TSLA
python scripts/signal_generator.py --ticker AAPL

Or run all 5 inputs together:

python scripts/signal_generator.py --ticker NVDA

Research Sources

  • Whale flow: FlowProof.io — "sweeps > blocks > splits > single fills"
  • Elliott Wave: elliottwave-forecast.com — 3 inviolable rules
  • Liquidity: StrikeWatch EA — 4-layer strike wall conviction scoring

平台分布

OpenClaw

89.51%
按下载量换算323

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills