Content is user-generated and unverified.

Title: I built a Claude Code skill for MetaTrader 5 trading — natural language → Python commands


What if you could describe a trade in plain English and get back a risk-validated command ready to execute on MetaTrader 5?

That's what ClaudeTrading does — a Claude Code skill that turns Claude into a fully functional MT5 trading assistant: technical analysis, lot sizing, order generation, position monitoring. All driven by natural language.

Built-in indicators: SMA, EMA, RSI, MACD, Bollinger Bands, ATR, Stochastic, ADX, Pivot Points (classic/Fibonacci/Camarilla), Support & Resistance from swing points — and now TEMA too (added live during a conversation, as shown below).

The skill (SKILL.md) instructs Claude to follow a structured flow whenever the user mentions trading: run technical analysis first, check the account, calculate lot size from risk %, present a risk summary, ask for confirmation, then generate the CLI command or JSON strategy.

Real example — TEMA/Price crossover strategy:

A user typed (in Italian, Claude handles any language) — prompt:

"voglio aprire un trade ogni volta che la tema incrocia la linea del prezzo" ("I want to open a trade every time the TEMA crosses the price line")

Claude's response:

Claude responded by implementing a tema_price_cross rule in mt5_monitor.py — adding the tema() function to the indicators module (TEMA = 3×EMA1 − 3×EMA2 + EMA3), wiring it into the monitor loop, and generating a ready-to-use config:

json
{
  "name": "TEMA/Price crossover EURUSD H1",
  "type": "tema_price_cross",
  "enabled": true,
  "symbol": "EURUSD",
  "timeframe": "H1",
  "tema_period": 20,
  "volume": 0.01,
  "sl_points": 200,
  "tp_points": 400,
  "magic": 1001,
  "close_opposite": true
}

One sentence in plain language → new indicator + monitor rule + JSON config, ready to run with --dry-run first.


What I found interesting building this:

  • The SKILL.md pattern works really well for domain-specific assistants — Claude consistently follows a multi-step decision flow without being re-prompted every time
  • Using a JSON strategy format as an intermediate representation between natural language and executable code is a clean abstraction: Claude "thinks" in JSON, the user executes it locally
  • The monitor rule engine (JSON-configured, looping, with --dry-run mode) pairs nicely with Claude generating the configs conversationally
  • Hard constraints in the skill file ("never auto-execute", "always show risk summary", "warn if SL missing") are respected reliably — useful when safety guardrails matter

The stack: Python + MetaTrader5 package + Claude Code. MT5 runs on Windows only, but the skill/architecture pattern is reusable for any local CLI tool.

Available CLI commands

GitHub: https://github.com/MichelePolo/ClaudeTrading

Curious if others are using Claude Code skills for domain-specific tooling — and whether you've found good patterns for keeping the skill file concise without losing reliability.

Content is user-generated and unverified.
    Claude Trading: AI-Powered MetaTrader 5 Assistant | Claude