Skip to content
Back to skills

Chart Analysis

ASecurity

Analyze a chart — set up symbol/timeframe, add indicators, scroll to key dates, annotate, and screenshot. Use when the user wants technical analysis or chart review.

  • 595 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentsgoapi

Works with

  • api

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add FerroxLabs/wayland --skill chart-analysis --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Chart Analysis?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Chart Analysis
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ferroxlabs-chart-analysis/badge)](https://www.skillsdirectory.com/skills/ferroxlabs-chart-analysis)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: chart-analysis
description: Analyze a chart — set up symbol/timeframe, add indicators, scroll to key dates, annotate, and screenshot. Use when the user wants technical analysis or chart review.
---

# Chart Analysis Workflow

You are performing technical analysis on a TradingView chart.

> **Power-toolkit shortcut:** if you only need a snapshot read (state + quote + indicators + Pine graphics + OHLCV), call `chart_vision_read` once instead of stepping through `chart_get_state` → `data_get_study_values` → `data_get_pine_*` → `data_get_ohlcv`.

## Step 1: Set Up the Chart

1. `chart_set_symbol` — switch to the requested symbol
2. `chart_set_timeframe` — set the appropriate timeframe
3. Wait for the chart to load (the tool handles this)

## Step 2: Add Indicators

Use `chart_manage_indicator` to add studies. Common names (must use FULL names):
- "Relative Strength Index" (not RSI)
- "Moving Average Exponential" (not EMA)
- "Moving Average" (for SMA)
- "MACD"
- "Bollinger Bands"
- "Volume"
- "VWAP"
- "Average True Range"

After adding, use `indicator_set_inputs` to customize settings (e.g., change EMA length to 200).

## Step 3: Navigate to Key Areas

- `chart_scroll_to_date` — jump to a specific date of interest
- `chart_set_visible_range` — zoom to a specific date window
- `chart_get_visible_range` — check what's currently visible

## Step 4: Annotate

Use drawing tools to mark up the chart:
- `draw_shape` with `horizontal_line` for support/resistance
- `draw_shape` with `trend_line` for trend channels (needs two points)
- `draw_shape` with `text` for annotations

## Step 5: Capture and Analyze

1. `capture_screenshot` — screenshot the annotated chart
2. `data_get_ohlcv` — pull recent price data for quantitative analysis
3. `quote_get` — the price the **chart** currently holds, which is not the same thing as the
   live price. It reads the chart's own series, so it is only as fresh as the chart's data
   connection, and it returns `success: true` with a stale bar and no warning when that
   connection has dropped. Compare its `time` against the current bar, or read
   `tv_health_check` first and treat a `datafeed.state` of `disconnected` as "every price on
   this chart is stale". For a price that does not depend on the chart's connection, use
   `quote_batch`, which goes to TradingView's scanner API instead.
4. `symbol_info` — symbol metadata (exchange, type, session). It fails on a chart whose data
   session has dropped, because the metadata never resolved, and the error it returns says the
   TradingView API "returned an unexpected shape" and invites you to file an issue. **Do not
   file anything, and do not report the connector to the user as broken.** Verified on a live chart:
   the series and its 307 bars were both present while the symbol metadata was still null, and
   `chart_get_state` was answering normally throughout. Read `tv_health_check` and report the
   data connection, which is the actual finding.

## Step 6: Report

Provide the analysis:
- Current price and recent range
- Key support/resistance levels identified
- Indicator readings (RSI overbought/oversold, MACD crossover, etc.)
- Overall bias (bullish/bearish/neutral) with reasoning

## Cleanup

If you added indicators the user didn't ask for, remove them:
- `chart_manage_indicator` with action "remove" and the `entity_id` from `chart_get_state`
- `draw_clear` to remove all drawings if they were temporary

`chart_get_state` reports `id: null` with `addressable_by: "name"` for a study that never
finished registering with the server. That study is damage, not a quirk: it kills the pane's
data session on every reconnect. Do not try to work around the missing id — run
`tv_chart_health`, then `tv_repair_chart`, and add the study back with
`indicator_add_from_search`. `chart_get_state` also carries a `chart_health` block when the
pane it is describing is broken; read it before reporting the chart as fine.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…