algotrade-plutus


Namealgotrade-plutus JSON
Version 0.2.5.202510rc0 PyPI version JSON
download
home_pageNone
SummaryZero-setup market data analytics with Python API, CLI, and LLM integration
upload_time2025-10-23 08:36:16
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseMIT
keywords algorithmic-trading llm market-data mcp trading vietnamese-stocks
VCS
bugtrack_url
requirements duckdb pandas pyarrow pytz fastmcp pydantic pytest build
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PLUTUS Open Source - Breaking the Barrier in Algorithmic Trading

> **Zero-Setup Market Data Analytics** with Python API, CLI, and LLM Integration

[![Python](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Tests](https://img.shields.io/badge/tests-205%20passing-brightgreen.svg)]()

PLUTUS is a data analytics framework for Vietnamese stock market with **three ways to access 21GB of historical data (2021-2022)**: Python API, command-line tools, and natural language queries through LLM integration.

---

## What is PLUTUS?

PLUTUS provides **zero-setup access** to Vietnamese market data without database installation:

- **📊 Rich Dataset**: 21GB tick & daily data from HSX, HNX, UPCOM (2000-2022)
- **🚀 Zero Setup**: Query CSV files directly using DuckDB (no database required)
- **⚡ High Performance**: Optional Parquet optimization for 10-100x faster queries
- **🔧 Triple Interface**: Python API + CLI + LLM integration (MCP)
- **🤖 AI-Powered**: Query data using natural language through Claude, Gemini, or other MCP clients
- **✅ Production Ready**: 205+ tests, comprehensive documentation

---

## Quick Start

### Installation

```bash
git clone https://github.com/algotradevn/plutus.git
cd plutus
pip install -e .
```

### Configuration

Set your dataset path (choose one method):

**Option 1: Environment Variable (Recommended)**
```bash
export HERMES_DATA_ROOT=/path/to/hermes-offline-market-data-pre-2023
```

**Option 2: Config File**
```bash
cp config.cfg.template config.cfg
# Edit config.cfg and set PLUTUS_DATA_ROOT
```

### First Query

**Python API:**
```python
from plutus.datahub import query_historical

# Get 5-minute OHLC bars
ohlc = query_historical(
    ticker_symbol='FPT',
    begin='2021-01-15',
    end='2021-01-16',
    type='ohlc',
    interval='5m'
)

for bar in ohlc:
    print(f"{bar['bar_time']}: O={bar['open']} H={bar['high']} "
          f"L={bar['low']} C={bar['close']}")
```

**CLI:**
```bash
python -m plutus.datahub \
  --ticker FPT \
  --begin 2021-01-15 \
  --end 2021-01-16 \
  --type ohlc \
  --interval 5m \
  --output fpt.csv
```

**LLM (Natural Language):**
```
> Get me FPT's 5-minute OHLC bars for January 15, 2021
```

---

## Features

### 1. DataHub Library (Python API)

Programmatic access to market data with flexible querying:

**Tick Data Queries:**
```python
from plutus.datahub import query_historical

# Get tick-level data with field selection
ticks = query_historical(
    ticker_symbol='HPG',
    begin='2021-01-15 09:00:00',
    end='2021-01-15 10:00:00',
    type='tick',
    fields=['matched_price', 'matched_volume', 'bid_price_1', 'ask_price_1']
)

for tick in ticks:
    print(f"{tick['datetime']}: {tick['matched_price']} @ {tick['matched_volume']}")
```

**OHLC Aggregation:**
```python
# Generate candlestick bars from tick data
ohlc = query_historical(
    ticker_symbol='VIC',
    begin='2021-01-15',
    end='2021-01-16',
    type='ohlc',
    interval='15m',  # 1m, 5m, 15m, 30m, 1h, 4h, 1d
    include_volume=True
)
```

**Features:**
- 40+ data fields (matched price/volume, bid/ask, foreign flows, open interest)
- 7 OHLC intervals (1m, 5m, 15m, 30m, 1h, 4h, 1d)
- Date/datetime range filtering
- Lazy iteration for memory efficiency
- DataFrame conversion via `to_dataframe()`

📖 **[Python API Documentation](examples/)**

---

### 2. DataHub CLI

Command-line interface for data export and analysis:

```bash
# Export tick data to CSV
python -m plutus.datahub \
  --ticker FPT \
  --begin "2021-01-15 09:00" \
  --end "2021-01-15 10:00" \
  --type tick \
  --fields matched_price,matched_volume \
  --output fpt_ticks.csv

# Generate OHLC bars in JSON format
python -m plutus.datahub \
  --ticker HPG \
  --begin 2021-01-15 \
  --end 2021-01-16 \
  --type ohlc \
  --interval 1m \
  --format json \
  --output hpg_1m.json

# Get query statistics before execution
python -m plutus.datahub \
  --ticker VIC \
  --begin 2021-01-01 \
  --end 2021-12-31 \
  --stats
```

**Output Formats:** CSV, JSON, table (terminal)

📖 **[CLI Usage Guide](src/plutus/datahub/docs/CLI_USAGE_GUIDE.md)**

---

### 3. MCP Server (LLM Integration)

Access market data through natural language using Claude Desktop, Gemini CLI, or other MCP-compatible LLMs.

#### What is MCP?

**Model Context Protocol (MCP)** enables LLMs to access external data sources through a standardized interface. Instead of writing code, you query data using natural language.

#### Quick Setup

**1. Start MCP Server:**
```bash
python -m plutus.mcp
```

**2. Configure Your Client:**

<details>
<summary><b>Claude Desktop</b></summary>

Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):

```json
{
  "mcpServers": {
    "plutus-datahub": {
      "command": "python",
      "args": ["-m", "plutus.mcp"],
      "env": {
        "HERMES_DATA_ROOT": "/absolute/path/to/dataset"
      }
    }
  }
}
```

Restart Claude Desktop.
</details>

<details>
<summary><b>Claude Code (VS Code)</b></summary>

```bash
claude mcp add --transport stdio plutus-datahub python -- -m plutus.mcp
```

Edit `~/.claude.json` to add `HERMES_DATA_ROOT`.
</details>

<details>
<summary><b>Gemini CLI (Google)</b></summary>

Install and configure:
```bash
npm install -g @google/gemini-cli@latest
gemini auth login

gemini mcp add plutus-datahub python -m plutus.mcp \
  -e HERMES_DATA_ROOT=/absolute/path/to/dataset \
  --description "Vietnamese market data access"
```

Test:
```bash
gemini
> @plutus-datahub Get FPT's daily OHLC for January 15, 2021
```
</details>

**3. Query with Natural Language:**

Try these queries in your MCP client:

- **Basic Data**: "Get FPT's daily OHLC data for January 2021"
- **Intraday Analysis**: "Show me VIC's 5-minute OHLC bars on Jan 15, 2021 with volume"
- **Tick Data**: "Get HPG's matched price and volume from 9am to 10am on Jan 15"
- **Comparison**: "Compare FPT and VIC performance for Q1 2021"
- **Technical Analysis**: "Calculate RSI and MACD for HPG in January 2021"
- **Anomaly Detection**: "Find unusual volume spikes for FPT in 2021"

#### MCP Features

- **4 Tools**: query_tick_data, query_ohlc_data, get_available_fields, get_query_statistics
- **4 Resources**: Dataset metadata, ticker list, field descriptions, OHLC intervals
- **5 Prompts**: Daily trends, volume analysis, ticker comparison, anomaly detection, technical indicators

#### Supported Clients

- ✅ **Claude Desktop** (macOS, Windows)
- ✅ **Claude Code** (VS Code extension)
- ✅ **Gemini CLI** (Terminal, all platforms)
- ✅ **Custom MCP Clients** (Python/TypeScript SDK)

📖 **MCP Documentation:**
- **[Quick Start Guide](src/plutus/mcp/docs/MCP_QUICKSTART.md)** - 5-minute setup
- **[Client Setup](src/plutus/mcp/docs/MCP_CLIENT_SETUP.md)** - Detailed configuration for all clients
- **[Tools Reference](src/plutus/mcp/docs/MCP_TOOLS_REFERENCE.md)** - Complete API documentation
- **[Usage Examples](src/plutus/mcp/docs/MCP_EXAMPLES.md)** - Real-world query examples

---

## Dataset

Plutus requires the **hermes-offline-market-data-pre-2023** dataset (~21GB):

- **Coverage**: 2021-2022 (2 years)
- **Exchanges**: HSX, HNX, UPCOM
- **Data Types**: Tick-level intraday + daily aggregations
- **Format**: CSV files (optionally convert to Parquet for 10-100x faster queries)

📧 **Contact [ALGOTRADE](https://algotrade.vn) for dataset access**

---

## Performance Optimization

Out of the box, Plutus queries CSV files directly (zero setup). For production use:

```bash
# Convert to Parquet (10-100x faster, 60% smaller)
python -m plutus.datahub.cli_optimize optimize --data-root /path/to/dataset
```

**Benefits:**
- 10-100x faster queries
- 60% smaller storage footprint
- Metadata caching for instant field lookups

📖 **[Performance Guide](src/plutus/datahub/docs/DATA_OPTIMIZATION_GUIDE.md)**

---

## Requirements

- **Python**: 3.12 or higher
- **Dataset**: hermes-offline-market-data-pre-2023 (21GB)
- **Dependencies**: Automatically installed via pip
  - DuckDB (query engine)
  - PyArrow (Parquet support)
  - FastMCP (MCP server)
  - Others (see `pyproject.toml`)

---

## Project Status

- **Version**: 1.0.0 (October 2025)
- **Tests**: 205/205 passing ✅
- **Production Ready**: DataHub + MCP Server

**Current Features:**
- ✅ DataHub (Python API + CLI)
- ✅ MCP Server (Claude Desktop, Gemini CLI, custom clients)
- ✅ Performance optimization (Parquet, metadata cache)
- 🚧 Trading algorithms (Framework in development)

---

## Architecture

Plutus follows the [ALGOTRADE 9-step algorithmic trading process](https://hub.algotrade.vn/knowledge-hub/steps-to-develop-a-trading-algorithm/):

1. Define trading hypothesis
2. **Data collection** ← **DataHub provides this layer** ✅
3. Data exploration
4. Signal detection
5. Portfolio management
6. Risk management
7. Backtesting
8. Optimization
9. Live trading

The **DataHub module** (production-ready) handles step 2 with three interfaces:
- Python API for programmatic access
- CLI for data export and batch processing
- MCP Server for LLM integration

Other modules are under development.

---

## Documentation

### DataHub
- **[CLI Usage Guide](src/plutus/datahub/docs/CLI_USAGE_GUIDE.md)** - Command-line examples and workflows
- **[Performance Optimization](src/plutus/datahub/docs/DATA_OPTIMIZATION_GUIDE.md)** - Parquet conversion and tuning
- **[Python Examples](examples/)** - Ready-to-run Python scripts

### MCP Server
- **[Quick Start](src/plutus/mcp/docs/MCP_QUICKSTART.md)** - 5-minute setup for Claude/Gemini
- **[Client Setup](src/plutus/mcp/docs/MCP_CLIENT_SETUP.md)** - Detailed configuration guide
- **[Tools Reference](src/plutus/mcp/docs/MCP_TOOLS_REFERENCE.md)** - Complete API documentation
- **[Usage Examples](src/plutus/mcp/docs/MCP_EXAMPLES.md)** - Query patterns and workflows
- **[Setup Scripts](scripts/README_MCP_SETUP.md)** - Server setup and integration

---

## Troubleshooting

### Dataset Not Found
```
Error: Dataset not found at: /path/to/dataset
```
**Solution**: Set `HERMES_DATA_ROOT` environment variable or edit `config.cfg`

### Import Errors
```
ModuleNotFoundError: No module named 'plutus'
```
**Solution**: Install in development mode: `pip install -e .`

### Slow Queries
**Solution**: Convert data to Parquet format (see [Performance Guide](src/plutus/datahub/docs/DATA_OPTIMIZATION_GUIDE.md))

### MCP Connection Issues
**Solution**: See [MCP Quick Start](src/plutus/mcp/docs/MCP_QUICKSTART.md#troubleshooting) for client-specific troubleshooting

---

## Contributing

This is a research project. For questions or collaboration:
- **GitHub Issues**: https://github.com/algotradevn/plutus/issues
- **Email**: andan@algotrade.vn

---

## License

MIT License - See [LICENSE](LICENSE) file for details.

---

## Author

**Dan** (andan@algotrade.vn)
[ALGOTRADE](https://algotrade.vn) - Algorithmic Trading Education & Research

---

## Acknowledgments

Built on the [ALGOTRADE 9-step methodology](https://hub.algotrade.vn/knowledge-hub/steps-to-develop-a-trading-algorithm/) for systematic algorithmic trading development.
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "algotrade-plutus",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "algorithmic-trading, llm, market-data, mcp, trading, vietnamese-stocks",
    "author": null,
    "author_email": "Dan <andan@algotrade.vn>",
    "download_url": "https://files.pythonhosted.org/packages/dd/e3/536dcdbc23c5ae1430d9c407bbcfff03ff97a8ad7b5ad90b5873ac1e5fe1/algotrade_plutus-0.2.5.202510rc0.tar.gz",
    "platform": null,
    "description": "# PLUTUS Open Source - Breaking the Barrier in Algorithmic Trading\n\n> **Zero-Setup Market Data Analytics** with Python API, CLI, and LLM Integration\n\n[![Python](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Tests](https://img.shields.io/badge/tests-205%20passing-brightgreen.svg)]()\n\nPLUTUS is a data analytics framework for Vietnamese stock market with **three ways to access 21GB of historical data (2021-2022)**: Python API, command-line tools, and natural language queries through LLM integration.\n\n---\n\n## What is PLUTUS?\n\nPLUTUS provides **zero-setup access** to Vietnamese market data without database installation:\n\n- **\ud83d\udcca Rich Dataset**: 21GB tick & daily data from HSX, HNX, UPCOM (2000-2022)\n- **\ud83d\ude80 Zero Setup**: Query CSV files directly using DuckDB (no database required)\n- **\u26a1 High Performance**: Optional Parquet optimization for 10-100x faster queries\n- **\ud83d\udd27 Triple Interface**: Python API + CLI + LLM integration (MCP)\n- **\ud83e\udd16 AI-Powered**: Query data using natural language through Claude, Gemini, or other MCP clients\n- **\u2705 Production Ready**: 205+ tests, comprehensive documentation\n\n---\n\n## Quick Start\n\n### Installation\n\n```bash\ngit clone https://github.com/algotradevn/plutus.git\ncd plutus\npip install -e .\n```\n\n### Configuration\n\nSet your dataset path (choose one method):\n\n**Option 1: Environment Variable (Recommended)**\n```bash\nexport HERMES_DATA_ROOT=/path/to/hermes-offline-market-data-pre-2023\n```\n\n**Option 2: Config File**\n```bash\ncp config.cfg.template config.cfg\n# Edit config.cfg and set PLUTUS_DATA_ROOT\n```\n\n### First Query\n\n**Python API:**\n```python\nfrom plutus.datahub import query_historical\n\n# Get 5-minute OHLC bars\nohlc = query_historical(\n    ticker_symbol='FPT',\n    begin='2021-01-15',\n    end='2021-01-16',\n    type='ohlc',\n    interval='5m'\n)\n\nfor bar in ohlc:\n    print(f\"{bar['bar_time']}: O={bar['open']} H={bar['high']} \"\n          f\"L={bar['low']} C={bar['close']}\")\n```\n\n**CLI:**\n```bash\npython -m plutus.datahub \\\n  --ticker FPT \\\n  --begin 2021-01-15 \\\n  --end 2021-01-16 \\\n  --type ohlc \\\n  --interval 5m \\\n  --output fpt.csv\n```\n\n**LLM (Natural Language):**\n```\n> Get me FPT's 5-minute OHLC bars for January 15, 2021\n```\n\n---\n\n## Features\n\n### 1. DataHub Library (Python API)\n\nProgrammatic access to market data with flexible querying:\n\n**Tick Data Queries:**\n```python\nfrom plutus.datahub import query_historical\n\n# Get tick-level data with field selection\nticks = query_historical(\n    ticker_symbol='HPG',\n    begin='2021-01-15 09:00:00',\n    end='2021-01-15 10:00:00',\n    type='tick',\n    fields=['matched_price', 'matched_volume', 'bid_price_1', 'ask_price_1']\n)\n\nfor tick in ticks:\n    print(f\"{tick['datetime']}: {tick['matched_price']} @ {tick['matched_volume']}\")\n```\n\n**OHLC Aggregation:**\n```python\n# Generate candlestick bars from tick data\nohlc = query_historical(\n    ticker_symbol='VIC',\n    begin='2021-01-15',\n    end='2021-01-16',\n    type='ohlc',\n    interval='15m',  # 1m, 5m, 15m, 30m, 1h, 4h, 1d\n    include_volume=True\n)\n```\n\n**Features:**\n- 40+ data fields (matched price/volume, bid/ask, foreign flows, open interest)\n- 7 OHLC intervals (1m, 5m, 15m, 30m, 1h, 4h, 1d)\n- Date/datetime range filtering\n- Lazy iteration for memory efficiency\n- DataFrame conversion via `to_dataframe()`\n\n\ud83d\udcd6 **[Python API Documentation](examples/)**\n\n---\n\n### 2. DataHub CLI\n\nCommand-line interface for data export and analysis:\n\n```bash\n# Export tick data to CSV\npython -m plutus.datahub \\\n  --ticker FPT \\\n  --begin \"2021-01-15 09:00\" \\\n  --end \"2021-01-15 10:00\" \\\n  --type tick \\\n  --fields matched_price,matched_volume \\\n  --output fpt_ticks.csv\n\n# Generate OHLC bars in JSON format\npython -m plutus.datahub \\\n  --ticker HPG \\\n  --begin 2021-01-15 \\\n  --end 2021-01-16 \\\n  --type ohlc \\\n  --interval 1m \\\n  --format json \\\n  --output hpg_1m.json\n\n# Get query statistics before execution\npython -m plutus.datahub \\\n  --ticker VIC \\\n  --begin 2021-01-01 \\\n  --end 2021-12-31 \\\n  --stats\n```\n\n**Output Formats:** CSV, JSON, table (terminal)\n\n\ud83d\udcd6 **[CLI Usage Guide](src/plutus/datahub/docs/CLI_USAGE_GUIDE.md)**\n\n---\n\n### 3. MCP Server (LLM Integration)\n\nAccess market data through natural language using Claude Desktop, Gemini CLI, or other MCP-compatible LLMs.\n\n#### What is MCP?\n\n**Model Context Protocol (MCP)** enables LLMs to access external data sources through a standardized interface. Instead of writing code, you query data using natural language.\n\n#### Quick Setup\n\n**1. Start MCP Server:**\n```bash\npython -m plutus.mcp\n```\n\n**2. Configure Your Client:**\n\n<details>\n<summary><b>Claude Desktop</b></summary>\n\nEdit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):\n\n```json\n{\n  \"mcpServers\": {\n    \"plutus-datahub\": {\n      \"command\": \"python\",\n      \"args\": [\"-m\", \"plutus.mcp\"],\n      \"env\": {\n        \"HERMES_DATA_ROOT\": \"/absolute/path/to/dataset\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop.\n</details>\n\n<details>\n<summary><b>Claude Code (VS Code)</b></summary>\n\n```bash\nclaude mcp add --transport stdio plutus-datahub python -- -m plutus.mcp\n```\n\nEdit `~/.claude.json` to add `HERMES_DATA_ROOT`.\n</details>\n\n<details>\n<summary><b>Gemini CLI (Google)</b></summary>\n\nInstall and configure:\n```bash\nnpm install -g @google/gemini-cli@latest\ngemini auth login\n\ngemini mcp add plutus-datahub python -m plutus.mcp \\\n  -e HERMES_DATA_ROOT=/absolute/path/to/dataset \\\n  --description \"Vietnamese market data access\"\n```\n\nTest:\n```bash\ngemini\n> @plutus-datahub Get FPT's daily OHLC for January 15, 2021\n```\n</details>\n\n**3. Query with Natural Language:**\n\nTry these queries in your MCP client:\n\n- **Basic Data**: \"Get FPT's daily OHLC data for January 2021\"\n- **Intraday Analysis**: \"Show me VIC's 5-minute OHLC bars on Jan 15, 2021 with volume\"\n- **Tick Data**: \"Get HPG's matched price and volume from 9am to 10am on Jan 15\"\n- **Comparison**: \"Compare FPT and VIC performance for Q1 2021\"\n- **Technical Analysis**: \"Calculate RSI and MACD for HPG in January 2021\"\n- **Anomaly Detection**: \"Find unusual volume spikes for FPT in 2021\"\n\n#### MCP Features\n\n- **4 Tools**: query_tick_data, query_ohlc_data, get_available_fields, get_query_statistics\n- **4 Resources**: Dataset metadata, ticker list, field descriptions, OHLC intervals\n- **5 Prompts**: Daily trends, volume analysis, ticker comparison, anomaly detection, technical indicators\n\n#### Supported Clients\n\n- \u2705 **Claude Desktop** (macOS, Windows)\n- \u2705 **Claude Code** (VS Code extension)\n- \u2705 **Gemini CLI** (Terminal, all platforms)\n- \u2705 **Custom MCP Clients** (Python/TypeScript SDK)\n\n\ud83d\udcd6 **MCP Documentation:**\n- **[Quick Start Guide](src/plutus/mcp/docs/MCP_QUICKSTART.md)** - 5-minute setup\n- **[Client Setup](src/plutus/mcp/docs/MCP_CLIENT_SETUP.md)** - Detailed configuration for all clients\n- **[Tools Reference](src/plutus/mcp/docs/MCP_TOOLS_REFERENCE.md)** - Complete API documentation\n- **[Usage Examples](src/plutus/mcp/docs/MCP_EXAMPLES.md)** - Real-world query examples\n\n---\n\n## Dataset\n\nPlutus requires the **hermes-offline-market-data-pre-2023** dataset (~21GB):\n\n- **Coverage**: 2021-2022 (2 years)\n- **Exchanges**: HSX, HNX, UPCOM\n- **Data Types**: Tick-level intraday + daily aggregations\n- **Format**: CSV files (optionally convert to Parquet for 10-100x faster queries)\n\n\ud83d\udce7 **Contact [ALGOTRADE](https://algotrade.vn) for dataset access**\n\n---\n\n## Performance Optimization\n\nOut of the box, Plutus queries CSV files directly (zero setup). For production use:\n\n```bash\n# Convert to Parquet (10-100x faster, 60% smaller)\npython -m plutus.datahub.cli_optimize optimize --data-root /path/to/dataset\n```\n\n**Benefits:**\n- 10-100x faster queries\n- 60% smaller storage footprint\n- Metadata caching for instant field lookups\n\n\ud83d\udcd6 **[Performance Guide](src/plutus/datahub/docs/DATA_OPTIMIZATION_GUIDE.md)**\n\n---\n\n## Requirements\n\n- **Python**: 3.12 or higher\n- **Dataset**: hermes-offline-market-data-pre-2023 (21GB)\n- **Dependencies**: Automatically installed via pip\n  - DuckDB (query engine)\n  - PyArrow (Parquet support)\n  - FastMCP (MCP server)\n  - Others (see `pyproject.toml`)\n\n---\n\n## Project Status\n\n- **Version**: 1.0.0 (October 2025)\n- **Tests**: 205/205 passing \u2705\n- **Production Ready**: DataHub + MCP Server\n\n**Current Features:**\n- \u2705 DataHub (Python API + CLI)\n- \u2705 MCP Server (Claude Desktop, Gemini CLI, custom clients)\n- \u2705 Performance optimization (Parquet, metadata cache)\n- \ud83d\udea7 Trading algorithms (Framework in development)\n\n---\n\n## Architecture\n\nPlutus follows the [ALGOTRADE 9-step algorithmic trading process](https://hub.algotrade.vn/knowledge-hub/steps-to-develop-a-trading-algorithm/):\n\n1. Define trading hypothesis\n2. **Data collection** \u2190 **DataHub provides this layer** \u2705\n3. Data exploration\n4. Signal detection\n5. Portfolio management\n6. Risk management\n7. Backtesting\n8. Optimization\n9. Live trading\n\nThe **DataHub module** (production-ready) handles step 2 with three interfaces:\n- Python API for programmatic access\n- CLI for data export and batch processing\n- MCP Server for LLM integration\n\nOther modules are under development.\n\n---\n\n## Documentation\n\n### DataHub\n- **[CLI Usage Guide](src/plutus/datahub/docs/CLI_USAGE_GUIDE.md)** - Command-line examples and workflows\n- **[Performance Optimization](src/plutus/datahub/docs/DATA_OPTIMIZATION_GUIDE.md)** - Parquet conversion and tuning\n- **[Python Examples](examples/)** - Ready-to-run Python scripts\n\n### MCP Server\n- **[Quick Start](src/plutus/mcp/docs/MCP_QUICKSTART.md)** - 5-minute setup for Claude/Gemini\n- **[Client Setup](src/plutus/mcp/docs/MCP_CLIENT_SETUP.md)** - Detailed configuration guide\n- **[Tools Reference](src/plutus/mcp/docs/MCP_TOOLS_REFERENCE.md)** - Complete API documentation\n- **[Usage Examples](src/plutus/mcp/docs/MCP_EXAMPLES.md)** - Query patterns and workflows\n- **[Setup Scripts](scripts/README_MCP_SETUP.md)** - Server setup and integration\n\n---\n\n## Troubleshooting\n\n### Dataset Not Found\n```\nError: Dataset not found at: /path/to/dataset\n```\n**Solution**: Set `HERMES_DATA_ROOT` environment variable or edit `config.cfg`\n\n### Import Errors\n```\nModuleNotFoundError: No module named 'plutus'\n```\n**Solution**: Install in development mode: `pip install -e .`\n\n### Slow Queries\n**Solution**: Convert data to Parquet format (see [Performance Guide](src/plutus/datahub/docs/DATA_OPTIMIZATION_GUIDE.md))\n\n### MCP Connection Issues\n**Solution**: See [MCP Quick Start](src/plutus/mcp/docs/MCP_QUICKSTART.md#troubleshooting) for client-specific troubleshooting\n\n---\n\n## Contributing\n\nThis is a research project. For questions or collaboration:\n- **GitHub Issues**: https://github.com/algotradevn/plutus/issues\n- **Email**: andan@algotrade.vn\n\n---\n\n## License\n\nMIT License - See [LICENSE](LICENSE) file for details.\n\n---\n\n## Author\n\n**Dan** (andan@algotrade.vn)\n[ALGOTRADE](https://algotrade.vn) - Algorithmic Trading Education & Research\n\n---\n\n## Acknowledgments\n\nBuilt on the [ALGOTRADE 9-step methodology](https://hub.algotrade.vn/knowledge-hub/steps-to-develop-a-trading-algorithm/) for systematic algorithmic trading development.",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Zero-setup market data analytics with Python API, CLI, and LLM integration",
    "version": "0.2.5.202510rc0",
    "project_urls": {
        "Documentation": "https://github.com/algotradevn/plutus/docs",
        "Homepage": "https://github.com/algotradevn/plutus",
        "Issues": "https://github.com/algotradevn/plutus/issues",
        "Repository": "https://github.com/algotradevn/plutus"
    },
    "split_keywords": [
        "algorithmic-trading",
        " llm",
        " market-data",
        " mcp",
        " trading",
        " vietnamese-stocks"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9ccc7f3928a52e402010d1846ace77050ce73f89a2ffdf3f214b015e13b1390b",
                "md5": "840f4c9130e8448be0450cbf3a264bb0",
                "sha256": "bac39e86a1eebc058a2bdfe4f10f25f0121310c6eb5bf4b1201494e7e616e2fa"
            },
            "downloads": -1,
            "filename": "algotrade_plutus-0.2.5.202510rc0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "840f4c9130e8448be0450cbf3a264bb0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 170469,
            "upload_time": "2025-10-23T08:36:14",
            "upload_time_iso_8601": "2025-10-23T08:36:14.877774Z",
            "url": "https://files.pythonhosted.org/packages/9c/cc/7f3928a52e402010d1846ace77050ce73f89a2ffdf3f214b015e13b1390b/algotrade_plutus-0.2.5.202510rc0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "dde3536dcdbc23c5ae1430d9c407bbcfff03ff97a8ad7b5ad90b5873ac1e5fe1",
                "md5": "af1ddae7985732a742e2cf867f726b80",
                "sha256": "873d0277d294b728a77b88bb021aefd300153d45cde88b466da1010a1a5d9872"
            },
            "downloads": -1,
            "filename": "algotrade_plutus-0.2.5.202510rc0.tar.gz",
            "has_sig": false,
            "md5_digest": "af1ddae7985732a742e2cf867f726b80",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 207950,
            "upload_time": "2025-10-23T08:36:16",
            "upload_time_iso_8601": "2025-10-23T08:36:16.368863Z",
            "url": "https://files.pythonhosted.org/packages/dd/e3/536dcdbc23c5ae1430d9c407bbcfff03ff97a8ad7b5ad90b5873ac1e5fe1/algotrade_plutus-0.2.5.202510rc0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-23 08:36:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "algotradevn",
    "github_project": "plutus",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "duckdb",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "pyarrow",
            "specs": [
                [
                    ">=",
                    "12.0.0"
                ]
            ]
        },
        {
            "name": "pytz",
            "specs": [
                [
                    ">=",
                    "2024.1"
                ]
            ]
        },
        {
            "name": "fastmcp",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "8.0.0"
                ]
            ]
        },
        {
            "name": "build",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        }
    ],
    "lcname": "algotrade-plutus"
}
        
Elapsed time: 1.24942s