Skip to main content

Predict stock prices using a deterministic algorithm inspired by LSTM, focusing on pattern recognition in historical data.

Project description

[!CAUTION]
This project is intended for educational purposes only and does not constitute financial advice. The stock price predictions generated by this software are not guaranteed to be accurate and should not be relied upon for making investment decisions. The authors of this project are not responsible for any financial losses incurred as a result of using this software.

PATTERNITY

This project focuses on predicting stock prices using a deterministic algorithm inspired by the LSTM model of deep learning. Unlike traditional statistical models, this approach leverages the power of pattern recognition to identify and repeat the most similar historical patterns in stock price data, with visualizations inspired by Google Finance charts.

Usage

python3 -m pip install patternity

Patterity comes with collector functions to get historical data of an instrument. The following example demonstrates how to predict and plot the price of Bitcoin. For stocks, you can use the get_stock function instead. The Pattern class (core) is used to predict the price of an instrument and has the following arguments.

  • history - Historical data of an instrument (required).
  • window - The minimum length of the pattern window to be considered. (optional)
  • progress - Callback function to track the progress of the prediction. Recommended for large historical data.
from patternity import Pattern, get_crypto
from rich.progress import track

if __name__ == "__main__":
    history = get_crypto("BTCUSDT", depth=200)
    pattern = Pattern(history, progress=track)
    pattern.predict()
    pattern.plot()

If everything is set up correctly, you should see a plot similar to the one below. If nothing was predicted, try on larger historical data. Also, you can change the window parameter to adjust the minimum length of the pattern to be recognized. The higher the window, the more accurate the prediction will be and longer it will take to compute.

Contribute

Any contribution is welcome. Don't hesitate to open an issue or a discussion if you have any questions not covered by the documentation. Please open a pull request if you have any ideas or suggestions on optimizing the algorithm.

License

Copyright (C) 2024 Artyom Vancyan. MIT

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

patternity-0.1.0.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

patternity-0.1.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file patternity-0.1.0.tar.gz.

File metadata

  • Download URL: patternity-0.1.0.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for patternity-0.1.0.tar.gz
Algorithm Hash digest
SHA256 51c2d55e319ff642dbbf53eb1249810635df74929dcfd0e445129bd18429395c
MD5 708095d152c6a6996f4af2facfde8602
BLAKE2b-256 e2787f19c20c81ea4da42b083b5bcb2d1322a397f607a90587b2dacc90446f34

See more details on using hashes here.

File details

Details for the file patternity-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: patternity-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for patternity-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71cf8e66bd0feb9c78e586827e29fa12b7b03f3c3bbdd14d20bc50fcbd61418e
MD5 d59e21d18f6181c22cec94eadbe60080
BLAKE2b-256 b8a0d4d6624f24cfa3804c72cf634a8ffe418b3ec0616e1041c2976eba3cfb9f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page