Skill: nomadrex/stock-ta-charts (version 1.0.0)

--- name: charts description: "Generate professional technical analysis charts (candlesticks, Fibonacci, SMA 20/50, RSI, pattern detection) for crypto and commodities. Use when the user asks for market charts, TA visuals, or price analysis on BTC, ETH, XRP, SUI, Gold, or Silver." --- # Skill: charts Generate professional technical analysis charts using the local `crypto_charts.py` module. ## Generate All Charts (Full Suite) Generates charts for all 6 tracked assets: BTC, ETH, XRP, SUI, Gold, Silver. **Warning:** Takes 2-3 minutes due to API rate limits between requests. ```bash cd ~/clawd && python3 -c " import json from crypto_charts import generate_all_charts, cleanup_old_charts cleanup_old_charts() report = generate_all_charts(output_dir=os.path.expanduser('~/clawd/charts')) print(json.dumps(report, indent=2, default=str)) " 2>&1 ``` Charts saved to: `~/clawd/charts/chart_btc.png`, `chart_eth.png`, etc. ## Generate Single Chart For a quick single-asset chart without waiting for the full suite: ```bash cd ~/clawd && python3 -c " import os, json from crypto_charts import ( fetch_yfinance, fetch_ohlc, fetch_market_data, calc_moving_averages, calc_rsi, calc_fibonacci, detect_patterns, generate_chart, COINS ) coin_id = 'COIN_ID' # bitcoin, ethereum, ripple, sui, gold, silver info = COINS[coin_id] # Fetch data (Yahoo Finance first, CoinGecko fallback) df = fetch_yfinance(coin_id) if df is None or len(df) < 10: df = fetch_ohlc(coin_id) if df is None or len(df) < 10: df = fetch_market_data(coin_id) if df is not None and len(df) >= 5: df = calc_moving_averages(df) df = calc_rsi(df) fib = calc_fibonacci(df) patterns = detect_patterns(df) chart_path = os.path.expanduser(f'~/clawd/charts/chart_{info[\"symbol\"].lower()}.png') generate_chart(coin_id, df, fib, chart_path) print(f'Chart: {chart_path}') print(f'Price: \${df[\"close\"].iloc[-1]:,.2f}') print(f'RSI: {df[\"rsi\"].iloc[-1]:.1f}') print('Patterns:') for p in patterns: print(f' - {p}') else: print('Not enough data to generate chart') " ``` ## Tracked Assets | coin_id | Symbol | Chart Color | Data Source | |---------|--------|------------|-------------| | bitcoin | BTC | #F7931A | Yahoo Finance → CoinGecko | | ethereum | ETH | #627EEA | Yahoo Finance → CoinGecko | | ripple | XRP | #00AAE4 | Yahoo Finance → CoinGecko | | sui | SUI | #6FBCF0 | Yahoo Finance → CoinGecko | | gold | XAU | #FFD700 | Yahoo Finance | | silver | XAG | #C0C0C0 | Yahoo Finance | ## What the Charts Include - **Candlestick bars** (green up / red down) — 90 days of daily data - **20 SMA** (blue) and **50 SMA** (gold) — trend and support/resistance - **Fibonacci retracement levels** (0%, 23.6%, 38.2%, 50%, 61.8%, 78.6%, 100%) - **RSI subplot** (purple) — with overbought (70) and oversold (30) lines - **Current price marker** — dot + horizontal line in the asset's accent color ## Pattern Detection (Automatic) The module auto-detects and reports: - SMA crossovers (Golden Cross / Death Cross) - Head & Shoulders / Inverse H&S - Fibonacci zone positioning - Trend strength (7-day momentum) - RSI condition (overbought/oversold/neutral) - Price position within 90-day range ## Sending Charts via Telegram After generating, send the chart image using Clawdbot's native `message` command: ``` message (Telegram, target="7887978276") [attach ~/clawd/charts/chart_btc.png] ``` ## Rules - Charts use 90 days of history — enough for meaningful TA - Yahoo Finance is tried first (free, reliable), CoinGecko is fallback - Rate limit: 8-second delays between coins, 20-second batch cooldowns - Always run `cleanup_old_charts()` first to avoid disk buildup - Chart images are ~150 DPI, dark theme (#0f172a background)


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)