Skip to main content

No project description provided

Project description

PLUTUS: Pair-Trading Toolkit

Python PyPI - Version PyPI Downloads 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.0.0.tar.gz (17.4 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.0.0-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: plutus_pairtrading-1.0.0.tar.gz
  • Upload date:
  • Size: 17.4 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.0.0.tar.gz
Algorithm Hash digest
SHA256 3159648e6d40575da59a2fcfed3f79f48555e13a0e224869ab5c903a6607938f
MD5 3ecdf7e7af159d73a811beb774ba4852
BLAKE2b-256 52573e83f1fb2f58d7188eaa91dbd280c86acd0ec11b4f827e9f5206541bba2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for plutus_pairtrading-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3f6e5cafd5d7271ac8842a585d8a1a255fb0a77defab4f3867ec24d43397607d
MD5 720058039da4df518265cf216f6de0d3
BLAKE2b-256 91f014d86d9c754d3a7a76e8335c911abdf9917bc23562de9ebaeae756a9cee7

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