Skip to main content

Multi-agent AI trading analysis for Japanese stocks — powered by the Japan Finance Data Stack

Project description

japan-trading-agents

Multi-agent AI trading analysis for Japanese stocks — powered by real government data, not just LLM reasoning.

CI PyPI License Python

What is this?

9 AI agents analyze Japanese stocks using real financial data from government and market data sources:

Agent Role Data Source
Fundamental Analyst Financial statements, DuPont analysis EDINET (有報)
Macro Analyst GDP, CPI, interest rates e-Stat + BOJ
Event Analyst Earnings, dividends, M&A TDNet (適時開示)
Sentiment Analyst News sentiment scoring Japan News RSS
Technical Analyst Price action, volume Yahoo Finance (yfinance)
Bull Researcher Builds the bullish case All analyst reports
Bear Researcher Challenges with risks All analyst reports
Trader BUY/SELL/HOLD decision Debate + analysis
Risk Manager Risk validation Final approval

How it works

jta analyze 7203  (Toyota)
      |
      v
  [Data Fetch] ── yfinance + 5 MCP sources in parallel
      |
      v
  [5 Analysts] ── Fundamental, Macro, Event, Sentiment, Technical (parallel)
      |
      v
  [Bull vs Bear Debate] ── Sequential argumentation
      |
      v
  [Trader Decision] ── BUY / SELL / HOLD with confidence
      |
      v
  [Risk Manager] ── Approve or reject with concerns

Quick Start

# Install with all data sources
pip install "japan-trading-agents[all-data]"

# Set your LLM API key
export OPENAI_API_KEY=sk-...

# Analyze a stock
jta analyze 7203

Use Any LLM

Powered by litellm — supports 100+ LLM providers:

# OpenAI
jta analyze 7203 --model gpt-4o

# Anthropic
jta analyze 7203 --model claude-sonnet-4-5-20250929

# Google
jta analyze 7203 --model gemini/gemini-2.0-flash

# Local (Ollama)
jta analyze 7203 --model ollama/llama3.2

# Any litellm-supported model
jta analyze 7203 --model deepseek/deepseek-chat

CLI Commands

# Full analysis
jta analyze 7203

# With EDINET code override
jta analyze 7203 --edinet-code E02144

# Multi-round debate
jta analyze 7203 --debate-rounds 2

# JSON output
jta analyze 7203 --json-output

# Check data sources
jta check

# MCP server mode
jta serve

Data Sources

Each data source is an independent MCP package. Install only what you need:

pip install japan-trading-agents                        # Core only
pip install "japan-trading-agents[edinet]"              # + EDINET
pip install "japan-trading-agents[all-data]"            # All 6 sources
Source Package API Key Required
Yahoo Finance (stock prices) yfinance (bundled) No
EDINET (financial statements) edinet-mcp Yes (free)
TDNet (disclosures) tdnet-disclosure-mcp No
e-Stat (government statistics) estat-mcp Yes (free)
BOJ (central bank data) boj-mcp No
News (financial news RSS) japan-news-mcp No

The system gracefully degrades — agents work with whatever sources are available.

Architecture

  • No LangChain/LangGraph — pure asyncio for orchestration
  • litellm for multi-provider LLM support (single interface, 100+ providers)
  • Pydantic models for structured agent outputs
  • Rich CLI with streaming progress
  • FastMCP server for MCP integration
  • All LLM calls are mocked in tests — no API keys needed to run tests

Part of the Japan Finance Data Stack

Layer Tool Description
Corporate Filings edinet-mcp XBRL financial statements
Disclosures tdnet-disclosure-mcp Real-time corporate disclosures
Government Statistics estat-mcp GDP, CPI, employment
Central Bank boj-mcp Interest rates, money supply
Financial News japan-news-mcp RSS news aggregation
Stock Prices yfinance Yahoo Finance (TSE coverage)
Benchmark jfinqa Japanese financial QA benchmark
Analysis japan-trading-agents Multi-agent trading analysis

See awesome-japan-finance-data for a complete list of Japanese finance data resources.

Development

git clone https://github.com/ajtgjmdjp/japan-trading-agents
cd japan-trading-agents
uv sync --extra dev
uv run pytest -v
uv run ruff check src tests
uv run mypy src

Disclaimer

This is not financial advice. For educational and research purposes only. Do not make investment decisions based on this tool's output.

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

japan_trading_agents-0.3.0.tar.gz (285.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

japan_trading_agents-0.3.0-py3-none-any.whl (38.9 kB view details)

Uploaded Python 3

File details

Details for the file japan_trading_agents-0.3.0.tar.gz.

File metadata

  • Download URL: japan_trading_agents-0.3.0.tar.gz
  • Upload date:
  • Size: 285.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for japan_trading_agents-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f9790ee245550b32320b97b8220362930ab54765d2289d1cf2a3d3cd631f2180
MD5 578f985e5034133baaea8a0dbd24b8af
BLAKE2b-256 153bfadc23115b34976b29a330e80d34cf0b476599fedd5c82045492f756d588

See more details on using hashes here.

File details

Details for the file japan_trading_agents-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: japan_trading_agents-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 38.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for japan_trading_agents-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5bae26f07df45f016ecc6097411fd2decdf259302df54b4372cf1031693b6d8a
MD5 46ee92ecdecba7ad7fd36ad412c626ea
BLAKE2b-256 1dfb1fc62ad594541012698cf7335ebce53c4ab475e5b8ee4f513509143fd216

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page