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.4.3.tar.gz (291.0 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.4.3-py3-none-any.whl (43.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: japan_trading_agents-0.4.3.tar.gz
  • Upload date:
  • Size: 291.0 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.4.3.tar.gz
Algorithm Hash digest
SHA256 e018619a5dae40302db0cb9cb7e184c741ffcea73d8055021a48dc8fa5421e8a
MD5 20af456c47216c037f917ba06cef027a
BLAKE2b-256 ba1dc915f5cc6ac3b9671c75c3f8c33f5dc584a8251500b0d572adceb0d047ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: japan_trading_agents-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 43.7 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.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d49c7cd4aaeb44a0cd61dc2540b3f41f87b6006e28de06a5019b88f16a0262c0
MD5 003e88834b01bba407988ff4f5a4da0e
BLAKE2b-256 3c7bb4bad4d92d11efbd28f520d3d79e4ded35a6de9c2e78e9a66589bafda862

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