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-0.0.3.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-0.0.3-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: plutus_pairtrading-0.0.3.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-0.0.3.tar.gz
Algorithm Hash digest
SHA256 3f2fa93e19f477c441a4838adc859906982e0f9d6bbefe93bb8408b499aad47e
MD5 d0babd6509e1345199e29d616bff1488
BLAKE2b-256 ea0e381b77ffc5561d780307cc32150dbdf31befb6f5a774b2f8f04a5748982d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for plutus_pairtrading-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2e42eb8f74479a64ddab61d943fb5816224b3cccc083f2121a17be9bed2e06f4
MD5 345c190f43d21ea1da9b2232ecc3d6ac
BLAKE2b-256 50fcbf2070766570162fb2b1b75978bd7d64e838056333b8f00c33e62efa49e9

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