Skip to content

Commit

Permalink
Updated README with images
Browse files Browse the repository at this point in the history
  • Loading branch information
TFSM00 authored Jul 28, 2022
1 parent ffb5a23 commit 1d9c842
Showing 1 changed file with 31 additions and 10 deletions.
41 changes: 31 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,21 @@

## **Project Description**

This is a financial data science project that finds arbitrage opportunities between the NYSE, NASDAQ and London Stock Exchange. This involves looking for companies that are listed in more than one exchange and try to take advantage of price discrepancy and exchange rates by buying a stock of a company in one exchange and sell it in another one.
This is a financial data science project that finds arbitrage opportunities for GB stocks between the NYSE, NASDAQ and London Stock Exchange. This involves looking for companies that are listed in more than one exchange and try to take advantage of price discrepancy and exchange rates by buying a stock of a company in one exchange and sell it in another one.

It is a GUI-based application that uses [Financial Modeling Prep's](https://site.financialmodelingprep.com/) free financial data API.

<br>

## **Problems with Deployment**

While developing this project, the main objective was to create a single executable to make it easier for non-tech-savvy people to use it.
However, given that one of the libraries used is **Pandas**, the executable ended with a size of around 350MB, which is unreasonable for a project this simple. Many different methods were used to try and reduce its' size but none were successful.

Moreover, the use of a web-app, like most of my other projects, would be overkill and repetitive, since there is almost no interaction needed.

<br>

## **Usage**


Expand All @@ -24,29 +35,39 @@ First, to be able to use the **free API**, you need to register an account in **

<br>


### Obtaining the API Key and Preparing the Config File
### Obtaining the API Key and Running the Script
<br>

To access your API Key, you need to copy the key from this [webpage](https://site.financialmodelingprep.com/developer/docs/dashboard/). Then open the `config.py` file with Notepad or any other text editor of your choice and paste it where it says `YOUR_API_KEY_HERE`. Then, save the file.
To access your API Key, you need to copy the key from this [webpage](https://site.financialmodelingprep.com/developer/docs/dashboard/).

<br>
After this, clone this repository to your machine [here](https://github.com/TFSM00/US-GB-Arbitrage-Finder/archive/refs/heads/main.zip).

Before using the program, you need to make sure that you have the right libraries for it to work. To do this, open your command line in the directory of the repository and enter the following command: `pip install -r requirements.txt`

Finally, to use it just run the python script called `arbitrage.py` and a GUI window will appear on your screen where you should enter the API key you obtained before.

### Running the Script
<br>
<p align="center">
<img src="./images/window1.png" width="500px">
</p>

Then, submit the key and a new window will appear with the results.

Finally, to use it just run the python script and a GUI window will appear on your screen with a table like the one below.
<p align="center">
<img src="./images/window2.png" width="500px">
</p>

<br>

## **Reducing the Number of API Calls**

After you have ran the script, three new files will appear: **NYSE.csv, NASDAQ.csv and LSE.csv**. These contain data on the stocks of each of the exchanges. This data is used by the project every time it is run. The script finds how old these files are and decides if an API call is made. To reduce the amount of these calls, only one is made each day and the next time the program is ran in the same day, it uses the data gathered before.


## **Issues and Suggestions**

If you encounter an error in the program, a way to make the code run faster, any wrong application of financial formulas and concepts or just want to make a suggestion on how to make this project better, raise a new issue [here](https://github.com/TFSM00/Efficient-Frontier-Calculator/issues/new/choose).
If you encounter an error in the program, a way to make the code run faster, any wrong application of financial formulas and concepts or just want to make a suggestion on how to make this project better, raise a new issue [here](https://github.com/TFSM00/US-GB-Arbitrage-Finder/issues/new).

## 📝 **Licence**

Copyright © 2022 [Tiago Moreira](https://github.com/TFSM00).<br />
This project is [MIT](https://github.com/TFSM00/Efficient-Frontier-Calculator/blob/main/LICENSE.txt) licensed.
This project is [MIT](https://github.com/TFSM00/US-GB-Arbitrage-Finder/blob/main/LICENSE.txt) licensed.

0 comments on commit 1d9c842

Please sign in to comment.