tradermonty/technical-analyst
This skill should be used when analyzing weekly price charts for stocks, stock indices, cryptocurrencies, or forex pairs. Use this skill when the user provides chart images and requests technical analysis, trend identification, support/resistance levels, scenario planning, or probability assessments based purely on chart data without consideration of news or fundamental factors.
npx skills add https://github.com/tradermonty/claude-trading-skills --skill technical-analyst
This skill enables comprehensive technical analysis of weekly price charts. Analyze chart images to identify trends, support and resistance levels, moving average relationships, volume patterns, and develop probabilistic scenarios for future price movement. All analysis is conducted objectively using only chart data, without influence from news, fundamentals, or market sentiment.
This skill generates markdown analysis reports saved to the reports/ directory:
[SYMBOL]_technical_analysis_[YYYY-MM-DD].mdWhen the user provides one or more weekly chart images for analysis:
Before beginning analysis, read the comprehensive technical analysis methodology:
Read: references/technical_analysis_framework.md
This reference contains detailed guidance on:
For each chart image, conduct a systematic analysis following this sequence:
For each analyzed chart, create 2-4 distinct scenarios for future price movement:
Each scenario must include:
Adjust probabilities based on strength of supporting technical factors. Ensure probabilities are realistic and sum to 100%.
For each chart analyzed, create a comprehensive markdown report using the template structure:
Read and use as template: assets/analysis_template.md
The report must include all sections:
10. Disclaimer
File Naming Convention: Save each analysis as [SYMBOL]_technical_analysis_[YYYY-MM-DD].md
Example: SPY_technical_analysis_2025-11-02.md
If multiple charts are provided:
Do not batch analyses. Complete and save each report before moving to the next chart.
Example 1: Single Chart Analysis
User: "Please analyze this weekly chart of the S&P 500"
[Provides chart image]
Analyst:
1. Confirms receipt of chart image
2. Reads technical_analysis_framework.md for methodology
3. Conducts systematic analysis (trend, S/R, MA, volume, patterns)
4. Develops 3 scenarios with probabilities (e.g., 55% bullish continuation, 30% consolidation, 15% reversal)
5. Generates comprehensive analysis report using template
6. Saves as SPY_technical_analysis_2025-11-02.md
Example 2: Multiple Chart Analysis
User: "Analyze these three charts: Bitcoin, Ethereum, and Nasdaq"
[Provides 3 chart images]
Analyst:
1. Confirms receipt of 3 charts
2. Reads technical_analysis_framework.md
3. Analyzes Bitcoin chart completely → Generates report → Saves as BTC_technical_analysis_2025-11-02.md
4. Analyzes Ethereum chart completely → Generates report → Saves as ETH_technical_analysis_2025-11-02.md
5. Analyzes Nasdaq chart completely → Generates report → Saves as NDX_technical_analysis_2025-11-02.md
6. Notifies user that all three analyses are complete
Example 3: Focused Analysis Request
User: "I'm particularly interested in whether this stock will break above resistance. Analyze the chart."
[Provides chart image]
Analyst:
1. Conducts full systematic analysis
2. Pays special attention to resistance levels and breakout probability
3. Develops scenarios with emphasis on breakout vs. rejection possibilities
4. Assigns probabilities based on volume, trend strength, and proximity to resistance
5. Generates complete report with focused scenario analysis
This is an ADDITIVE mode, separate from the pure chart-analysis workflow
above. It activates only on an explicit contrarian-confirmation request —
typically after cot-contrarian-detector (step 1) has flagged a market
crowded and, optionally, news-reaction-failure-analyzer (step 2) has
shown it failed to react to favorable news. A plain "analyze this chart"
request still runs the original workflow (Steps 1-6 above) unchanged.
Confirm whether the WEEKLY chart is showing price-action evidence that a
crowded market is reversing: a weekly key reversal, an intraweek failed
extreme, or a confirmed-then-rejected failed breakout — vetoed by a
continuation check (a new closing extreme in the crowd's direction more
recent than any signal found). See
references/contrarian-confirmation-checklist.md for the full,
word-for-word methodology shared by both chart mode and script mode.
CROWDED_LONG or CROWDED_SHORT — from the user,or from a prior cot-contrarian-detector report.
way as the existing workflow, using the strict definitions below.
scripts/check_weekly_price_action.pywhen no chart is supplied, or when an auditable, deterministic result is
wanted instead of (or alongside) a visual read.
weeks) followed by a close through the prior week's opposite level.
level (default 52 weeks) that closes back through it the same week.
extreme-lookback level, rejected (closed back through) within <=3
subsequent weeks — week_of is the FAILURE week, never the breakout
week.
strictly more recent than the newest triggered signal above, vetoes
confirmation regardless of what triggered.
with a documented fallback) supplies stop_reference — the nearest
swing high when fading a crowded LONG, the nearest swing low when
fading a crowded SHORT.
Every comparison is a STRICT inequality; window truncation is
per-evaluated-week, not per-run. Full definitions, the direction-mirror
table, worked examples, and the confidence-HIGH rule are in
references/contrarian-confirmation-checklist.md — read it before
producing a chart-mode verdict, so chart and script judge identically.
symbol: BT
direction: CROWDED_LONG
mode: data # "chart" for a Claude chart-image read
verdict: CONFIRMED | NOT_CONFIRMED | INSUFFICIENT_DATA
confidence: HIGH | MEDIUM | LOW # LOW reserved, never emitted in v1
verdict_reason: key_reversal | failed_extreme | failed_breakout |
continuation_intact | no_reversal_evidence |
insufficient_weekly_bars | no_price_source | ...
checks:
weekly_key_reversal:
{ triggered, week_of, swing_window_weeks_used,
extreme_window_weeks_used, is_full_window_extreme, detail }
failed_extreme: { triggered, attempted_level, week_of, window_weeks_used, detail }
failed_breakout: { triggered, breakout_level, week_of, window_weeks_used, detail }
continuation: { new_closing_extreme_with_crowd, week_of, window_weeks_used }
swing_levels:
nearest_swing_high: { price, week_of, fallback }
nearest_swing_low: { price, week_of, fallback }
stop_reference: 0.0
weekly_bars_used: 52
last_completed_week: 2026-07-06
handoff: # consumed by contrarian-setup-gate (#241)
price_action: { verdict, confidence, stop_reference, report_path }
run_context:
{
price_symbol,
price_source,
proxy_used,
as_of,
lookbacks,
recency,
min_weeks,
detector_json,
detector_age_days,
schema_version,
}
Invariant: checks (and swing_levels) is null whenever
verdict: INSUFFICIENT_DATA — regardless of the specific reason
(no_price_source, insufficient_weekly_bars, a detector-json refusal,
...). A downstream consumer can check verdict alone before deciding
whether checks.* is safe to read, without branching on
verdict_reason.
File naming: ta_confirmation_<SYMBOL>_<as-of>.json and
ta_confirmation_<SYMBOL>_<as-of>.md, saved to reports/.
Chart images remain the PRIMARY input, consistent with this skill's
identity. Run the script instead of (or alongside) a chart read when no
chart is supplied, or when an auditable, deterministic result is
preferred:
python3 skills/technical-analyst/scripts/check_weekly_price_action.py \
--symbol BT --direction CROWDED_LONG --as-of 2026-07-15 \
--output-dir reports/
Or resolve direction from a cot-contrarian-detector report directly:
python3 skills/technical-analyst/scripts/check_weekly_price_action.py \
--symbol BT --detector-json reports/cot_crowding_2026-07-12.json \
--as-of 2026-07-15 --output-dir reports/
The script fetches weekly-resampled OHLC via a documented futures-to-ETF
fallback chain (see the module docstring in
scripts/check_weekly_price_action.py), truncates daily bars to --as-of
BEFORE resampling (no lookahead), and fails closed to
INSUFFICIENT_DATA — never a crash — on an unreadable (missing file),
syntactically invalid, stale, or structurally malformed --detector-json,
too little price history (--min-weeks, default 30), or no usable price
source.
If both chart mode and script mode produce a result for the same
symbol/direction and their verdicts DISAGREE, the final verdict is
NOT_CONFIRMED (verdict_reason: mode_disagreement), with both
sub-results attached for review — never silently prefer one mode. If one
mode is INSUFFICIENT_DATA and the other is a clean verdict, the clean
verdict stands.
confirms step 3 of 5 (Shapiro's process). Entry and exit planning are
still manual and still required; position sizing belongs to
position-sizer / futures-position-sizer, not this mode.
INSUFFICIENT_DATA never advances the pipeline — fail-closed onevery degraded input, always exits 0 with a report written.
only activates on an explicit contrarian-confirmation request.
the Confidence section of references/contrarian-confirmation-checklist.md.
This skill includes the following bundled resources:
Comprehensive methodology for technical analysis including:
Usage: Read this file before conducting analysis to ensure systematic, objective approach.
Structured template for technical analysis reports with all required sections.
Usage: Use this template structure for every analysis report. Copy the format and populate with specific findings for each chart.
Full methodology for Contrarian Confirmation Mode (Shapiro Step 3): direction
convention, window/truncation rules, the 3 signal checks + continuation
veto, swing-level (fractal pivot) rules, verdict synthesis, confidence
rules, the output contract, a chart-mode walkthrough, and the conservative
disagreement rule.
Usage: Read this file before producing a Contrarian Confirmation Mode
verdict — chart mode and scripts/check_weekly_price_action.py must judge
identically, so the same strict definitions apply to both.
Data-driven fallback CLI for Contrarian Confirmation Mode. Fetches
weekly-resampled OHLC (documented futures-to-ETF fallback chain,
--as-of information cutoff applied before resampling), runs the 3
signal checks + continuation veto + swing-level detection, and writes
ta_confirmation_<SYMBOL>_<as-of>.json/.md to reports/.
Usage: Run when no chart image is supplied, or when an auditable,
deterministic result is wanted. See the Contrarian Confirmation Mode
section above for invocation examples.
Take tradermonty/technical-analyst from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.