Skip to main content

No project description provided

Project description

PLUTUS: Pair-Trading Toolkit

Python PyPI - Version License: MIT GitHub

PLUTUS is a Python-based toolkit for performing pair-trading analysis. This project is designed for educational purposes and provides tools for:

  • Fetching and processing financial data.
  • Conducting statistical tests (stationarity and cointegration).
  • Performing feature engineering.
  • Visualizing financial time-series data.

Table of Contents

Documentation

The full documentation is available on GitHub Pages.

Key Features

1. Data Acquisition

  • Fetch historical financial data using Yahoo Finance API.
  • Store and manage time-series data in a structured format.
  • Combine and preprocess data for analysis.

2. Statistical Tests

  • Stationarity Tests

    • Augmented Dickey-Fuller Test (ADF): Tests whether a time series is stationary.
    • Phillips-Perron Test (PP): Handles autocorrelations and heteroskedasticity.
    • KPSS Test: Tests for trend stationarity.
  • Cointegration Tests

    • Engle-Granger Test: Identifies long-term equilibrium relationships.
    • Phillips-Ouliaris Test: Handles residual-based cointegration testing.
    • Johansen Test: Detects multiple cointegration vectors.

3. Feature Engineering

  • Compute periodic returns (daily, weekly, monthly).
  • Apply logarithmic and exponential transformations.
  • Calculate correlation matrices and filter securities based on thresholds.
  • Identify cointegrated pairs for pair trading.

4. Data Visualization

  • Plot financial time-series data.
  • Generate dual-axis plots for comparing securities.
  • Visualize correlation matrices.
  • Plot autocorrelation and partial autocorrelation.

Installation

Install Plutus Pair-Trading Toolkit using pip:

pip install plutus-pairtrading

Note: Requires Python 3.10 or above.

Quick Start

Here’s a quick example to use PLUTUS pair-trading tookit.

  import plutus_pairtrading.data_acquisitions as dacq
  import plutus_pairtrading.data_generations as dgen
  import plutus_pairtrading.data_visualizations as dviz

  # Fetch stock data for multiple securities
  AAPL_df = dacq.fetch_yahoo_finance_data("AAPL", start_date="2015-01-01", end_date="2021-01-01")
  MSFT_df = dacq.fetch_yahoo_finance_data("MSFT", start_date="2015-01-01", end_date="2021-01-01")
  GOOG_df = dacq.fetch_yahoo_finance_data("GOOG", start_date="2015-01-01", end_date="2021-01-01")
  TSLA_df = dacq.fetch_yahoo_finance_data("TSLA", start_date="2015-01-01", end_date="2021-01-01")

  # Combine the data into a single DataFrame
  stock_df = dacq.combine_dataframes([AAPL_df, MSFT_df, GOOG_df, TSLA_df])

  # Perform pair identification
  pairs_df = dgen.pairs_identification(
      data=stock_df,
      stationarity_method="ADF",
      cointegration_method="phillips-ouliaris",
      stationarity_significance_level=0.05,
      coint_significance_level=0.05,
  )

  # Display the identified pairs
  print(pairs_df)

Contribution

We welcome contributions! Visit our Github repository, and to contribute:

  1. Fork the repository.
  2. Create a branch (git checkout -b feature/NewFeature).
  3. Commit your changes (git commit -m 'Add NewFeature').
  4. Push to the branch (git push origin feature/NewFeature).
  5. Open a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

plutus_pairtrading-1.1.0.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

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

plutus_pairtrading-1.1.0-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

Details for the file plutus_pairtrading-1.1.0.tar.gz.

File metadata

  • Download URL: plutus_pairtrading-1.1.0.tar.gz
  • Upload date:
  • Size: 18.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for plutus_pairtrading-1.1.0.tar.gz
Algorithm Hash digest
SHA256 9f563ef534c501879403616f35f8bb126a593c654b54c90a9aa405e04d63bcc6
MD5 088e8dab576cb0f3a66868fc81591133
BLAKE2b-256 bc492864d0eecd3bfcad898ff14c4a13adae5a8ab7f616dfed01c1a59b65a9f2

See more details on using hashes here.

File details

Details for the file plutus_pairtrading-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for plutus_pairtrading-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c2e2a75f8a2aad92096b662b379f5a7fe07d9d1684fe2aa9cd55faae7bf81403
MD5 cb5d0bd2a86dcd5ea221dcd61a0b0c01
BLAKE2b-256 a96fef3096d5e9405a81d67b0fcdff30de9b3fdf1abfbe114aaa7bf9e8e4850e

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