FML - Arizona Zervas (10/10 would recommend)
Two terminals are required to run this program.
To run the frontend, first, in frontend/src/environments, create a duplicate of the file environment.prod.ts
in the same directory, but rename the duplicate to environment.ts
. Next, cd into the "frontend" directory and run ng serve
.
To run the backend, cd into the backend and run the run.py
python script with the argument "run" as such: python run.py run
. Prior to running the script, ensure that all necessary dependencies have been installed by running pip install -r requirements.txt
through pip
. Please note that this project was made to be compatible with Python 3.
Once both the frontend and backend are running, navigate to localhost:4200 on your browser (preferably Chrome) to access the app.
Using Long-Short Term Memory, we are training a model to see a large set of data of both massaged prices and other indicies.
from gen_lstm_data import gen_data
eq = 'VSLR' ## Ticker of the stock you want to look at, be sure you have added this to the data/equities folder
train_split = 0.8 ## Percent of data to use for training data, rest to test data
days = 500 ## How many days you want to be using of the data. As of now, there is no check on size, so if you put too large of a number, you may get index OB
look_back = 19 ## How many days you want to use to predict the next one. This will be the second dimension of your X data
label_range = 5 ## How many days you want to look at price change over. This will determine how the labels are calculated
verbose = False ## Prints out some shapes and other relevant things if you are curious.
X_train, y_train, X_test, y_test = gen_data(eq, train_split, days, look_back, label_range, verbose)
## X_train.shape = (days * train_split - (look_back + 1), look_back, 25)
## y_test.shape = (days * train_split - (look_back + 1), 10)
## X_test.shape = (days * (1 - train_split) - (look_back + 1), look_back, 25)
## y_test.shape = (days * (1 - train_split) - (look_back + 1), 10)
Vector | Description |
---|---|
Vector 0 | Volumes |
Vector 1 | Prices |
Vector 2 | SMA |
Vector 3 | EMA |
Vector 4 | Wilder MA |
Vector 5 | Upper Bolinger Band |
Vector 6 | Lower Bolinger Band |
Vector 7 | Accumulative Swing Index |
Vector 8 | Average True Range |
Vector 9 | Balance of Power |
Vector 10 | Gopalakrishnan Range Index |
Vector 11 | Price - Pivot Point |
Vector 12 | Pring's Know Sure Thing - SMA(Pring's Know Sure Thing) |
Vector 13 | MACD - SMA(MACD) |
Vector 14 | d KST * d TRIX |
Vector 15 | TRIX - MA(TRIX) |
Vector 16 | RSI |
Vector 17 | MA(OHLC/4, 1) |
Vector 18 | MA(OHLC/4, 3) |
Vector 19 | MA(OHLC/4, 5) |
Vector 20 | MA(OHLC/4, 7) |
Vector 21 | MA(OHLC/4, 9) |
Vector 22 | West Texas |
Vector 23 | Wilshire US Real Estate |
Vector 24 | SNP |
Label |
---|
-10% <= (p_1 - p_0)/p_0 < - 7% |
- 7% <= (p_1 - p_0)/p_0 < - 5% |
- 5% <= (p_1 - p_0)/p_0 < - 3% |
- 3% <= (p_1 - p_0)/p_0 < - 1% |
- 1% <= (p_1 - p_0)/p_0 < 1% |
1% <= (p_1 - p_0)/p_0 < 3% |
3% <= (p_1 - p_0)/p_0 < 5% |
5% <= (p_1 - p_0)/p_0 < 7% |
7% <= (p_1 - p_0)/p_0 < 9% |
9% <= (p_1 - p_0)/p_0 < 100% |
Where p_1 is the price at the predicted day and p_0 is the price at predicted day - label_range
This algorithm takes in a series of buy/sell signals from a variety of market indicators, determines how to combine these signals into an overall buy/sell signal and then compares the strength of these signals across equities.