-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
126 lines (82 loc) · 4.41 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
Hello, this is a WIP.
main.py - Recommended, newest working version
IMPORTANT!!!
Main.py is not currently updated to support automatic paper trading. Run "run.py" to start the automated process. However, this is WIP and will likely cause a net loss.
"Run" function in main.py is for manual trading.
- 1. Finds and displays stocks sorted by predicted % gain. Prints { (percent gain), (stock ticker), (rsi), (percent of times sold for a positive value) }
- 2. Input a ticker and a full report will be presented. This includes stop loss, stop limit, estimated gain, and estimated turnover time.
Within "commands", "run (old)" is the original purpose of this application.
rsi_analysis.py analyzes % gain of stocks over the next year based on RSI ranges.
- lines 134 and 136
- line 134 is where you can set it to run on specific stocks (eg. comment out 133 + 134, add a line that says "stock_list = ['GM']"
- line 136 is where you can set your desired RSI range
min_rsi.py is similar to rsi_analysis.py, except it was configured to run with day_trade.py / paper.py
- lines 140, 150
Requirements:
yfinance, pandas, matplotlib, numpy, selenium, pyinstaller, tk
*must begin all databases containing tickers with "t_", "tickers_", or "ticker_" to be properly updated
*must begin all portfolios with "p_" or "portfolio_" to be properly updated
15.
Todo:
4. ML that reads minute by minute data to predict the next half an hour
6. Redo ml.py to predict if a stock is likely to reach 70rsi
- currently working, low accuracy at more than "likelihood to reach before 10 days"
- higher accuracy the lower the days
11. Create a website to host instead of GUI - use django, learn off coursera
14. Test multiple strategies, optimize income
- increase number of datapoints
- adjust ranking system (instead of % gain, winrate?)
- adjust moving averages
- buy stock categories; do an analysis on all categories
- choose category with highest open
15. Optimize optimize optimize
- scanning for stocks is incredibly slow
- likely api's fault, but will have to test if it's the massive calculations
- many overlaps with yfinance now that an api is working
16. Will likely have to switch to a different trading api.
Done:
1. absolute low project
- find how much holders fluctuate
- use 10 rsi, 15 rsi, 20 rsi, and 30 rsi as buy signals
- collect all necessary information at purchase date
- date, volume, rsi, moving average (maybe a ratio)
- gives information on how to set limits
3. rework portfolio system
- buy price is being overwritten
- (7/11 prices on test)
- show gain
7. complete a day trading module
- integrates absolute low project adjusted for minute by minute data
- provides stop loss and sell signals
- finds best stocks to purchase for any given day
8. completely rework/organize code
3. various bugs in main with code rework
12. Fix bug that doesn't allow for paper.py to run permanently
9. Add automatic trading (paper for now) using Alpaca
10. Separate modules in main.py (day trade and old experiment) for user choice
13. MORE DATA - can't accurately "predict" anything if I only have 30 points of data. alpha vantage?
- using tiingo
Bugs:
1. main.py two windows when clicking "load"
2. paper.py runs through all ma calculations regardless of position number on first start
Notes:
1. winrate project
- shows that 'most' stocks do not gain any more once above 70 rsi
- bought stocks showing 'bull' and 'MA Converging: False' or 'bear' and 'MA Converging: True' are very promising to be gainers
- absolute minimum may 'peak' at under 20 rsi
2. shortrate project
- still waiting on rsi values to go under
3. absolute low project
- recorded all information, found that the most optimal RSI is 45-50 (specifically 45-47.5)
- HOWEVER, found a flaw in my logic
- It only reads perfect situations, where rsi = 45 turning into rsi = 70 is guaranteed.
- NEED TO KNOW WHEN THIS OCCURS
Depreciated Ideas:
5. Probability to gain in month? (test.py, p_test2.pk)
2. winrate project
- find signals on why DDOG and ADBE kept rising above 70 rsi
*** MOVE TO NOTES
day 7:
figured that MA doesn't work until a certain time
adding trailing stop
maybe short before certain time? neeed to maximize time