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.6.tar.gz (298.5 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.6-py3-none-any.whl (48.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: japan_trading_agents-0.4.6.tar.gz
  • Upload date:
  • Size: 298.5 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.6.tar.gz
Algorithm Hash digest
SHA256 f82c6689a3650651983411121a6a6d6b81320a2a3b0ff1bbe4761b30ef5acb2b
MD5 b2671f76d963361a96068da43e552550
BLAKE2b-256 1f1e70978efb4147b34814774e056cdde35b8da3443ec30a40d1e4eda3c71f40

See more details on using hashes here.

File details

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

File metadata

  • Download URL: japan_trading_agents-0.4.6-py3-none-any.whl
  • Upload date:
  • Size: 48.2 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2d92be06a4febc750588d902d8bba959f446e9d87da8ac9519cfebfea61d73ff
MD5 8b115d2ef3ac6aba578617fa03ffb14b
BLAKE2b-256 7867ca8a99b96ee25fb0f6047a67acfc4593f883a2e1c452a15843bc7f19b458

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