Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gaborvecsei/stocks-pattern-analyzer
This tool should help discover different patterns based on similarity measures in historical (financial) data
https://github.com/gaborvecsei/stocks-pattern-analyzer
finance forecasting hacktoberfest2021 heroku restapi similarity-search stock-data stock-market stock-price-prediction stocks stocks-pattern-analyzer timeserie-indexing timeseries timeseries-analysis
Last synced: 7 days ago
JSON representation
This tool should help discover different patterns based on similarity measures in historical (financial) data
- Host: GitHub
- URL: https://github.com/gaborvecsei/stocks-pattern-analyzer
- Owner: gaborvecsei
- License: other
- Created: 2021-01-17T14:27:08.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2023-06-20T05:30:34.000Z (over 1 year ago)
- Last Synced: 2025-01-10T03:08:54.620Z (14 days ago)
- Topics: finance, forecasting, hacktoberfest2021, heroku, restapi, similarity-search, stock-data, stock-market, stock-price-prediction, stocks, stocks-pattern-analyzer, timeserie-indexing, timeseries, timeseries-analysis
- Language: Python
- Homepage:
- Size: 1.12 MB
- Stars: 234
- Watchers: 13
- Forks: 82
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Stocks Pattern Analyzer
> *As I am not a a frontend guy, the client does not look good at all on mobile devices.
This is the best I could do. Help is greatly appreciated.*## Run it locally
Include ticker symbols with the `symbols.txt` file - put each symbol here in a new line. Check `symbols.txt.example` for
an example use case.There are 2 special symbols which you can use as a shortcut
- `$SP500` to include all S&P500 symbols
- `$CURRENCY_PAIRS` to include currency pairs where the base currency is EUR### Build & Run with Docker
(Execute these in the root folder of the project)
```shell script
# Build the image
$ docker build -t stock -f docker/Dockerfile .
# Run it
$ docker run --rm --name stock -v $(pwd):/code -p 8050:8050 stock start.sh
```After this you can access it at `localhost:8050`
> *Disclaimer*: in a proper setup you would create 2 different images, on for the RestAPI and one for the Client App.
Then with a `docker-compoase.yml` you could create the services. But just like with Heroku, this is a toy and local
deployment, so I won't do fancy stuff here.### Run directly
- `python rest_api.py`
- Wait until the data creation and search model creation is done (1-2 mins)
- `python dash_app.py`
- The environment variable `$REST_API_URL` controls the connection with the RestAPI. It should be the base URL
- Enjoy :sunglasses:## Deployment to Heroku (toy deployment)
First of all, this is a mono-repo which is not ideal, but the deployment is just an example.
This is why a multi-buildpack solution is used with `heroku-community/multi-procfile`.```shell script
$ heroku create stock-restapi --remote restapi
$ heroku buildpacks:add -a stock-restapi heroku/python
$ heroku buildpacks:add -a stock-restapi -i 1 heroku-community/multi-procfile
$ heroku config:set -a stock-restapi PROCFILE=Procfile_restapi
$ git push restapi master
$
$ heroku create stock-dash-client --remote dash
$ heroku buildpacks:add -a stock-dash-client heroku/python
$ heroku buildpacks:add -a stock-dash-client -i 1 heroku-community/multi-procfile
$ heroku config:set -a stock-dash-client PROCFILE=Procfile_dash
$ heroku config:set -a stock-dash-client REST_API_URL=https://stock-restapi.herokuapp.com --> this is the URL where we can reach the RestAPI
$ git push dash master
```Heroku Files:
- `runtime.txt` describes the Python version
- `Procfile_restapi` Heroku Procfile for the RestAPI app
- `Procfile_dash` Heroku Procfile for the Dash Client app## TODOs
- Backend
- Proper logging and getting rid of `print`s
- RAM and Speed measurements for the different Search Models
- Frontend
- React frontend instead of the dash app