agentsclimarketplace

Technical analysis

Skill kuntal-r-d/my-skills/skills/technical-analysis

Runs a DSE Technical Analysis Committee over a stock's OHLCV history and returns a weighted technical score, rating, and reasoning. Use when the user asks for technical analysis, momentum/trend read, chart signal, RSI/MACD/ADX/Bollinger/volume analysis, or "is this stock technically bullish/bearish" for a Dhaka Stock Exchange ticker.From its SKILL.md

Install
npx -y skills add kuntal-r-d/my-skills --skill technical-analysis

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

5.1 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it

Technical Analysis

Prompt-first skill. Follow the method below with your own reasoning to produce the Thinking Card. scripts/analyze.py is OPTIONAL — run it for exact indicator math, but the analysis is valid without it. The script implements exactly this method.

Role & objective

You are the Chair of a six-member DSE Technical Committee. Goal: turn a daily price history into one weighted technical score (−1..+1), a rating, and clear reasoning.

When to use

"Analyze the chart for GP", "is BEXIMCO technically bullish?", "what do RSI and MACD say?", "run technical analysis", "momentum/trend read". Pair with momentum-screen for trade setups, or feed the score into signal-synthesizer.

Inputs you need

Gather via the dse-data-acquisition skill:

  • ohlcv — daily bars, oldest-first. Need ≥30 bars; ≥200 for the full moving-average stack (else flag limited_history_<200_bars).
  • (optional) microstructurecircuit_state (limit_up/limit_down), floor_price.

If fewer than 30 bars are available, stop and say so — do not analyse a stub series.

Method — score each member in −1..+1, then weight

1. Trend (weight 0.25)

  • Price above 200-day SMA → +0.3; below → −0.3.
  • MA stack 50 > 150 > 200 → +0.3.
  • ADX(14) ≥ 25 → +0.4 if +DI ≥ −DI, else −0.4. ADX < 25 → weak/no trend (0).

2. Momentum & oscillators (weight 0.22)

  • RSI(14) 40–70 → +0.25; >70 → −0.15; <40 → −0.2.
  • MACD line above signal → +0.25; below → −0.2.
  • ROC(12) > 0 → +0.2; ≤ 0 → −0.2.
  • MFI(14) within 20–80 → +0.1.

3. Volume & flow (weight 0.20)

  • OBV slope rising (last ~10 bars) → +0.3; falling → −0.2.
  • Relative volume vs 20-day avg ≥ 1.5× → +0.3; < 0.7× → −0.1.

4. Levels (weight 0.13)

  • Distance to 60-bar support < 8% above → +0.3.
  • Within 3% of 60-bar resistance → −0.2.

5. Chart pattern (weight 0.12)

  • Price ≥ 40-bar high → +0.5 (breakout); range ratio < 0.12 → +0.1 (tight coil); price ≤ 40-bar low → −0.5.

6. Candlestick — latest bar (weight 0.08)

  • Hammer (lower wick > 2× body, up bar) → +0.4; shooting star → −0.4; bullish engulfing → +0.3.

Clamp every member to [−1, +1].

Scoring rubric

composite = 0.25·trend + 0.22·momentum + 0.20·volume + 0.13·levels + 0.12·pattern + 0.08·candlestick

Rating: ≥0.5 strong_bullish · ≥0.15 bullish · −0.15..0.15 neutral · ≤−0.15 bearish · ≤−0.5 strong_bearish.

Chair (agreement vs conflict): members >0.15 are "bulls", <−0.15 "bears". Both present → conflict_penalty 0.2 (stand-aside, not a weak buy); none decisive → 0.1; one-sided → 0.

Confidence = clamp(0.55 + 0.4·|composite| − conflict_penalty − (0.15 if <200 bars), 0.1, 0.95).

Output (emit this Thinking Card)

{ "skill": "technical-analysis", "ticker": "..", "mode": "momentum", "as_of": "..",
  "score": 0.0, "confidence": 0.0, "rating": "..",
  "sub_scores": { "trend": 0.0, "momentum_oscillator": 0.0, "chart_pattern": 0.0,
                  "candlestick": 0.0, "levels": 0.0, "volume_flow": 0.0 },
  "chair_note": "..", "key_metrics": { "rsi_14": 0, "adx_14": 0, "macd_hist": 0 },
  "reasoning": ["..."], "flags": ["..."],
  "disclaimer": "Educational analysis only. Not financial advice." }

DSE pitfalls

  • Circuit / floor price: if microstructure.circuit_state is limit_up/limit_down or floor_price is set, add flag microstructure_circuit_or_floor and treat momentum as unreliable.
  • <200 bars: flag limited_history_<200_bars and cut confidence (−0.15).
  • Thin liquidity: low relative volume weakens any breakout — don't over-weight it.

Optional precision helper

python3 scripts/analyze.py --input data.json --pretty
python3 scripts/analyze.py --input ../_fixtures/sample_input.json --pretty

Returns the same Thinking Card with exact sub_scores and key_metrics. Use it to verify your hand computation; if they disagree, trust the script's math and explain the gap.

Worked example

250 bars, price above a rising 50>150>200 stack, ADX 27 (+DI leading), RSI 58, MACD line > signal, OBV rising, volume 1.6× the 20-day average → trend ≈ +1.0, momentum ≈ +0.7, volume ≈ +0.6 → composite ≈ +0.55 → strong_bullish, confidence ≈ 0.77.

References

Formulas and DSE caveats: references/INDICATORS.md. Output is educational analysis only, never financial advice.

What ships with it: 2 files

12.4 KB alongside SKILL.md, 1 of them executable

references/

scripts/

Keep looking

Skills are one crate of 326,782. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.