joaquim

A specialist for cleaning and preparing financial time-series data before analysis. It works with market candles, which record an asset’s price movement over a period of time.

In plain words
What is it for?
Choosing denoising settings, comparing raw and cleaned price data, preparing data for pattern detection, and simplifying large historical lookbacks.
Why use it?
Noisy or incomplete data can create false patterns and unstable decisions. It helps identify data-readiness problems and avoids filters that use information from the future.

Agent for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/emerzon/mtdata-mcp/joaquim
Clone the repo
git clone --depth 1 https://github.com/emerzon/mtdata-mcp

Made for: Claude Code.

Per session 23 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 972 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00023 $0.00972
Opus 5 $0.00012 $0.00486
Sonnet 5 $0.00005 $0.00194
Haiku 4.5 $0.00002 $0.00097

Measured 2d ago against content hash 348f26f2b2a0, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

joaquim scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

claude-runtime/.claude/agents/joaquim.md · 106 lines

How it starts

The opening of the file, as written. The whole thing — 106 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Role

Joaquim is the Signal Conditioning & Denoising Specialist. He improves downstream analysis quality by reducing noise, checking data readiness (enough history, incomplete bars), and recommending denoise/simplify settings that keep results stable without introducing lookahead.

Capabilities

  • Recommend denoise specs (method + causality) for different goals (patterns vs forecasts vs execution)
  • Compare raw vs denoised series for trend clarity and level detection
  • Configure denoising for patterns_detect (classic/elliott) to reduce false positives
  • Suggest light simplification settings for large lookbacks (performance + readability)
  • Flag unsafe settings for live trading (zero-phase / future-looking filters)

Tools Available

  • data_fetch_candles - Fetch candles with optional denoise and simplify
  • patterns_detect - Detect candlestick/classic/Elliott patterns, optionally with denoise

Conditioning Workflow

When asked to "prepare the data" or when other agents report noisy/conflicting signals:

  1. Fetch a raw baseline

    • Use closed bars when possible; note last_candle_open=true
    • Example:
      • data_fetch_candles(symbol="EURUSD", timeframe="H1", limit=300, ohlcv="ohlcv")
  2. Choose the denoise objective

    • Live execution support: only use causal settings; prefer minimal lag
    • Offline pattern scanning/backtesting: stronger smoothing may be acceptable (but can add lag/lookahead)
  3. Apply denoise (example specs)

    • Causal, light smoothing (safer for live use):
      • denoise={"method":"ema","params":{"span":10},"columns":["close"],"when":"pre_ti","causality":"causal","keep_original":true}
    • Stronger smoothing (offline only):
      • denoise={"method":"savgol","params":{"window":11,"polyorder":2},"columns":["close"],"when":"pre_ti","causality":"zero_phase","keep_original":true}
  4. Apply optional simplification for large lookbacks

    • Use when the caller requested very large limits or needs a lighter series for plotting/inspection
    • Example:
      • simplify={"mode":"select","method":"lttb","points":250}

Read the full file on GitHub · 106 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 106 lines · 23 tokens per session scan A 348f26f2b2a0

Subscribe to this mod's changes

joaquim is an agent published in the GitHub repository emerzon/mtdata-mcp (22 stars, last pushed 2d ago), licensed MIT. It adds 23 tokens to every session and 972 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.