kevb10 / delphi-oracle Goto Github PK
View Code? Open in Web Editor NEWStock predictor
Stock predictor
What: Report on strategy and Success / Failures
Done: Need details
When: 2 weeks (2/11/2020)
What: Things that come up or need wrapped up
Done: After an amount of time because we need to complete this iteration and then begin lining out the next iteration.
When: 2 weeks (03/10/2020)
In addition to testing against real market data, we need to create our own data for the worst and best case scenario. Compare those results against buy and hold and the S&P.
tldr; a higher value makes the model more flexible while a lower value makes it less flexible
This will have to be different for every stock.
Lines 338 to 359 in 5c95102
add .vscode, .idea, *.nohup and some others to gitignore
We have a non-commercial license
Date of issue:
License holder: Manaser Kevi
N/A
This license is valid for: Personal / Student
Backtest our portfolio or composite against its buy and hold and popular composites like the S&P.
Instead of #12 , we should just find a backtesting software and use that. Maybe in the future we can create our own.
Intrinio is has a very powerful API that has everything we need: stocks, options, fundamentals, news, etc..
It's a bit pricey compared to its competitors but it's the right kind of data.
This is it!
Fargate
Forecast
Sagemaker
API-Gateway
DynamoDB
What: Be able to automatically place a trade because you selected a strategy.
Done: Brokerage is connected to our tool. you only have to log into our tool and select the strategy and trades will be places. You will be able to determine how much money etc.
When: 2 days (01/14/2020)
Notes: need to define details of what you can define in the strategy.
What: Dev chunk 1 is done.
Done: done
When: (03/17/2020)
Currently, news aren't a part of the analysis. This info would def improve the model
This service runs after the market is closed (after 3pm) so we can include the latest daily data. We will start by running it at 7 pm and see if we need to move it a little bit earlier. So the trigger here is time.
This service screens/filters the market for potential plays according to our parameters. It will give us a list of stocks that match our strategy(ies). We persist this list in DynamoDB where it will be picked up by another service.
This function is scheduled to run at 7 am. More about cron jobs in AWS.
At a high level, this function would place buy
orders for stocks of interest. The implementation of it might be a two step one, though. Hitting DynamoDB might be an "event".
There multiple triggers:
Its only job is to close a position: either before market open (or first thing when it does), or the stop loss, or take profit trigger is hit.
close(symbol, price=market)
symbol
: the stock ticker symbol.
price
: by default, we'll close at market price.
This service is scheduled to run intra-day: between 8 am - 3:30 pm, when the market is open.
This service analyzes each position in the portfolio one by one (probably on an hourly basis). According to our strategy, we don't expect to close a position intra-day.
This group of issues is to break the work down into smaller chunks so that we can set a schedule to the project parts.
Here are notes from the meeting this content came out of on 12/10/2020
FINANCIAL APP GOALS
What already exists?
What do we still need?
Strategy + Screener + Analysis + Exit = App.
Here's a little guide that can help you play around with the notebooks:
Once you have all of that install, launch Anaconda Navigator
, and click on Jupyter
(should be the second box). It will launch a new tab and a folder tree. Go to the notebook's location (where you cloned this repo) and launch it. Hit the >>
button and voila!
I might be missing a couple of dependencies but it should tell you what you're missing anyway. Just run pip3 install <whatever it's complaining about>
.
What: A user interface that allows you to set your goals enter your data and choose a strategy.
Done: The UI lets you pick the pieces needed for a strategy. you enter your dollar amount.
When: 1 week (02/25/2020)
Note: Kevbot will try and work on this so that it is to his liking and Kevb10 has a head start.
A backtest is the application of trading strategy rules to a set of historical pricing data.
That is, if we define a set of mechanisms for entry and exit into a portfolio of assets, and apply those rules to historical pricing data of those assets, we can attempt to understand the performance of this "trading strategy" that might have been attained in the past.
We have something in place right now in a Jupyter notebook and it's good enough but some things that can be improved are:
The trading style is trend-following, for the majority of our allocations.
MA 20 == basis
A breakout happens if:
low < basis
close
> basis
close
(to date) > last month's close
If the stock closes below basis
, close position.
Those alone can get us more than 70% accuracy. It won't beat the buy and hold for a single security, but it will beat buy and hold for a portfolio. (Need further backtesting #35)
Will go in-depth later..
What: Leg work (by hand) to do back testing to test strategy before building.
Done: Strategy meets 80% effective.
When: 1 week (Dec 17th)
Part 2/2 of #33
Technically we don't add the technical analyses into the model. Instead, these would be a form of confirmation.
List of our current questions and discussions
Create a service that takes a list of company stock symbol as the input and spits out a list of potential stock plays as the output.
Kinda related to #12
Probably the first bullet point
Filter based off of the rate of change. Buy the strongest. Sell the weakest.
Create google doc for operating expenses and projections. (Based on data set and other costs)
RSI above 80, especially 90 is a has good uptrend momentum
What: The exit strategy and stop loss strategy is accounted for.
Done: When a declared goal is reached the strategy exits. When the strategy doesnt meet a certain percentage of expected it will terminate (stop loss)
When: 2 weeks (10/28/2020)
What: The strategy that has been tested with the back tester is built into the screener so that is can be automated. The strategy should be reportable. The strategy should be condensed and clear with a description so we know what it is when we create multiple in the future. Strategy should be selectable in the UI.
Done: Strategy is built into Screener.
When: 3 weeks. (01/07/2020)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.