Skip to main content

Multi-source quantitative trading toolkit for structured data retrieval and real-time trading - supports exchanges, financial data providers, and blockchain sources

Project description

quant1024

PyPI version Python versions License Downloads

A cross-exchange quantitative trading toolkit for structured data retrieval and real-time trading

跨券商跨交易所的开源量化交易工具包,支持结构化数据获取、快速连接多个交易所、实时 WebSocket/Webhook 数据推送。

Documentation: English | 中文 | 中文文档

Features

  • 🌐 Multi-Exchange Support: Unified interface for multiple exchanges

    • ✅ 1024 Exchange (Decentralized Perpetuals)
    • 🔄 Binance (Crypto Exchange)
    • 🔄 IBKR (Interactive Brokers - Traditional Finance)
    • 🔄 More exchanges coming...
  • 📊 Structured Data Retrieval: Multi-source aggregation and standardized format

    • Multi-source aggregation: Combine data from multiple exchanges/brokers
    • Historical time series: Get historical data for any trading pair
      • Klines (1m, 5m, 1h, 1d, etc.)
      • Trade history
      • Order history
      • Funding rate history
    • Multiple trading pairs: Perpetuals, Spot, Futures, Options
    • Cross-exchange data: Compare and arbitrage across exchanges
    • Standardized format: Same data structure across all sources
  • 🔌 Real-time Data Push: Live data via WebSocket and Webhook

    • WebSocket for price updates
    • Webhook callbacks for order events
    • Continuous live trading data
  • 🚀 Quick Connection: One-line code to connect any exchange

    • Auto-handled authentication
    • Unified API interface
    • Easy to switch between exchanges

Installation

Method 1: Install from PyPI (after package is published)

pip install quant1024

Method 2: Install from Git Repository

pip install git+https://github.com/yourusername/quant1024.git

Method 3: Install from Local Source

# After cloning or downloading the repository
cd quant1024

# Development mode installation (recommended for development)
pip install -e .

# Or normal installation
pip install .

Install Development Dependencies

pip install -e ".[dev]"

Quick Start

1. Create a Custom Strategy

from quant1024 import QuantStrategy

class MyStrategy(QuantStrategy):
    """Custom trading strategy"""
    
    def generate_signals(self, data):
        """Generate trading signals"""
        signals = []
        for i, price in enumerate(data):
            if i == 0:
                signals.append(0)
            elif price > data[i-1]:
                signals.append(1)   # Buy
            else:
                signals.append(-1)  # Sell
        return signals
    
    def calculate_position(self, signal, current_position):
        """Calculate position size"""
        if signal == 1:
            return 1.0  # Full position
        elif signal == -1:
            return 0.0  # No position
        else:
            return current_position

2. Run Backtest

# Create strategy instance
strategy = MyStrategy(
    name="MyFirstStrategy",
    params={"param1": "value1"}
)

# Prepare price data
prices = [100, 102, 101, 105, 103, 108, 110]

# Run backtest
result = strategy.backtest(prices)

print(result)
# Output:
# {
#     'strategy_name': 'MyFirstStrategy',
#     'total_signals': 7,
#     'buy_signals': 4,
#     'sell_signals': 2,
#     'sharpe_ratio': 0.1234
# }

3. Use Utility Functions

from quant1024 import calculate_returns, calculate_sharpe_ratio

# Calculate returns
prices = [100, 110, 105, 115]
returns = calculate_returns(prices)
print(returns)  # [0.1, -0.0454..., 0.0952...]

# Calculate Sharpe ratio
sharpe = calculate_sharpe_ratio(returns)
print(sharpe)  # 1.2345

API Documentation

QuantStrategy Abstract Base Class

All strategies must inherit from this base class and implement the following methods:

Methods

  • __init__(name: str, params: Optional[Dict[str, Any]] = None)

    • Initialize the strategy
    • name: Strategy name
    • params: Strategy parameters dictionary (optional)
  • initialize() -> None

    • Initialize the strategy (called automatically before backtesting)
  • generate_signals(data: List[float]) -> List[int] [Abstract Method]

    • Generate trading signals
    • data: List of price data
    • Returns: List of signals (1=buy, -1=sell, 0=hold)
  • calculate_position(signal: int, current_position: float) -> float [Abstract Method]

    • Calculate position size based on signal
    • signal: Trading signal
    • current_position: Current position size
    • Returns: New position size
  • backtest(data: List[float]) -> Dict[str, Any]

    • Run backtest
    • data: Historical price data
    • Returns: Backtest results dictionary

Utility Functions

  • calculate_returns(prices: List[float]) -> List[float]

    • Calculate returns series
    • prices: Price series
    • Returns: Returns series
  • calculate_sharpe_ratio(returns: List[float], risk_free_rate: float = 0.0) -> float

    • Calculate Sharpe ratio
    • returns: Returns series
    • risk_free_rate: Risk-free rate (default 0)
    • Returns: Sharpe ratio value

Documentation

For detailed guides and tutorials, please visit:

中文用户请访问 中文指南

Examples

See examples/usage_example.py for more detailed examples, including:

  • Mean reversion strategy
  • Momentum strategy
  • Utility function usage
  • Direct strategy method calls

Run the example:

cd examples
python usage_example.py

Development

Install Development Dependencies

uv pip install -e ".[dev]"

Run Tests

pytest tests/ -v

Test Coverage

pytest tests/ --cov=quant1024 --cov-report=html

Project Structure

quant1024/
├── src/quant1024/          # Source code
│   ├── __init__.py         # Package initialization
│   └── core.py             # Core functionality
├── tests/                  # Test code
│   ├── __init__.py
│   └── test_core.py        # Core functionality tests
├── examples/               # Example code
│   └── usage_example.py    # Usage examples
├── guide/                  # Documentation guides
│   ├── en/                 # English guides
│   └── zh-hans/            # Chinese guides
├── pyproject.toml          # Project configuration
├── README.md               # Project documentation (English)
├── README_zh.md            # Project documentation (Chinese)
└── LICENSE                 # License

Testing

This project includes comprehensive test cases to ensure external software can properly call the API:

  • Import Tests: Verify all public APIs can be correctly imported
  • Inheritance Tests: Verify external code can inherit from the abstract base class
  • Functionality Tests: Verify all methods work correctly
  • Integration Tests: Verify typical use cases
  • Edge Case Tests: Verify exception handling

Run tests to ensure everything works:

pytest tests/ -v

License

See the LICENSE file for license information.

Contributing

Issues and Pull Requests are welcome!

Contact

For questions or suggestions, please submit an Issue.

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

quant1024-0.3.0.tar.gz (58.6 kB view details)

Uploaded Source

Built Distribution

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

quant1024-0.3.0-py3-none-any.whl (39.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: quant1024-0.3.0.tar.gz
  • Upload date:
  • Size: 58.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for quant1024-0.3.0.tar.gz
Algorithm Hash digest
SHA256 a9531cbd590303fcf453c3673a7c40021725be206e892a7a6858bb6dd6975526
MD5 a73a6898b345905fed99509e40e92740
BLAKE2b-256 a88c994cc1df3ff16903258b1ba5a2a5a8141b0dfcf9beb6809cfb83b6c1bdd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for quant1024-0.3.0.tar.gz:

Publisher: publish-to-pypi.yml on chuci-qin/quant1024

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: quant1024-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 39.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for quant1024-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dacbcc1b3284d0860ce2fb42a21d3d0a537209226d63d94f64bdb04edaaf2e79
MD5 2daca91c02a4d2434986fba28dae3120
BLAKE2b-256 e7f306ca733c4ba86f26cb22ed0fa3ab48538871f2b71d7ade7abbb7e753ee72

See more details on using hashes here.

Provenance

The following attestation bundles were made for quant1024-0.3.0-py3-none-any.whl:

Publisher: publish-to-pypi.yml on chuci-qin/quant1024

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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