6 |
7 | ***Link video demo project*** [Click here!!!](https:////youtu.be/dJPBohy9x44)
8 |
9 | ## Introduction
10 |
11 | Long - Short Term Memory (LSTM) is a good algorithm for predicting stock prices. By the way use prices of past we can predict the prices of present and future.
12 |
13 |
14 |
15 | Long - Short Term Memory networks, commonly known as LSTMs, are a special type of RNN that also handle ordered sequence data well, but LSTMs are resistant to vanishing gradients from which to learn dependencies. far.
16 |
17 |
18 | Image 1: LSTM network
19 |
20 |
21 | - Input: $C t-1 , h t-1 , x t$ . Where x t is the input in the tth state of the model. $C t-1 , h t-1$ are the output of the previous layer.
22 |
23 | - Output: $ C t , h$ t , we call c cell state, h is hidden state. K sign: σ, tanh means that step uses sigmoid, tanh activation function. The multiplication here is element-wise multiplication, the addition is matrix addition. Where: $ f t , i t , O t$ corresponding to forget gate, input gate and output gate.
24 | - Forget gate: $f t = σ(U f * x f + W f * h t -1 + b f )$
25 | - Input gate: $i t = σ(U i * x t +W i * h t-1 + b i )$
26 | - Output gate: $o t = σ (U o * x t + W o * h t-1 + b o )$
27 |
28 | ## Explanation of the LSTM algorithm
29 |
30 | - The LSTM network is an improvement of the traditional regression network, so the model has the following new points:
31 |
32 |
33 |
34 | Image 2: Cell state
35 |
36 | Cell state is the horizontal line that runs through the top of the diagram, like a carousel , the memory of an LSTM network . It runs through the entire chain, with only a small linear number of interactions LSTMs are capable of removing or adding information to the cell state, which is carefully regulated by structures called gates.
37 | Portals are an optional way to pass information. They use sigmoid and tanh activation functions. An LSTM has three ports, for protection and control of cell state.
38 |
39 | ### a. Forget gate:
40 |
41 |
42 |
43 | Image 3: Forget gate
44 |
45 | - Forget gate : t does not pass through the sigmod layer to make informed decisions about whether to enter the cell state. h value t-1 and x t passing through the sigmod class yields a value between 0 and 1 for each cell state.
46 |
47 | - The sigmoid class outputs numbers from 0 to 1, describing the throughput of each component. A value of 0 means "nothing through", while a value of one means "let everything pass!"
48 |
49 |
50 |
51 | ### b. Input gate:
52 |
53 |
54 |
55 | Image 4: Input gate
56 |
57 | - Input gate : q determines the new information to be stored in the cell state. Consists of two parts: The sigmod class that decides which values are updated and a tanh class that holds new values that can be added to the cell state .
58 |
59 |
60 |
61 |
62 | - Finally combine the above two to create a new value to update the cell state.
63 |
64 |
65 |
66 |
67 | - Next we update the old cell state C t-1 with C t . Multiply f t forget information to forget and add new values
68 |
69 |
70 |
71 | ### c. Output gate:
72 |
73 |
74 |
75 | Image 5: Output gate
76 |
77 | - Output gate: q decides what information will be approved. First, we run a sigmoid class, which determines what part of the cell state we should output. Then we set the cell state via tanh function (push the value to range from -1 to 1).
78 |
79 |
80 |
81 |
82 | - Finally multiply by the output of the sigmoid gate to get the necessary information.
83 |
84 |
85 |
86 |
87 | ## Application to stock prediction problem
88 |
89 | ### 1. Get data
90 |
91 | - Data is downloaded from yahoo finance
92 | - From the downloaded dataset we extract the data field that we will use to train
93 | - After getting the required data, we divide the data into 2 datasets: Data_train and Data_test
94 | + Data_train will be used by us in training to create Model
95 | + Data_test will be used in evaluating Model
96 |
97 |
98 |
99 | Image 1: Data
100 |
101 | - The dataset is taken from the finance.yahoo.com package . The information about the stock exchange from March 8, 2010 to October 31, 2021 includes 2795 lines and 7 columns. Data fields:
102 |
103 |
104 |
105 |
106 | Image 2: Data Netflix stock
107 |
108 | ### 2. Data processing
109 |
110 | - Here, we use the MinMaxScaler function of scikit learn library and scale the data set to numbers in the range (0, 1) to put into the neural network.
111 |
112 | ### 3. Building LSTM neuron model
113 |
114 | - As a first step, we need to instantiate the Sequential class. Sequential is a model where layers are stacked linearly
115 | The model class of the problem includes the LSTM, Dropout, and Dense classes .
116 | Above we add 3 consecutive LSTM layers, and every 1 layer is 1 dropout 0.3 . Finally, we pass a Dense layer with 1-dimensional output.
117 |
118 |
119 |
120 |
121 | Image 3: LSTM neural network
122 |
123 | ### 4. Experimental results:
124 |
125 | - Accuracy of the model on stock Facebook account:
126 |
127 |
128 |
129 | Image 4: The chart shows the predicted and actual Facebook shares in the period of 2020 - 2021
130 |
131 | + MSE = 47.55213519067378
132 | + MAE = 5.282921711782391
133 | + Max = 23.76751708984375
134 | + M in = 0.061798095703125
135 |
136 | The value of Facebook votes tends to increase, from the chart above we can see that the prediction line matches the actual line, the average sum of squares is about 47.55 , the average price difference is low at dollar 5.28 , the price difference is high. approx. 23.7 7 dollar, lowest 0.06 dollar
137 | => Good predictive model.
138 |
139 | ## The flow of website
140 |
141 | ### 1. User interface
142 |
143 |
144 |
145 |
146 | Image 1: User interface
147 |
148 | ### __2. Select: __Stocks__, __Field stocks
149 |
150 | - To predict price stock you need to input the name of stock and the number of days you want to predict
151 |
152 |
153 |
154 | Image 2: Select stocks and field stocks
155 |
156 | - At here if we don't have stock you want, we can add it by clicking the button "Another stock" and input file csv of stock.
157 | - Tips: If your stock is new one, you can choose stock already on the market but similar with your stock.
158 |
159 | ### 3. Choose day to predict: DayBegin, DayEnd
160 |
161 |
162 |
163 | Image 3: Select stocks and field stocks
164 |
165 | ### 4. Predict stock price
166 |
167 | - Output: Stock price in future
168 |
169 | This train live with data of historical stock prices. So time to predict quite long.
170 |
171 |
172 |
173 | Image 4: Predict stock price
174 |
175 |
188 |
189 |
190 |
191 | run web in terminal
192 |
193 |
Conclusion and comments
194 |
195 | - After running the experiment for each stock code, the model gives results with different accuracy. Details for stock code Amazon, Google , T esla : actual price and predicted price are different. Many prediction models are not good, affecting the quality of the transaction, but can predict the up or down trend of stocks. promissory note. As for the code Facebook and Apple , the predicted price is quite similar to the actual price .
196 |
197 | - However, in reality, the stock market depends not only on numbers but also on political factors, domestic and global economic contexts, unexpected shocks (Covid-19 and natural disasters). disaster, crop failure,...), the company's financial performance, etc.
198 |
199 | - In addition, the prediction accuracy is still lacking because the LSTM network still has many disadvantages such as: Information must be processed sequentially, only learning information from previous states, cannot learn information. distant due to vanishing gradient.
200 |
201 | - Ways to improve and develop direction : add data, add features ( Quarterly profit , Income from service activities, Other operating expenses, General and administrative expenses, ...). Research using algorithms to overcome the disadvantages of LSTM networks .
202 |
203 |
References
204 |
205 |
206 | 1.https://en.wikipedia.org/wiki/Average_Average_Number_Available
207 | Accessed December 20, 2021 Wikipedia
208 | 2. https://ndquy.github.io/posts/cac-phuong-phap-scaling/
209 | accessed on December 28, 2021 ndquy blog
210 | 3. https://medium.com/analytics-vidhya/long-short-term-memory-networks-23119598b66b
211 | accessed on December 28, 2021 Author Vinithavn – medium.com
212 | 4. https://medium.com/@asmello/introduction-to-model-evaluation-part-1-regression-and-classification-metrics-e75179d01db
213 | accessed on December 28, 2021 Author André Mello – medium.com
214 | 5. https://nttuan8.com/bai-14-long-short-term-memory-lstm/
215 | accessed on 1/12/2021 Author Nguyen Thanh Tuan
216 | 6. https://nttuan8.com/bai-13-recurrent-neural-network/
217 | accessed on 1/12/2021 Author Nguyen Thanh Tuan
218 | 7. https://www.kaggle.com/towarddatascience/sample-code?fbclid=IwAR3St8P2IhS6r18Oso18_PYLObLjH03lIUYoFusasFMR0tOKHM4_i0xv2As
219 | accessed 12/27/2021 – Kaggle
220 | 8. https://viblo.asia/p/optimizer-hieu-sau-ve-cac-thuat-toan-toi-uu-gdsgdadam-Qbq5QQ9E5D8
221 | accessed on December 27, 2021 – Author Tran Trung Truc
222 | 9. https://streamlit.io
223 | accessed 12/15/2021 – Streamlit
224 | 10. https://blog.mlreview.com/understanding-lstm-and-its-diagrams-37e2f46f1714
225 | accessed 12/15/2021 – Author Shi Yan
226 | 11. https://stanford.edu/~shervine/l/en/teaching/cs-230/cheatsheet-recurrent-neural-networks
227 | accessed 12/15/2021 - Author Shervine Amidi
228 | 12. https://medium.datadriveninvestor.com/how-do-lstm-networks-solve-the-problem-of-vanishing-gradients-a6784971a577
229 | accessed 12/15/2021 - Author Nir Arbel
230 | 13. https://dominhhai.github.io/vi/2018/04/nn-bp
231 | accessed 11/28/2021- Hai's Blog
232 |
233 |
234 | # License
235 |
236 | Any questions? Feel free to contact me at: vothuongtruongnhon2002@gmail.com
237 |
238 | # Author
239 |
240 | [Võ Thương Trường Nhơn](https://github.com/truongnhon-hutech)
241 |
242 | [Phạm Đức Tài](https://github.com/tai121)
243 |
244 | Nguyễn Hồng Thái
245 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode,python,jupyternotebooks,visualstudio
2 | # Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode,python,jupyternotebooks,visualstudio
3 |
4 | ### JupyterNotebooks ###
5 | # gitignore template for Jupyter Notebooks
6 | # website: http://jupyter.org/
7 |
8 | .ipynb_checkpoints
9 | */.ipynb_checkpoints/*
10 |
11 | # IPython
12 | profile_default/
13 | ipython_config.py
14 |
15 | # Remove previous ipynb_checkpoints
16 | # git rm -r .ipynb_checkpoints/
17 |
18 | ### Python ###
19 | # Byte-compiled / optimized / DLL files
20 | __pycache__/
21 | *.py[cod]
22 | *$py.class
23 |
24 | # C extensions
25 | *.so
26 |
27 | # Distribution / packaging
28 | .Python
29 | build/
30 | develop-eggs/
31 | dist/
32 | downloads/
33 | eggs/
34 | .eggs/
35 | lib/
36 | lib64/
37 | parts/
38 | sdist/
39 | var/
40 | wheels/
41 | share/python-wheels/
42 | *.egg-info/
43 | .installed.cfg
44 | *.egg
45 | MANIFEST
46 |
47 | # PyInstaller
48 | # Usually these files are written by a python script from a template
49 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
50 | *.manifest
51 | *.spec
52 |
53 | # Installer logs
54 | pip-log.txt
55 | pip-delete-this-directory.txt
56 |
57 | # Unit test / coverage reports
58 | htmlcov/
59 | .tox/
60 | .nox/
61 | .coverage
62 | .coverage.*
63 | .cache
64 | nosetests.xml
65 | coverage.xml
66 | *.cover
67 | *.py,cover
68 | .hypothesis/
69 | .pytest_cache/
70 | cover/
71 |
72 | # Translations
73 | *.mo
74 | *.pot
75 |
76 | # Django stuff:
77 | *.log
78 | local_settings.py
79 | db.sqlite3
80 | db.sqlite3-journal
81 |
82 | # Flask stuff:
83 | instance/
84 | .webassets-cache
85 |
86 | # Scrapy stuff:
87 | .scrapy
88 |
89 | # Sphinx documentation
90 | docs/_build/
91 |
92 | # PyBuilder
93 | .pybuilder/
94 | target/
95 |
96 | # Jupyter Notebook
97 |
98 | # IPython
99 |
100 | # pyenv
101 | # For a library or package, you might want to ignore these files since the code is
102 | # intended to run in multiple environments; otherwise, check them in:
103 | # .python-version
104 |
105 | # pipenv
106 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
107 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
108 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
109 | # install all needed dependencies.
110 | #Pipfile.lock
111 |
112 | # poetry
113 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
114 | # This is especially recommended for binary packages to ensure reproducibility, and is more
115 | # commonly ignored for libraries.
116 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
117 | #poetry.lock
118 |
119 | # pdm
120 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
121 | #pdm.lock
122 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
123 | # in version control.
124 | # https://pdm.fming.dev/#use-with-ide
125 | .pdm.toml
126 |
127 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
128 | __pypackages__/
129 |
130 | # Celery stuff
131 | celerybeat-schedule
132 | celerybeat.pid
133 |
134 | # SageMath parsed files
135 | *.sage.py
136 |
137 | # Environments
138 | .env
139 | .venv
140 | env/
141 | venv/
142 | ENV/
143 | env.bak/
144 | venv.bak/
145 |
146 | # Spyder project settings
147 | .spyderproject
148 | .spyproject
149 |
150 | # Rope project settings
151 | .ropeproject
152 |
153 | # mkdocs documentation
154 | /site
155 |
156 | # mypy
157 | .mypy_cache/
158 | .dmypy.json
159 | dmypy.json
160 |
161 | # Pyre type checker
162 | .pyre/
163 |
164 | # pytype static type analyzer
165 | .pytype/
166 |
167 | # Cython debug symbols
168 | cython_debug/
169 |
170 | # PyCharm
171 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
172 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
173 | # and can be added to the global gitignore or merged into this file. For a more nuclear
174 | # option (not recommended) you can uncomment the following to ignore the entire idea folder.
175 | #.idea/
176 |
177 | ### VisualStudioCode ###
178 | .vscode/*
179 | !.vscode/settings.json
180 | !.vscode/tasks.json
181 | !.vscode/launch.json
182 | !.vscode/extensions.json
183 | !.vscode/*.code-snippets
184 |
185 | # Local History for Visual Studio Code
186 | .history/
187 |
188 | # Built Visual Studio Code Extensions
189 | *.vsix
190 |
191 | ### VisualStudioCode Patch ###
192 | # Ignore all local history of files
193 | .history
194 | .ionide
195 |
196 | ### VisualStudio ###
197 | ## Ignore Visual Studio temporary files, build results, and
198 | ## files generated by popular Visual Studio add-ons.
199 | ##
200 | ## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
201 |
202 | # User-specific files
203 | *.rsuser
204 | *.suo
205 | *.user
206 | *.userosscache
207 | *.sln.docstates
208 |
209 | # User-specific files (MonoDevelop/Xamarin Studio)
210 | *.userprefs
211 |
212 | # Mono auto generated files
213 | mono_crash.*
214 |
215 | # Build results
216 | [Dd]ebug/
217 | [Dd]ebugPublic/
218 | [Rr]elease/
219 | [Rr]eleases/
220 | x64/
221 | x86/
222 | [Ww][Ii][Nn]32/
223 | [Aa][Rr][Mm]/
224 | [Aa][Rr][Mm]64/
225 | bld/
226 | [Bb]in/
227 | [Oo]bj/
228 | [Ll]og/
229 | [Ll]ogs/
230 |
231 | # Visual Studio 2015/2017 cache/options directory
232 | .vs/
233 | # Uncomment if you have tasks that create the project's static files in wwwroot
234 | #wwwroot/
235 |
236 | # Visual Studio 2017 auto generated files
237 | Generated\ Files/
238 |
239 | # MSTest test Results
240 | [Tt]est[Rr]esult*/
241 | [Bb]uild[Ll]og.*
242 |
243 | # NUnit
244 | *.VisualState.xml
245 | TestResult.xml
246 | nunit-*.xml
247 |
248 | # Build Results of an ATL Project
249 | [Dd]ebugPS/
250 | [Rr]eleasePS/
251 | dlldata.c
252 |
253 | # Benchmark Results
254 | BenchmarkDotNet.Artifacts/
255 |
256 | # .NET Core
257 | project.lock.json
258 | project.fragment.lock.json
259 | artifacts/
260 |
261 | # ASP.NET Scaffolding
262 | ScaffoldingReadMe.txt
263 |
264 | # StyleCop
265 | StyleCopReport.xml
266 |
267 | # Files built by Visual Studio
268 | *_i.c
269 | *_p.c
270 | *_h.h
271 | *.ilk
272 | *.meta
273 | *.obj
274 | *.iobj
275 | *.pch
276 | *.pdb
277 | *.ipdb
278 | *.pgc
279 | *.pgd
280 | *.rsp
281 | *.sbr
282 | *.tlb
283 | *.tli
284 | *.tlh
285 | *.tmp
286 | *.tmp_proj
287 | *_wpftmp.csproj
288 | *.tlog
289 | *.vspscc
290 | *.vssscc
291 | .builds
292 | *.pidb
293 | *.svclog
294 | *.scc
295 |
296 | # Chutzpah Test files
297 | _Chutzpah*
298 |
299 | # Visual C++ cache files
300 | ipch/
301 | *.aps
302 | *.ncb
303 | *.opendb
304 | *.opensdf
305 | *.sdf
306 | *.cachefile
307 | *.VC.db
308 | *.VC.VC.opendb
309 |
310 | # Visual Studio profiler
311 | *.psess
312 | *.vsp
313 | *.vspx
314 | *.sap
315 |
316 | # Visual Studio Trace Files
317 | *.e2e
318 |
319 | # TFS 2012 Local Workspace
320 | $tf/
321 |
322 | # Guidance Automation Toolkit
323 | *.gpState
324 |
325 | # ReSharper is a .NET coding add-in
326 | _ReSharper*/
327 | *.[Rr]e[Ss]harper
328 | *.DotSettings.user
329 |
330 | # TeamCity is a build add-in
331 | _TeamCity*
332 |
333 | # DotCover is a Code Coverage Tool
334 | *.dotCover
335 |
336 | # AxoCover is a Code Coverage Tool
337 | .axoCover/*
338 | !.axoCover/settings.json
339 |
340 | # Coverlet is a free, cross platform Code Coverage Tool
341 | coverage*.json
342 | coverage*.xml
343 | coverage*.info
344 |
345 | # Visual Studio code coverage results
346 | *.coverage
347 | *.coveragexml
348 |
349 | # NCrunch
350 | _NCrunch_*
351 | .*crunch*.local.xml
352 | nCrunchTemp_*
353 |
354 | # MightyMoose
355 | *.mm.*
356 | AutoTest.Net/
357 |
358 | # Web workbench (sass)
359 | .sass-cache/
360 |
361 | # Installshield output folder
362 | [Ee]xpress/
363 |
364 | # DocProject is a documentation generator add-in
365 | DocProject/buildhelp/
366 | DocProject/Help/*.HxT
367 | DocProject/Help/*.HxC
368 | DocProject/Help/*.hhc
369 | DocProject/Help/*.hhk
370 | DocProject/Help/*.hhp
371 | DocProject/Help/Html2
372 | DocProject/Help/html
373 |
374 | # Click-Once directory
375 | publish/
376 |
377 | # Publish Web Output
378 | *.[Pp]ublish.xml
379 | *.azurePubxml
380 | # Note: Comment the next line if you want to checkin your web deploy settings,
381 | # but database connection strings (with potential passwords) will be unencrypted
382 | *.pubxml
383 | *.publishproj
384 |
385 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
386 | # checkin your Azure Web App publish settings, but sensitive information contained
387 | # in these scripts will be unencrypted
388 | PublishScripts/
389 |
390 | # NuGet Packages
391 | *.nupkg
392 | # NuGet Symbol Packages
393 | *.snupkg
394 | # The packages folder can be ignored because of Package Restore
395 | **/[Pp]ackages/*
396 | # except build/, which is used as an MSBuild target.
397 | !**/[Pp]ackages/build/
398 | # Uncomment if necessary however generally it will be regenerated when needed
399 | #!**/[Pp]ackages/repositories.config
400 | # NuGet v3's project.json files produces more ignorable files
401 | *.nuget.props
402 | *.nuget.targets
403 |
404 | # Microsoft Azure Build Output
405 | csx/
406 | *.build.csdef
407 |
408 | # Microsoft Azure Emulator
409 | ecf/
410 | rcf/
411 |
412 | # Windows Store app package directories and files
413 | AppPackages/
414 | BundleArtifacts/
415 | Package.StoreAssociation.xml
416 | _pkginfo.txt
417 | *.appx
418 | *.appxbundle
419 | *.appxupload
420 |
421 | # Visual Studio cache files
422 | # files ending in .cache can be ignored
423 | *.[Cc]ache
424 | # but keep track of directories ending in .cache
425 | !?*.[Cc]ache/
426 |
427 | # Others
428 | ClientBin/
429 | ~$*
430 | *~
431 | *.dbmdl
432 | *.dbproj.schemaview
433 | *.jfm
434 | *.pfx
435 | *.publishsettings
436 | orleans.codegen.cs
437 |
438 | # Including strong name files can present a security risk
439 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
440 | #*.snk
441 |
442 | # Since there are multiple workflows, uncomment next line to ignore bower_components
443 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
444 | #bower_components/
445 |
446 | # RIA/Silverlight projects
447 | Generated_Code/
448 |
449 | # Backup & report files from converting an old project file
450 | # to a newer Visual Studio version. Backup files are not needed,
451 | # because we have git ;-)
452 | _UpgradeReport_Files/
453 | Backup*/
454 | UpgradeLog*.XML
455 | UpgradeLog*.htm
456 | ServiceFabricBackup/
457 | *.rptproj.bak
458 |
459 | # SQL Server files
460 | *.mdf
461 | *.ldf
462 | *.ndf
463 |
464 | # Business Intelligence projects
465 | *.rdl.data
466 | *.bim.layout
467 | *.bim_*.settings
468 | *.rptproj.rsuser
469 | *- [Bb]ackup.rdl
470 | *- [Bb]ackup ([0-9]).rdl
471 | *- [Bb]ackup ([0-9][0-9]).rdl
472 |
473 | # Microsoft Fakes
474 | FakesAssemblies/
475 |
476 | # GhostDoc plugin setting file
477 | *.GhostDoc.xml
478 |
479 | # Node.js Tools for Visual Studio
480 | .ntvs_analysis.dat
481 | node_modules/
482 |
483 | # Visual Studio 6 build log
484 | *.plg
485 |
486 | # Visual Studio 6 workspace options file
487 | *.opt
488 |
489 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
490 | *.vbw
491 |
492 | # Visual Studio 6 auto-generated project file (contains which files were open etc.)
493 | *.vbp
494 |
495 | # Visual Studio 6 workspace and project file (working project files containing files to include in project)
496 | *.dsw
497 | *.dsp
498 |
499 | # Visual Studio 6 technical files
500 |
501 | # Visual Studio LightSwitch build output
502 | **/*.HTMLClient/GeneratedArtifacts
503 | **/*.DesktopClient/GeneratedArtifacts
504 | **/*.DesktopClient/ModelManifest.xml
505 | **/*.Server/GeneratedArtifacts
506 | **/*.Server/ModelManifest.xml
507 | _Pvt_Extensions
508 |
509 | # Paket dependency manager
510 | .paket/paket.exe
511 | paket-files/
512 |
513 | # FAKE - F# Make
514 | .fake/
515 |
516 | # CodeRush personal settings
517 | .cr/personal
518 |
519 | # Python Tools for Visual Studio (PTVS)
520 | *.pyc
521 |
522 | # Cake - Uncomment if you are using it
523 | # tools/**
524 | # !tools/packages.config
525 |
526 | # Tabs Studio
527 | *.tss
528 |
529 | # Telerik's JustMock configuration file
530 | *.jmconfig
531 |
532 | # BizTalk build output
533 | *.btp.cs
534 | *.btm.cs
535 | *.odx.cs
536 | *.xsd.cs
537 |
538 | # OpenCover UI analysis results
539 | OpenCover/
540 |
541 | # Azure Stream Analytics local run output
542 | ASALocalRun/
543 |
544 | # MSBuild Binary and Structured Log
545 | *.binlog
546 |
547 | # NVidia Nsight GPU debugger configuration file
548 | *.nvuser
549 |
550 | # MFractors (Xamarin productivity tool) working folder
551 | .mfractor/
552 |
553 | # Local History for Visual Studio
554 | .localhistory/
555 |
556 | # Visual Studio History (VSHistory) files
557 | .vshistory/
558 |
559 | # BeatPulse healthcheck temp database
560 | healthchecksdb
561 |
562 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
563 | MigrationBackup/
564 |
565 | # Ionide (cross platform F# VS Code tools) working folder
566 | .ionide/
567 |
568 | # Fody - auto-generated XML schema
569 | FodyWeavers.xsd
570 |
571 | # VS Code files for those working on multiple tools
572 | *.code-workspace
573 |
574 | # Local History for Visual Studio Code
575 |
576 | # Windows Installer files from build outputs
577 | *.cab
578 | *.msi
579 | *.msix
580 | *.msm
581 | *.msp
582 |
583 | # JetBrains Rider
584 | *.sln.iml
585 |
586 | ### VisualStudio Patch ###
587 | # Additional files built by Visual Studio
588 |
589 | # End of https://www.toptal.com/developers/gitignore/api/visualstudiocode,python,jupyternotebooks,visualstudio
590 |
--------------------------------------------------------------------------------
/NFLX.csv:
--------------------------------------------------------------------------------
1 | Date,Open,High,Low,Close,Adj Close,Volume
2 | 2020-12-28,516.429993,523.659973,507.130005,519.119995,519.119995,2891900
3 | 2020-12-29,519.900024,536.549988,515.479980,530.869995,530.869995,4022400
4 | 2020-12-30,530.130005,533.260010,523.690002,524.590027,524.590027,1876300
5 | 2020-12-31,525.530029,545.500000,523.150024,540.729980,540.729980,5392300
6 | 2021-01-04,539.000000,540.799988,515.090027,522.859985,522.859985,4444400
7 | 2021-01-05,521.549988,526.780029,515.890015,520.799988,520.799988,3133900
8 | 2021-01-06,511.970001,513.099976,499.500000,500.489990,500.489990,5346200
9 | 2021-01-07,508.279999,516.440002,506.420013,508.890015,508.890015,3686400
10 | 2021-01-08,511.309998,513.239990,504.510010,510.399994,510.399994,2973900
11 | 2021-01-11,507.839996,510.730011,497.950012,499.100006,499.100006,3806200
12 | 2021-01-12,500.000000,501.089996,485.670013,494.250000,494.250000,5990400
13 | 2021-01-13,495.500000,512.349976,493.010010,507.790009,507.790009,5032100
14 | 2021-01-14,507.350006,514.500000,499.579987,500.859985,500.859985,4177400
15 | 2021-01-15,500.000000,506.320007,495.100006,497.980011,497.980011,5895800
16 | 2021-01-19,501.000000,509.250000,493.540009,501.769989,501.769989,12315800
17 | 2021-01-20,565.419983,593.289978,556.859985,586.340027,586.340027,32637500
18 | 2021-01-21,582.450012,588.750000,570.400024,579.840027,579.840027,11802100
19 | 2021-01-22,582.099976,583.989990,564.349976,565.169983,565.169983,7550800
20 | 2021-01-25,567.000000,569.750000,548.650024,556.780029,556.780029,7207300
21 | 2021-01-26,554.729980,567.989990,554.059998,561.929993,561.929993,5023800
22 | 2021-01-27,550.710022,556.419983,515.729980,523.280029,523.280029,8670300
23 | 2021-01-28,535.880005,553.150024,530.739990,538.599976,538.599976,5969000
24 | 2021-01-29,538.000000,541.000000,530.179993,532.390015,532.390015,4325300
25 | 2021-02-01,536.789978,545.059998,531.729980,539.039978,539.039978,3547500
26 | 2021-02-02,542.010010,555.479980,538.929993,548.159973,548.159973,3767600
27 | 2021-02-03,550.169983,550.479980,538.239990,539.450012,539.450012,3172300
28 | 2021-02-04,539.809998,559.479980,537.510010,552.159973,552.159973,5164500
29 | 2021-02-05,552.260010,554.440002,545.479980,550.789978,550.789978,2376200
30 | 2021-02-08,555.000000,555.000000,543.700012,547.919983,547.919983,2791700
31 | 2021-02-09,546.000000,566.000000,543.000000,559.070007,559.070007,3703500
32 | 2021-02-10,562.500000,566.650024,553.460022,563.590027,563.590027,3991300
33 | 2021-02-11,564.440002,565.929993,554.219971,557.590027,557.590027,2730600
34 | 2021-02-12,556.940002,561.250000,550.849976,556.520020,556.520020,2197100
35 | 2021-02-16,557.289978,563.630005,552.729980,557.280029,557.280029,2624100
36 | 2021-02-17,550.989990,555.250000,543.030029,551.340027,551.340027,2069600
37 | 2021-02-18,549.000000,550.000000,538.229980,548.219971,548.219971,2456200
38 | 2021-02-19,548.000000,548.989990,538.809998,540.219971,540.219971,2841500
39 | 2021-02-22,534.989990,541.789978,530.789978,533.780029,533.780029,3078600
40 | 2021-02-23,525.000000,548.539978,518.280029,546.150024,546.150024,4136500
41 | 2021-02-24,539.799988,556.849976,539.070007,553.409973,553.409973,3245000
42 | 2021-02-25,550.270020,556.479980,535.750000,546.700012,546.700012,4252900
43 | 2021-02-26,546.510010,553.090027,538.000000,538.849976,538.849976,3755600
44 | 2021-03-01,545.570007,552.140015,542.000000,550.640015,550.640015,3041400
45 | 2021-03-02,553.340027,556.989990,546.020020,547.820007,547.820007,3042200
46 | 2021-03-03,545.929993,548.010010,517.809998,520.700012,520.700012,5362400
47 | 2021-03-04,521.500000,531.500000,507.679993,511.290009,511.290009,5034800
48 | 2021-03-05,511.980011,517.760010,498.790009,516.390015,516.390015,5070000
49 | 2021-03-08,514.460022,518.840027,492.850006,493.329987,493.329987,3981800
50 | 2021-03-09,507.309998,513.109985,503.820007,506.440002,506.440002,3470000
51 | 2021-03-10,513.500000,518.969971,504.250000,504.540009,504.540009,3771500
52 | 2021-03-11,512.200012,530.239990,510.709991,523.059998,523.059998,4714500
53 | 2021-03-12,512.500000,526.510010,506.589996,518.020020,518.020020,3981700
54 | 2021-03-15,516.320007,520.729980,508.029999,520.250000,520.250000,3484300
55 | 2021-03-16,524.469971,533.419983,523.210022,524.030029,524.030029,3238900
56 | 2021-03-17,522.000000,528.369995,514.299988,524.440002,524.440002,2817400
57 | 2021-03-18,516.400024,517.900024,503.850006,504.790009,504.790009,4094500
58 | 2021-03-19,504.959991,513.190002,501.630005,512.179993,512.179993,4386400
59 | 2021-03-22,509.130005,529.309998,509.130005,523.109985,523.109985,3360600
60 | 2021-03-23,529.869995,543.119995,529.400024,535.090027,535.090027,5583500
61 | 2021-03-24,533.780029,534.419983,520.000000,520.809998,520.809998,4102200
62 | 2021-03-25,516.989990,518.530029,497.000000,502.859985,502.859985,4926800
63 | 2021-03-26,502.820007,508.720001,496.679993,508.049988,508.049988,3467800
64 | 2021-03-29,505.660004,518.000000,504.399994,513.950012,513.950012,3330000
65 | 2021-03-30,510.510010,514.409973,506.910004,513.390015,513.390015,2418100
66 | 2021-03-31,515.669983,528.130005,515.440002,521.659973,521.659973,3503100
67 | 2021-04-01,529.929993,540.500000,527.030029,539.419983,539.419983,3938600
68 | 2021-04-05,540.010010,542.849976,529.229980,540.669983,540.669983,3355900
69 | 2021-04-06,544.809998,554.169983,543.299988,544.530029,544.530029,3474200
70 | 2021-04-07,543.500000,549.640015,541.450012,546.989990,546.989990,2151300
71 | 2021-04-08,551.130005,556.900024,547.570007,554.580017,554.580017,4309800
72 | 2021-04-09,552.690002,556.900024,547.109985,555.309998,555.309998,2894000
73 | 2021-04-12,551.049988,557.979980,549.580017,552.780029,552.780029,2944100
74 | 2021-04-13,557.000000,559.750000,550.299988,553.729980,553.729980,2720300
75 | 2021-04-14,554.869995,554.869995,538.530029,540.020020,540.020020,3740300
76 | 2021-04-15,544.169983,553.489990,542.659973,549.219971,549.219971,3139100
77 | 2021-04-16,550.539978,551.979980,539.510010,546.539978,546.539978,3209100
78 | 2021-04-19,546.900024,556.440002,545.530029,554.440002,554.440002,4288700
79 | 2021-04-20,554.419983,563.559998,546.299988,549.570007,549.570007,11257600
80 | 2021-04-21,508.000000,515.460022,503.600006,508.899994,508.899994,22897400
81 | 2021-04-22,513.820007,513.960022,500.549988,508.779999,508.779999,9061100
82 | 2021-04-23,509.010010,509.700012,500.700012,505.549988,505.549988,7307700
83 | 2021-04-26,506.760010,510.480011,503.000000,510.299988,510.299988,4388800
84 | 2021-04-27,512.619995,512.989990,504.579987,505.549988,505.549988,3761300
85 | 2021-04-28,505.200012,508.399994,503.339996,506.519989,506.519989,3193000
86 | 2021-04-29,507.600006,509.290009,499.000000,509.000000,509.000000,5127800
87 | 2021-04-30,505.000000,514.549988,505.000000,513.469971,513.469971,4413200
88 | 2021-05-03,512.650024,518.950012,505.200012,509.109985,509.109985,4091900
89 | 2021-05-04,510.779999,511.630005,496.790009,503.179993,503.179993,4349500
90 | 2021-05-05,504.989990,507.779999,494.630005,496.079987,496.079987,3129400
91 | 2021-05-06,495.989990,499.549988,491.369995,499.549988,499.549988,3783700
92 | 2021-05-07,504.619995,508.549988,501.119995,503.839996,503.839996,3132800
93 | 2021-05-10,502.000000,503.149994,486.109985,486.690002,486.690002,5131600
94 | 2021-05-11,479.750000,497.989990,478.630005,495.079987,495.079987,4401000
95 | 2021-05-12,486.829987,493.540009,482.700012,484.980011,484.980011,4121500
96 | 2021-05-13,489.130005,490.779999,482.709991,486.660004,486.660004,2712500
97 | 2021-05-14,487.859985,494.850006,486.589996,493.369995,493.369995,2882500
98 | 2021-05-17,485.589996,492.709991,482.809998,488.940002,488.940002,2705200
99 | 2021-05-18,488.399994,493.480011,486.190002,486.279999,486.279999,2350500
100 | 2021-05-19,481.630005,488.570007,478.540009,487.700012,487.700012,3349900
101 | 2021-05-20,489.549988,502.700012,488.980011,501.670013,501.670013,3721200
102 | 2021-05-21,503.119995,505.399994,497.260010,497.890015,497.890015,3322900
103 | 2021-05-24,501.049988,504.250000,499.510010,502.899994,502.899994,2412600
104 | 2021-05-25,506.000000,506.369995,499.220001,501.339996,501.339996,2699500
105 | 2021-05-26,502.339996,504.140015,500.500000,502.359985,502.359985,2465300
106 | 2021-05-27,501.799988,505.100006,498.540009,503.859985,503.859985,3253800
107 | 2021-05-28,504.399994,511.760010,502.529999,502.809998,502.809998,2910300
108 | 2021-06-01,504.010010,505.410004,497.739990,499.079987,499.079987,2482600
109 | 2021-06-02,499.820007,503.220001,495.820007,499.239990,499.239990,2269000
110 | 2021-06-03,495.190002,496.660004,487.250000,489.429993,489.429993,3887400
111 | 2021-06-04,492.000000,501.859985,490.950012,494.739990,494.739990,3160500
112 | 2021-06-07,492.920013,496.700012,490.549988,494.660004,494.660004,2791900
113 | 2021-06-08,497.000000,498.820007,489.369995,492.390015,492.390015,2374000
114 | 2021-06-09,494.500000,496.089996,484.649994,485.809998,485.809998,3055000
115 | 2021-06-10,487.170013,490.209991,482.140015,487.269989,487.269989,4382900
116 | 2021-06-11,490.000000,491.410004,487.779999,488.769989,488.769989,3124000
117 | 2021-06-14,489.679993,503.500000,486.910004,499.890015,499.890015,4400200
118 | 2021-06-15,501.230011,501.230011,490.399994,491.899994,491.899994,3104100
119 | 2021-06-16,495.000000,496.459991,486.279999,492.410004,492.410004,3533200
120 | 2021-06-17,490.250000,501.799988,490.149994,498.339996,498.339996,3198300
121 | 2021-06-18,496.399994,504.489990,495.239990,500.769989,500.769989,5197600
122 | 2021-06-21,501.640015,502.049988,492.279999,497.000000,497.000000,5277300
123 | 2021-06-22,498.540009,513.549988,495.799988,508.820007,508.820007,5809300
124 | 2021-06-23,508.480011,516.630005,508.200012,512.739990,512.739990,3944800
125 | 2021-06-24,517.960022,520.960022,514.400024,518.059998,518.059998,3361200
126 | 2021-06-25,528.840027,533.059998,525.000000,527.070007,527.070007,5299100
127 | 2021-06-28,528.119995,533.940002,524.559998,533.030029,533.030029,2820200
128 | 2021-06-29,533.549988,536.130005,528.570007,533.500000,533.500000,2314600
129 | 2021-06-30,534.059998,534.380005,526.820007,528.210022,528.210022,2773400
130 | 2021-07-01,525.719971,537.039978,525.719971,533.539978,533.539978,2805400
131 | 2021-07-02,535.500000,538.539978,529.390015,533.979980,533.979980,1975500
132 | 2021-07-06,533.000000,542.859985,533.000000,541.640015,541.640015,2775100
133 | 2021-07-07,544.239990,544.640015,531.659973,535.960022,535.960022,2722500
134 | 2021-07-08,530.929993,535.500000,529.090027,530.760010,530.760010,3269000
135 | 2021-07-09,531.000000,538.260010,528.580017,535.979980,535.979980,2777200
136 | 2021-07-12,540.299988,540.650024,532.919983,537.309998,537.309998,1780700
137 | 2021-07-13,535.760010,545.330017,535.760010,540.679993,540.679993,2751600
138 | 2021-07-14,541.010010,554.099976,541.010010,547.950012,547.950012,4659500
139 | 2021-07-15,553.969971,557.539978,538.200012,542.950012,542.950012,5713900
140 | 2021-07-16,541.809998,544.059998,527.049988,530.309998,530.309998,3442100
141 | 2021-07-19,526.049988,534.909973,522.239990,532.280029,532.280029,3885800
142 | 2021-07-20,526.070007,536.640015,520.299988,531.049988,531.049988,6930400
143 | 2021-07-21,526.130005,530.989990,505.609985,513.630005,513.630005,11906800
144 | 2021-07-22,510.209991,513.679993,507.000000,511.769989,511.769989,4328100
145 | 2021-07-23,512.159973,517.409973,504.660004,515.409973,515.409973,3820500
146 | 2021-07-26,514.380005,521.130005,509.010010,516.489990,516.489990,2254500
147 | 2021-07-27,518.080017,521.950012,512.049988,518.909973,518.909973,2759000
148 | 2021-07-28,521.820007,524.469971,516.979980,519.299988,519.299988,2390500
149 | 2021-07-29,519.960022,520.780029,513.789978,514.250000,514.250000,1736000
150 | 2021-07-30,512.690002,519.789978,510.959991,517.570007,517.570007,2534900
151 | 2021-08-02,519.000000,519.849976,510.510010,515.150024,515.150024,2096600
152 | 2021-08-03,514.390015,515.630005,505.369995,510.820007,510.820007,2579400
153 | 2021-08-04,513.000000,517.979980,510.369995,517.349976,517.349976,2039400
154 | 2021-08-05,517.130005,525.409973,514.020020,524.890015,524.890015,2556700
155 | 2021-08-06,524.000000,526.840027,519.390015,520.549988,520.549988,1919400
156 | 2021-08-09,521.150024,522.669983,517.989990,519.969971,519.969971,1367800
157 | 2021-08-10,520.000000,520.789978,512.969971,515.840027,515.840027,1960500
158 | 2021-08-11,517.000000,519.570007,509.769989,512.400024,512.400024,1673900
159 | 2021-08-12,511.859985,513.000000,507.200012,510.720001,510.720001,1685700
160 | 2021-08-13,512.640015,521.440002,511.510010,515.919983,515.919983,2176300
161 | 2021-08-16,515.239990,523.380005,512.299988,517.919983,517.919983,2032800
162 | 2021-08-17,515.469971,520.789978,514.200012,518.909973,518.909973,2309800
163 | 2021-08-18,520.000000,526.380005,518.650024,521.869995,521.869995,2582000
164 | 2021-08-19,522.739990,548.390015,521.869995,543.710022,543.710022,7497300
165 | 2021-08-20,545.090027,551.390015,539.099976,546.880005,546.880005,3774300
166 | 2021-08-23,545.979980,555.549988,543.739990,553.330017,553.330017,2602000
167 | 2021-08-24,551.479980,555.309998,549.270020,553.409973,553.409973,2109500
168 | 2021-08-25,550.159973,552.840027,545.450012,547.580017,547.580017,2065600
169 | 2021-08-26,546.159973,552.599976,545.900024,550.119995,550.119995,1595500
170 | 2021-08-27,551.599976,564.169983,549.250000,558.919983,558.919983,3251100
171 | 2021-08-30,557.250000,567.159973,556.450012,566.179993,566.179993,2434800
172 | 2021-08-31,566.119995,569.479980,561.609985,569.190002,569.190002,2431900
173 | 2021-09-01,569.000000,591.000000,569.000000,582.070007,582.070007,5626200
174 | 2021-09-02,583.679993,598.760010,583.679993,588.549988,588.549988,6179900
175 | 2021-09-03,585.799988,591.880005,583.140015,590.530029,590.530029,2681200
176 | 2021-09-07,594.690002,613.849976,593.989990,606.710022,606.710022,5821400
177 | 2021-09-08,603.840027,615.599976,595.710022,606.049988,606.049988,5424500
178 | 2021-09-09,606.469971,609.440002,596.549988,597.539978,597.539978,2954200
179 | 2021-09-10,598.159973,609.450012,593.669983,598.719971,598.719971,3948000
180 | 2021-09-13,598.570007,598.570007,582.780029,589.289978,589.289978,3062900
181 | 2021-09-14,584.890015,587.280029,575.559998,577.760010,577.760010,3457000
182 | 2021-09-15,578.169983,584.619995,575.369995,582.869995,582.869995,2755600
183 | 2021-09-16,584.299988,587.479980,577.719971,586.500000,586.500000,1832000
184 | 2021-09-17,587.849976,590.280029,580.849976,589.349976,589.349976,4145100
185 | 2021-09-20,586.789978,591.530029,568.080017,575.429993,575.429993,3732200
186 | 2021-09-21,578.309998,581.880005,569.369995,573.140015,573.140015,2250900
187 | 2021-09-22,579.690002,595.650024,579.690002,590.650024,590.650024,4021800
188 | 2021-09-23,590.789978,599.320007,589.130005,593.260010,593.260010,2526200
189 | 2021-09-24,592.500000,592.979980,583.640015,592.390015,592.390015,2126200
190 | 2021-09-27,587.950012,593.580017,576.929993,592.640015,592.640015,2504700
191 | 2021-09-28,589.000000,599.539978,580.159973,583.849976,583.849976,4431100
192 | 2021-09-29,589.010010,609.880005,588.010010,599.059998,599.059998,6221000
193 | 2021-09-30,608.049988,619.000000,608.049988,610.340027,610.340027,6612600
194 | 2021-10-01,604.239990,614.989990,597.510010,613.150024,613.150024,4090800
195 | 2021-10-04,613.390015,626.130005,594.679993,603.349976,603.349976,4995900
196 | 2021-10-05,606.940002,640.390015,606.890015,634.809998,634.809998,9534300
197 | 2021-10-06,628.179993,639.869995,626.359985,639.099976,639.099976,4580400
198 | 2021-10-07,642.229980,646.840027,630.450012,631.849976,631.849976,3556900
199 | 2021-10-08,634.169983,643.799988,630.859985,632.659973,632.659973,3271100
200 | 2021-10-11,633.200012,639.419983,626.780029,627.039978,627.039978,2862500
201 | 2021-10-12,633.020020,637.659973,621.989990,624.940002,624.940002,3227300
202 | 2021-10-13,632.179993,632.179993,622.099976,629.760010,629.760010,2420300
203 | 2021-10-14,632.229980,636.880005,626.789978,633.799988,633.799988,2671700
204 | 2021-10-15,638.000000,639.419983,625.159973,628.289978,628.289978,4114400
205 | 2021-10-18,632.099976,638.409973,620.590027,637.969971,637.969971,4669100
206 | 2021-10-19,636.969971,641.000000,632.299988,639.000000,639.000000,7633100
207 | 2021-10-20,625.570007,637.400024,617.150024,625.140015,625.140015,10622000
208 | 2021-10-21,628.890015,654.010010,628.650024,653.159973,653.159973,8437100
209 | 2021-10-22,651.809998,665.460022,651.809998,664.780029,664.780029,6186000
210 | 2021-10-25,663.739990,675.880005,657.070007,671.659973,671.659973,3833500
211 | 2021-10-26,673.760010,676.489990,662.770020,668.520020,668.520020,2904800
212 | 2021-10-27,669.000000,671.409973,661.849976,662.919983,662.919983,2276900
213 | 2021-10-28,670.950012,676.799988,668.030029,674.049988,674.049988,2859400
214 | 2021-10-29,673.059998,690.969971,671.239990,690.309998,690.309998,3817500
215 | 2021-11-01,689.059998,689.969971,676.539978,681.169983,681.169983,3110900
216 | 2021-11-02,683.109985,687.679993,673.820007,677.719971,677.719971,3888600
217 | 2021-11-03,677.270020,689.390015,677.270020,688.289978,688.289978,2334900
218 | 2021-11-04,685.890015,685.940002,665.500000,668.400024,668.400024,4865000
219 | 2021-11-05,663.969971,665.640015,645.010010,645.719971,645.719971,5277400
220 | 2021-11-08,650.289978,656.000000,643.789978,651.450012,651.450012,2887500
221 | 2021-11-09,653.700012,660.500000,650.520020,655.989990,655.989990,2415600
222 | 2021-11-10,653.010010,660.330017,642.109985,646.909973,646.909973,2405800
223 | 2021-11-11,650.239990,665.820007,649.710022,657.580017,657.580017,2868300
224 | 2021-11-12,660.010010,683.340027,653.820007,682.609985,682.609985,4192700
225 | 2021-11-15,681.239990,685.260010,671.489990,679.330017,679.330017,2872200
226 | 2021-11-16,678.270020,688.359985,676.900024,687.400024,687.400024,2077400
227 | 2021-11-17,690.000000,700.989990,686.090027,691.690002,691.690002,2732800
228 | 2021-11-18,691.609985,691.739990,679.739990,682.020020,682.020020,2012900
229 | 2021-11-19,692.349976,694.159973,675.000000,678.799988,678.799988,2613700
230 | 2021-11-22,676.020020,679.479980,656.469971,659.200012,659.200012,2764400
231 | 2021-11-23,658.179993,666.429993,646.049988,654.059998,654.059998,2320200
232 | 2021-11-24,658.010010,661.440002,651.099976,658.289978,658.289978,1867300
233 | 2021-11-26,675.000000,676.409973,660.669983,665.640015,665.640015,2872500
234 | 2021-11-29,663.200012,667.989990,658.289978,663.840027,663.840027,2529400
235 | 2021-11-30,668.200012,675.380005,640.010010,641.900024,641.900024,5608900
236 | 2021-12-01,649.479980,654.520020,617.070007,617.770020,617.770020,3882800
237 | 2021-12-02,617.099976,625.359985,612.880005,616.469971,616.469971,3331100
238 | 2021-12-03,622.750000,625.500000,594.000000,602.130005,602.130005,4825200
239 | 2021-12-06,606.010010,617.289978,601.000000,612.690002,612.690002,3075700
240 | 2021-12-07,619.830017,628.890015,611.400024,625.580017,625.580017,3125200
241 | 2021-12-08,630.000000,632.460022,623.200012,628.080017,628.080017,2220300
242 | 2021-12-09,627.580017,630.239990,610.440002,611.000000,611.000000,2376300
243 | 2021-12-10,616.780029,617.739990,605.880005,611.659973,611.659973,2747900
244 | 2021-12-13,612.000000,612.640015,599.520020,604.559998,604.559998,2517900
245 | 2021-12-14,598.710022,602.289978,588.130005,597.989990,597.989990,2984500
246 | 2021-12-15,598.179993,605.690002,584.510010,605.039978,605.039978,2866200
247 | 2021-12-16,597.090027,602.830017,588.000000,591.059998,591.059998,3143200
248 | 2021-12-17,591.609985,593.250000,581.739990,586.729980,586.729980,4386900
249 | 2021-12-20,586.429993,602.880005,584.260010,593.739990,593.739990,3358400
250 | 2021-12-21,597.539978,607.820007,593.859985,604.919983,604.919983,2319400
251 | 2021-12-22,603.359985,614.820007,602.630005,614.239990,614.239990,2335700
252 | 2021-12-23,616.400024,616.880005,607.570007,614.090027,614.090027,1620600
--------------------------------------------------------------------------------
/code_stock_lstm_train_final.ipynb:
--------------------------------------------------------------------------------
1 | {"cells":[{"cell_type":"code","execution_count":1,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":28656,"status":"ok","timestamp":1640934492549,"user":{"displayName":"0542_Võ Thương Trường Nhơn","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10797139682346268390"},"user_tz":-420},"id":"taTgS5yMoSsO","outputId":"3f634e6a-d327-46ce-be4b-9ac0ad8326de"},"outputs":[{"name":"stdout","output_type":"stream","text":["Mounted at /content/drive\n"]}],"source":["from google.colab import drive\n","drive.mount('/content/drive')"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"GW-hE_1WoZzR"},"outputs":[],"source":["!pip install yfinance\n","!pip install --upgrade pandas"]},{"cell_type":"code","execution_count":1,"metadata":{"executionInfo":{"elapsed":3209,"status":"ok","timestamp":1640934521823,"user":{"displayName":"0542_Võ Thương Trường Nhơn","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10797139682346268390"},"user_tz":-420},"id":"fa1d67d1-f744-47d9-a84a-ff4e65551292"},"outputs":[],"source":["import numpy as np\n","# hỗ trợ cho việc tính toán các mảng nhiều chiều\n","import pandas as pd\n","# thao tác và phân tích dữ liệu\n","import yfinance as yf\n","import matplotlib.pyplot as plt\n","# vẽ biểu đồ, đồ thị\n","%matplotlib inline\n","from sklearn.preprocessing import MinMaxScaler\n","# hàm đưa dữ liệu về giá trị (0,1)\n","from keras.preprocessing.sequence import TimeseriesGenerator\n","# Gộp dữ liệu vào chuyển thành dữ liệu time series\n","from keras.models import Sequential\n","# khởi tạo mạng neurol\n","from keras.layers import Dense\n","# một lớp để chuyển dữ liệu từ lớp input vào model ????\n","from keras.layers import LSTM\n","# mô hình LSTM \n","from keras.layers import Dropout\n","# giúp bỏ bớt các node, giúp lọc lại những node có thông tin cần thiết \n","from tensorflow import keras\n","# from datetime import datatime\n","plt.style.use(\"fivethirtyeight\")\n","# style của thư viện mathplotlib\n","import warnings\n","warnings.filterwarnings(\"ignore\")\n","# Những thư viện cần dùng"]},{"cell_type":"code","execution_count":2,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":822,"status":"ok","timestamp":1640934522642,"user":{"displayName":"0542_Võ Thương Trường Nhơn","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10797139682346268390"},"user_tz":-420},"id":"26367fe2-497e-4236-9922-c6349ffe5737","outputId":"e48c58ca-a6ff-4772-daa8-d7f797b1f713"},"outputs":[{"name":"stdout","output_type":"stream","text":[" Date Open High ... Volume Dividends Stock Splits\n","0 2010-11-10 9.695574 9.760795 ... 384227200 0.0 0.0\n","1 2010-11-11 9.645357 9.749466 ... 361284000 0.0 0.0\n","2 2010-11-12 9.675977 9.691287 ... 795846800 0.0 0.0\n","3 2010-11-15 9.445104 9.508793 ... 403606000 0.0 0.0\n","4 2010-11-16 9.361198 9.418763 ... 657650000 0.0 0.0\n","... ... ... ... ... ... ... ...\n","2790 2021-12-10 175.210007 179.630005 ... 115228100 0.0 0.0\n","2791 2021-12-13 181.119995 182.130005 ... 153237000 0.0 0.0\n","2792 2021-12-14 175.250000 177.740005 ... 139380400 0.0 0.0\n","2793 2021-12-15 175.110001 179.500000 ... 131063300 0.0 0.0\n","2794 2021-12-16 179.279999 181.139999 ... 150185800 0.0 0.0\n","\n","[2795 rows x 8 columns]\n"]}],"source":["#@title Chương trình dự đoán cổ phiếu bằng thuật toán LSTM\n","Macophieu = \"AAPL\" #@param [\"GOOG\", \"AMZN\", \"FB\",\"AAPL\",\"TSLA\"]\n","\n","prop = 'Close' #@param [\"Open\", \"High\", \"Low\",\"Close\",\"Volume\"]\n","\n","companyName = 'Apple' #@param[\"Google\", \"Amazon\", \"Facebook\", \"Apple\", \"Tesla\"]\n","\n","# Chọn cổ phiếu cần dự doán\n","tickerData = yf.Ticker(Macophieu) \n","#@title Date fields\n","start ='2010-11-10'#@param {type:\"date\"}\n","end ='2021-12-17'#@param {type:\"date\"}\n","tickerDf = tickerData.history(period='1d', start=start, end=end)\n","#lấy giá trị từ ngày đến những ngày trước đó\n","data = tickerDf\n","data.reset_index(inplace=True)\n","# đánh số thứ tự lại cho data thay cho cột ngày\n","print(data)"]},{"cell_type":"code","execution_count":4,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":410},"executionInfo":{"elapsed":1036,"status":"ok","timestamp":1640934537755,"user":{"displayName":"0542_Võ Thương Trường Nhơn","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10797139682346268390"},"user_tz":-420},"id":"h79Yv6RwszJ9","outputId":"fc19b34b-33a9-4076-e298-d97be3992f83"},"outputs":[{"data":{"image/png":"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","text/plain":[""]},"metadata":{"needs_background":"light"},"output_type":"display_data"}],"source":["plt.figure(figsize = (16,6))\n","plt.plot(data['Date'],data[prop])\n","plt.title( prop + \" history \")\n","plt.xlabel('Date', fontsize = 18)\n","plt.ylabel(f'{prop}', fontsize = 18)\n","plt.show()"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"-1BAgBWhpZ74"},"outputs":[],"source":["data_end = int(np.floor(0.8*(data.shape[0])))\n","# lấy cái mốc là data_end theo tử lệ 2:8\n","train = data[0:data_end][prop] \n","# lấy 80% là giá mỏ cho tập train\n","test = data[data_end:][prop]\n","# lấy 20% data là giá mở cho tập test\n","date_test = data[data_end:]['Date']\n","# lấy 20% là ngày trùng vs tập test "]},{"cell_type":"code","execution_count":null,"metadata":{"id":"-61e7HOhq2-G"},"outputs":[],"source":["train = train.values.reshape(-1)\n","test = test.values.reshape(-1)\n","date_test = date_test.values.reshape(-1)\n","# chuyển ma trận sao cho phù hợp với đầu vào của keras"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"285cdcb9-6b26-49d2-a7d0-14f3c7c3d57a"},"outputs":[],"source":["def get_data(train,test,time_step,num_predict,date):\n"," x_train= list()\n"," y_train = list()\n"," x_test = list()\n"," y_test = list()\n"," date_test= list()\n","# khởi tọa các list trổng để lưu data test, train\n","# time_step = 30 số lượng ngày đưa vào, num_predict = 1 số lượng đầu ra\n"," for i in range(0,len(train) - time_step - num_predict):\n"," x_train.append(train[i:i+time_step])\n"," y_train.append(train[i+time_step:i+time_step+num_predict])\n","# y(dự đoán của 30 đầu vào) = f(x(giá open 30 ngày)w(giá trị cần cải thiện trong model) + bias(giá trị cần cải thiện trong model))\n","# đưa vào giá của 30 ngày tương ứng với 1 state và đầu ra y mũ cho 1 node tưởng tự n data còn lại\n","# đưa giá trị vào mảng x_train(giá mở của 80% tập data ngày trước để đưa vào cho máy học), y_train(giá mở của ngày thứ 31) \n"," for i in range(0, len(test) - time_step - num_predict):\n"," x_test.append(test[i:i+time_step])\n"," y_test.append(test[i+time_step:i+time_step+num_predict])\n"," date_test.append(date[i+time_step:i+time_step+num_predict])\n","# Xử lý đưa data vào list tương tự như tập train\n"," return np.asarray(x_train), np.asarray(y_train), np.asarray(x_test), np.asarray(y_test), np.asarray(date_test)\n"," # chuyển dữ liệu thành dạng mảng"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"d61f3b95-96c9-4f08-a547-5d8e51548241"},"outputs":[],"source":["# gọi hàm dựa data vào mảng train test time_step num_predict, date_test\n","x_train, y_train, x_test, y_test, date_test = get_data(train,test,30,1, date_test)\n","\n","# chuyển về dạng ma trận đưa vào minmaxscaler()\n","x_train = x_train.reshape(-1,30)\n","x_test = x_test.reshape(-1,30)\n","\n","# dua ve 0->1 cho tap train\n","scaler = MinMaxScaler()\n","\n","# gọi hàm scaler để nén hoặc giải nén data về khoảng (0,1) để máy hiểu góp phần tăng tốc độ máy học\n","# fit_transform nén data lại cho model cho 4 ma trận x, y_train x,y test\n","x_train = scaler.fit_transform(x_train)\n","y_train = scaler.fit_transform(y_train)\n","\n","x_test = scaler.fit_transform(x_test)\n","y_test = scaler.fit_transform(y_test)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"b418eea0-588f-4904-b9bc-b506d144ee56"},"outputs":[],"source":["# chuyển về dạng ma trận đưa vào keras() thêm một chiều thứ 3 để có bias => để thành ma trận 3D cho phù hợp với bài toán\n","\n","# Reshape lai cho x_train\n","x_train = x_train.reshape(-1,30,1)\n","y_train = y_train.reshape(-1,1)\n","\n","#reshape lai cho test\n","x_test = x_test.reshape(-1,30,1)\n","y_test = y_test.reshape(-1,1)\n","date_test = date_test.reshape(-1,1)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"1ffc429b-436e-4cd9-b7b7-0cd70cc100b3"},"outputs":[],"source":["# 1 lớp là giá của 30 ngày (n_input)\n","# n_feature số lượng cột ở đây là giá mở\n","# return_sequences trả về chuỗi \n","\n","n_input = 30\n","n_features = 1\n","\n","# Khởi tạo mạng neurol\n","model = Sequential()\n","model.add(LSTM(units = 50, input_shape=(n_input, n_features), return_sequences=True))\n","# trả về dạng chuỗi để đưa vào layer tiếp theo\n","# true thì nó trả về chuỗi các hidden state false thì trả về output\n","model.add(Dropout(0.3))\n","# lớp thứ hai\n","model.add(LSTM(units = 50, return_sequences=True))\n","model.add(Dropout(0.3))\n","# lớp thứ ba\n","model.add(LSTM(units = 50))\n","model.add(Dropout(0.3))\n","# đưa về lớp cuối cùng 1 node\n","model.add(Dense(1))\n","# đưa vào xác định hàm lỗi(loss function) 'mse' và hàm tối ưu(vd gradient) 'adam' \n","model.compile(optimizer ='adam', loss ='mse')"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":397},"executionInfo":{"elapsed":4029,"status":"error","timestamp":1640876859077,"user":{"displayName":"0542_Võ Thương Trường Nhơn","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10797139682346268390"},"user_tz":-420},"id":"8404f748-abdd-4283-9a6b-3f119e0b5ac4","outputId":"5c34debd-98f2-4641-e178-9feb54d20c35"},"outputs":[],"source":["%cd /content/drive/MyDrive/co phieu\n","# fit đưa tất cả vào model\n","model.fit(x_train, y_train, epochs=200, validation_split=0.2, verbose=1, batch_size=30)\n","model.save(f'{Macophieu}_{prop}.h5')"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":3649,"status":"ok","timestamp":1640876867445,"user":{"displayName":"0542_Võ Thương Trường Nhơn","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10797139682346268390"},"user_tz":-420},"id":"1ca20d70-5a2d-4fa8-bbfa-81680f601034","outputId":"6b0d99dc-e1f6-43f0-b770-62a9949be942"},"outputs":[{"name":"stdout","output_type":"stream","text":["/content/drive/MyDrive/co phieu\n"]}],"source":["%cd /content/drive/MyDrive/co phieu\n","# Test model vừa train\n","model = keras.models.load_model(f'{Macophieu}_{prop}.h5')\n","# load model\n","test_output = model.predict(x_test)\n","# lấy tập x_test cho vào model ra test_output là data dự đoán\n","\n","# giải nén dữ liệu từ (0,1) ra giá thực tế\n","test_1 = scaler.inverse_transform(test_output)\n","test_2 =scaler.inverse_transform(y_test)\n"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":441},"executionInfo":{"elapsed":5,"status":"ok","timestamp":1640876867446,"user":{"displayName":"0542_Võ Thương Trường Nhơn","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10797139682346268390"},"user_tz":-420},"id":"bkxTHheVwNZW","outputId":"4e414846-6278-4623-85dc-39c6f7bc3eba"},"outputs":[{"data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAABDEAAAGoCAYAAABfW36hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdd3RUxd/H8ffupgdSBBIIJGAQkKaI/ChKlV4UkN6LgiKIBVGRJogiYEEpgiJKFZBiwAIoAoI0pUtHihQpAgnp2ezu80eebFh2EwIEUvi8zskxd+7M3Ll3OMcz30wxREZG2hARERERERERyeGM2d0AEREREREREZHMUBBDRERERERERHIFBTFEREREREREJFdQEENEREREREREcgUFMUREREREREQkV1AQQ0RERERERERyBQUxREREJFeoWLEiFStWzO5miIiISDZSEENERPI8q9XK7NmzadGiBffffz8FCxakZMmS1KhRg379+rFkyRIATp48SUBAwE39bNiwweFZ58+fZ/To0dSqVYuwsDCCg4OpUKECzzzzDL/99tsN23rmzBlGjx5NvXr1KFGiBAULFiQ8PJwWLVowadIkLl++7JC/YsWKBAQEcPLkSae6Ll++TMOGDQkICKB79+4kJCTc1Hfr0qULAQEBlChR4qbL5mZWq5WIiAi6d+9OhQoVKFy4MCEhIVSpUoX+/fun248Wi4X58+fTtm1bSpcuTaFChQgPD6dZs2Z89tlnxMfHuyw3duxY+7+n5557Lt12bdmyxZ6vdOnSDvdc/dstUKAAJUuWpFWrVixdujTdeocMGWLP/++//6abb968efa6hwwZ4jLP4cOHCQgIoHnz5gBERkZSvnx5ChUqxK5du9Kte8aMGQQEBNChQ4d084iIiAC4ZXcDRERE7iSr1UqnTp1YtWoVfn5+NGnShJCQEMxmM4cOHWL58uX8+eeftGnTBn9/f9544w2nOj777DOuXr3K888/j7+/v8O9sLAw++/ff/89zz//PDExMVSsWJFOnTrh7e3NkSNH+OGHH1iyZAmdO3dm4sSJeHh4OD1n9uzZDB48mMTERMqVK8fTTz9NYGAgV65cYdu2bQwfPpwJEyZw4MABfH19M3zvU6dO0aZNGw4fPsyzzz7L+PHjMRoz/7eLf//9l1WrVmEwGIiMjOS7776jY8eOmS6fW50/f56ePXuyefNm8uXLR506dQgPD8dgMHDs2DFWrFjBvHnzGDp0KIMHD7aX+/fff+nSpQs7duygQIECNGzYkJCQEC5dusSaNWsYMmQIn3/+OQsWLKBMmTIun+3m5sby5csZN24cAQEBTvdnzZqFm5sbycnJ6bbfz8+Pfv36AZCUlMThw4dZuXIl69atY+fOnbzzzjsO+RMSEliwYAEGgwGLxcKcOXN4/fXXb/idZsyYQZ8+fQgPD88wX0BAAFOnTqVVq1b06dOH9evX4+Pj45Dn8OHDDB8+nEKFCjF58uQbPltERO5tCmKIiEietmTJElatWkWFChX44YcfnIIQiYmJbN68GSDdvzDPnz+fq1ev0q9fP4oXL+7yORs3bqRnz56YTCa++OIL2rVr53D/n3/+oXPnzsyfPx93d3c++eQTh/uLFi1i4MCB+Pv78/XXX9O0aVOnZ2zfvp033ngDs9mc4Tvv27ePtm3b8u+//zJs2DBee+21DPO7MmfOHJKTk3nllVf4+OOPmTVrVp4PYsTFxdGmTRv++usvWrVqxccff0xgYKBDntjYWKZNm8bVq1cdyrVt25Z9+/bRrl07Pv74Y/Lly2e/bzabeeedd/j0009p3bo169evp1ChQk7Pb9y4MT/88AOLFi2ib9++DveioqKIiIigSZMmfP/99+m+g7+/v9O/4V9//ZU2bdowZcoU+vTp4xB4++6777hy5QrPPfccc+bMYc6cObz22msZBrxKlizJ33//zYgRI5g7d266+VLVqVOHAQMGMGnSJIYNG8ZHH33k8G369OlDfHw8X3/9tcvvIiIici0tJxERkTxt69atAHTu3NkpgAHg6elJ3bp1b+sZVquVV155heTkZN59912nAAakzNhYtGgRfn5+zJo1i23bttnvRUdH22eAzJgxw2UAA+DRRx9l5cqV+Pn5pduWjRs30rRpUy5evMjkyZNvKYBhtVqZM2cOPj4+vPrqq9SoUYPNmzdz6NAhl/n79etnX1ozd+5catasSeHChSlVqhQvvvgiFy5ccCrTvHlzAgICOHHiBJMmTaJKlSoEBwdTvnx5hg4dSnR09E21OSIigpYtW1KiRAmCgoKoXLkyb7/9tkOw4UamTp3KX3/9RbVq1fjyyy+dAhgAvr6+DBo0iLfeesuh3L59+/jf//7HtGnTHAIYAO7u7owePZqWLVty9uxZ3n33XZfPr1evHqGhocyaNcvp3rfffktcXBw9evTI9PukeuKJJyhdujRWq5WdO3c63Et91vPPP8+TTz7JqVOnWLNmTYb1tWjRgipVqvD999+zadOmTLVh+PDhVKhQgZkzZ7Jy5Up7+nvvvcfu3bt59tlnady48U2+mYiI3IsUxBARkTwtdVr+33//fceesXHjRo4cOULhwoXp2bNnuvlCQkLsg9CvvvrKnh4REcGVK1eoUqUKDRs2zPBZbm5u6f6VPCIigjZt2pCcnMz8+fPp2rXrzb8M8Msvv3Dq1CmefPJJ8ufPT5cuXQD4+uuvMyw3ZcoUBg8ezEMPPUS/fv0IDw9nzpw5NGrUyGkvj1RvvvkmH374IbVq1bIv15kyZQqtWrUiMTExU+0dNGgQPXr04OjRo7Ro0YK+ffsSFBTExIkTadKkSaYDIqnvN3jwYEwmU4Z5PT097b+nBgJuVO7NN98EYMGCBS73GDEajXTr1o19+/axfft2h3uzZs2iWLFi1K9fP1Pvcj2bzeaUdvDgQTZv3kyNGjW4//77M93PBoOBMWPGADBs2DCXdV/Pw8ODGTNm4O3tzYABA7hw4QKbNm3ik08+oUyZMk7LXERERNKjIIaIiORpTz75JO7u7sycOZO+ffsSERHBiRMnMjXwyqwtW7YAUKtWLdzcMl6pWa9ePYcy1/5+OzNCZs6cSa9evciXLx8rVqygUaNGt1xX6iA2dVDbqlUrfH19WbBgQYaBhTVr1rBy5UqmTp3KyJEjWbVqFX369OHEiROMHj3aZZlt27axYcMGPv74Y0aNGsWGDRto1qwZ27dvZ8qUKTds68KFC/nyyy9p0aIFf/75J5MnT2bMmDGsXLmSoUOHsn//ft5///0b1nP69GlOnz6Nm5sbNWvWvGH+a8udOnUKNzc3atWqlWHesmXLUrhwYRISEpxmRKTq2rUrJpPJYTbGzp072bt3L127dr2pfU1S/frrrxw5cgSj0UjlypXt6df3c+pmtKtWreLcuXMZ1lm9enVatmzJjh07WLRoUaba8eCDDzJ69Gj+++8/nnvuOZ577jnc3Nz4/PPP8fb2vun3EhGRe5OCGCIikqc9/PDDfP755wQFBbFo0SJ69OhBpUqVKF68OO3bt2fJkiVYrdbbesb58+cBKFq06A3zpua5dpCYWj4kJOSW2/DJJ59gtVr56quvePTRR2+5ntQNPcPCwuyD8nz58tGyZUuuXLlCREREumU7dOjAww8/7JD21ltv4evry6JFi1zu5fH8888TGhpqvzaZTIwaNQqDwZCp/RamTp2KyWRi0qRJTgPhV199lQIFCmRqkJ3aB/fddx9eXl43zO+qXGYG4q76/1ohISE0aNCApUuXEhMTA6TMwjAajZmaWRMVFcXYsWMZO3Yso0ePpkuXLrRr1w6bzUb//v3t3zp1Q09fX19atWoFpMyw6Ny5M8nJyZn69qNGjcLDw4N33nkn3ZNXrtenTx8aNmzI2rVrOXXqFMOGDXP6NyMiIpIRBTFERCTPa926NX/99RdLly5l8ODBNG7cGIPBwOrVq3nmmWdo164dSUlJ2d3M25K6zGDgwIEuj1vNrDlz5mCxWOjUqRMGg8GenpmlBo8//rhTWmBgIOXKlSMuLo4jR45kqkypUqUICgri2LFjGS4FiYuLY8+ePfj7+zNt2jT74D31Z/z48Xh4eHDx4sV0l7PkRD169CAmJobFixcTExPDkiVLaNCgAcWKFbth2atXrzJu3DjGjRvHxIkT2bx5MzVr1uTLL790WLLx3XffERkZyVNPPeWwh0dqv8+ePfuGs5VKlChB3759OX36NFOnTs30+6UuRQkODmbAgAGZLiciIgI6nURERO4R7u7uPPHEEzzxxBMAWCwWli9fzoABA1izZg1ffvml/WjKmxUUFATAmTNnbpg3NU/hwoXtacHBwQCcPXv2lp4P8OGHHzJlyhS++OILmjVrRkREBA888MBN1WG1Wpk9ezYGg4FOnTo53Hvssce4//772bRpE0eOHKFUqVJO5VO/w/VST5xwtclmRmXOnz9PdHQ0+fPnd5knMjISm83G5cuXGTduXIbvFhMTw3333Zfu/dQ+uHz5MgkJCZmejZHa/suXLxMfH3/D2Riu+v96jRs3pkiRIvYZGNHR0XTv3j1T7QkNDWXv3r03zJcajOrcubNDevHixalVqxa//fYbv/766w334HjttdeYP38+EydOpFu3bplqY+q39fDwuKXlMSIicm/T/zlEROSeZDKZaN26tT1wsX79+luuq3r16gBs2LCB5OTkDPOuW7fOocy1v99OGwwGAxMmTOCll17izJkzNGvWjP37999UHT///DOnT5/GZrNRqVIlAgIC7D+BgYEcP34cSH82hqtTSAAuXrwI4PJUlRuVSS+AcW195cqVIzIyMsOfa48VdaVYsWIUK1aM5ORkfv/99wzzXis0NNRebsOGDRnmPXjwIOfOncPLy4tHHnkk3Xwmk4kuXbqwc+dOxo0bR+HChWnSpEmm23QjBw4csO/D8uSTTzr0c0BAAL/99htw4w0+IWXj3DfeeIPo6Gjee++9LGujiIhIehTEEBGRe1rqIPl2NvqsVasWJUuW5Ny5c8yePTvdfOfOnbNv2NirVy97esuWLQkMDOSPP/644fGWycnJGe7hMWrUKIYMGcKFCxdo0aIFu3btyvR7pA5aGzZsSLdu3Vz+mEymdDf4dDX4j4yMZP/+/fj4+LicveGqzJEjR7hw4QLh4eEZBjHy5ctHuXLlOHLkCJcuXcr0e6Yn9WSZCRMmYLFYMsx77funzpL48MMPM+yb1NkiHTt2vOFMj27dumEwGDhz5gxdunS54YaxNyO1n2vUqJFuP/v5+bFy5cp0g0zX6t27Nw888ABz5szhwIEDWdZOERERVxTEEBGRPG3x4sWsXbvW5eDy/Pnz9qCCq70ZMstoNPLRRx9hMpl46623WLZsmVOeU6dO0aFDB6KioujevTtVq1a138ufP799gPvMM8+wevVql8/ZtWsXTZs2dbks41pvvPEGY8aM4fLlyzz11FNs3br1hu9w9uxZVq9ejZ+fH19//TWTJk1y+dOgQQMuXbrEihUrnOpYuHAhu3fvdkh79913iY2NpV27dri7uzuVmTZtGqdOnbJfWywWRo4cic1ms+/DkZH+/ftjNpt54YUXuHLlitP96Oho/vzzzxvWA/DCCy9QoUIFtmzZQt++fYmMjHTKEx8fzyeffMLYsWMd2lC2bFm2bt1Kv379iI2NdShjNpsZNWoUy5YtIyQkhLfeeuuGbSlevDjLli1j7ty5t7zMyZWEhAQWLlyI0Whk+vTp6fZzhw4dMJvNmdrg093dnVGjRmGxWNI9hUZERCSraE8MERHJ0/7880+mTZtGcHAw1atXp3jx4gCcPHmS1atXEx8fT9WqVenTp89tPadOnTrMnDmTfv360atXLyZOnEiNGjXw9vbm6NGj/PLLL8THx9OpUyc++OADp/Lt27cnISGBwYMH0759e8qXL0+NGjUICAjgypUr/Pnnn+zevRt/f3+XwYDrDRgwAB8fHwYNGsTTTz/N/PnzqVOnTrr5Uzf0bNu2Lb6+vunm6969O6tWreLrr7+mbdu2Dvfq169PkyZNaN26NcHBwWzatImtW7dSokQJRowY4bK+qlWrUqtWLVq3bo2fnx8///wz+/fvp3Llypna9LFLly7s3r2bzz//nEqVKlG/fn3CwsKIiorin3/+YdOmTdSrV4/58+ffsC4fHx+WLFlCz549WbJkCatXr6Zu3bqEh4djs9k4ceIEv/32G5GRkQwfPtxeztfXl8WLF9O5c2cWLlzImjVraNiwISEhIVy6dIk1a9Zw6tQpSpQowcKFC9PdB+R6t3PkbnqWLVtGZGQkDRo0yHCJTffu3fniiy+YPXs2r7zyisMmr640b96cmjVrsnHjxqxusoiIiAMFMUREJE978cUXKVWqFGvXrmX//v2sXbuWuLg4AgMDqVq1Kq1ataJr166ZCgzcSMuWLalatSrTp0/nl19+Yd68eSQmJhIUFESzZs3o3r17hoGE7t27U79+fWbMmMHatWv59ttviY2NJX/+/Dz44IOMHj2abt26ZRhkuFbv3r3x8fGhf//+dOjQgdmzZ9OoUSOnfFarlTlz5tjbkJHGjRtTuHBhNm7cyN9//03JkiXt9/r370/z5s2ZNm0af//9N/ny5aNr166MGDGCAgUKuKzv/fffZ/ny5cyePZt//vmHggUL8sILLzBkyBA8PT0z9Z7jx4+nUaNGfPnll2zcuJErV67g7+9PSEgIzz77rFOwJSPBwcH88MMPrFixgsWLF7Nz505Wr16NwWAgJCSEpk2b0qlTJ2rXru1QrmjRoqxZs4YFCxawdOlSfv75ZyIjI+1998ILL9CzZ89MHcN6J6UuJblRP1esWJHKlSuzY8cO1q1bR7169W5Y95gxY6hXr95tLc0SERG5EUNkZKT+TyMiIiK3rF+/fnzzzTesWLGCWrVqZapM8+bN+f3339m9e7d9doyIiIjIjWhPDBERERERERHJFRTEEBEREREREZFcQUEMEREREREREckVtCeGiIiIiIiIiOQKmokhIiIiIiIiIrmCghgiIiIiIiIikisoiJHLHTlyJLubIFlI/Zl3qC/zFvVn3qM+zf3Uh3mL+jNvUX/mLTmtPxXEEBEREREREZFcQUEMEREREREREckVFMQQERERERERkVxBQQwRERERERERyRXcsrsBIiIiIiIi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MCGrmyciIiIiIiLZJCqDsWJu4uvr63BttVrp3r07L7zwglPeIkWKcPToUad0mw2nPTFSmc0Gh+trN//MKtcGaVKe4e50724tJ8mxe2KIiIiIiIiI5HTbt293GMD/8ccfFClSBD8/P5f5H374YQ4cOEB4eLjTj7e3N/fffz/u7u788ccf9jJRUbEcP34g3TY88EBFrFYru3b9hru7czAh9XQSi8WSbh33338/Hh4ebNmyxZ5msVj4888/KVOmTPof4C5TEENERERERETkFp07d44333yTI0eOEBERwaeffupylkWql156iR07dvDKK6/Yl5asXLmSl19+GUhZOtKtWzfefvtt1q5dy4EDB3jxxQFYrekHIEJDS1G37tNMmDCA1asjOHHiBJs2bWLBggX/fz8Ug8HAqlWr+O+//4iJiXGqw9fXl969e/P222+zevVqDh06xKuvvsrFixd59tlnb/MrZZ1sXU4iIiIiIiIikpu1a9cOq9VK/fr1MRgMdOvWLcMgRoUKFfjxxx8ZM2YMLVq0wGKxUKJECZo3b27P88477xAbG0vXrl3x9vamR4++XLwYZ79vNDrPthgy5HNmznyHESPe5PLlS4SEhNjbERISwpAhQxgzZgwDBw6kY8eOfPbZZ051pB6i0b9/f6KionjooYf45ptv7Pte5ASGyMjIu7NwRe6II0eOUKpUqexuhmQR9Wfeob7MW9SfeY/6NPdTH+Yt6s+85Vb6MyoqCn9//zvUojunefPmlCtX7o7u0WizwdGjRmJi0valCAy0Eh1tIDnZ4JT/4YctGLNwzUVCQgJeXl63VUdW9q+Wk4iIiIiIiIjkUP/8Y3AIYEDK5p0FCjjPR3Bzs2VpACMnyuOvJyIiIiIiIpI72Wxw5YrzbAt3dwgMdA5iGJyz5jnaE0NERERERETkFvzwww93tP6kJLDZXAUxbHh7O+e//rjVvEgzMURERERERERyoKQk5zSDwYavb8rvQUFWh3sFC1qdC+QxCmKIiIiIiIiI5EBJSc4zK0qUsOLhkfJ7cLAND4+UZSUGg83lPhl5jZaTiIiIiIiIiORA18/ECA62EhCQdu3mBmXKWImJAR8f7MGNvExBDBEREREREZEc6PoghqsghZsbDoGNvE7LSURERERERERyoOuXk6QuHbmXKYghIiIiIiIikgNlZibGvUZBDBEREREREZEcpGLFinzyySR7EKNjx/IsXPiJghgoiCEiIiIiIiKS41itACnLSaZNW0fbts9i/P8RfEBAABEREdnWtuykIIaIiIiIiIhIFki6fv3HbUhOTvs9IKAQfn4+WVZ3bqYghoiIiIiIiOQ4AQH+d/XnVjRv3pxXX32VYcOGUbJkSRo3bszBgwdp3749xYoV44EHHuCZZ57h/Pnz9jI7duygdevWhIeHExoaSpMmTdi2bZtT3SkzMVJ07Fie+fM/BVKWmgD06NGDgIAAKlasyMmTJwkMDGTnzp0OdcyaNYvw8PAsDa5kNwUxRERERERERP5ztDwAACAASURBVG7RokWLsNls/PTTT4wbN45mzZpRtmxZ1qxZw3fffUdMTAydO3fG+v9RiejoaDp06MBPP/3EmjVrqFixIu3atePy5csO9V4bxAAwGlNOJlm7di0An376KYcOHWLt2rUUL16cevXqMXfuXIcyc+fOpUOHDnjkoc00FMQQERERERERuUVhYWG8++67lC5dmp9//pkKFSowatQoypQpQ4UKFZg+fTrbt2+3z5KoU6cOHTt2pEyZMpQuXZrx48fj5eXFzz//7FCvcxAj5b8FCxYEwN/fn+DgYPt1jx49WLx4MQkJCQAcOnSIP/74g27dut3Bt7/7FMQQERERERERuUWVKlWy/7579242bdpE0aJF7T/ly5cH4Pjx4wBcvHiRl19+mUcffZSwsDCKFSvGxYsXOX36tEO91wcxTKaM29GsWTM8PDxYsWIFkDIL49FHH6VcuXK3+YY5i1t2N0BERERERETkepGRUdndhEzx9fW1/261WmnUqBFjxoxxyleoUCEA+vXrx4ULF3jvvfcICwvD09OTp556ymnfCqvV4HBtvMEUBHd3dzp27MjcuXNp3bo1Cxcu5K233rrFt8q5FMQQERERERERyQIPP/wwy5YtIzQ0FHd3d5d5tmzZwvvvv0/jxo0BuHDhgsPGn6ksFsfra4MY7u7uWK7PAHTv3p1q1aoxY8YMYmJiePrpp2/9ZXIoLScRERERERERyQLPPvssV69epVevXvz555+cOHGCdevW8dJLLxEdHQ1AyZIlWbRoEQcPHmTHjh307t3b5cabGS0nCQsLY/369Zw/f57IyEh7eqlSpahevTojRozgqaeews/P7468Z3ZSEENEREREREQkCxQpUoRVq1Zh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VOSvRUSksJ05A3feGcqWLT74+hrM//IsbW7K/TGJidlPJzF8fXHWqFFYpYqIiIiIFIpiDTFuvPFGEhIScjxvsVgYO3YsY8eOzbFPWFgYs2fPLozyRESKhdMJs2b5s2mjD33aHqRjv1IY/gGMGhXEli0+ANjtFib03MbN78Zh79o1x2vlNJ3EWbs2+PkV3osQERERESkEHrsmhojIleq55wIZNy6I+V/7c/eoaOLq9uPDV07z9df+pn6/OK9n5GALR3ecyfFayck5hBhaD0NERERESiCFGCIiHmTFCl9eey3AdezAl/sTJvPkhErZ9n/Pfi+3tjQwlv4v2/NJSebjc9NJHNqZRERERERKIIUYIiIe5NlnA93aNnMdac6AbHpnOkA0m/u+hs+vv7qdy3E6iRb1FBEREZESSCGGiEgxSkvL2kHk77+tbNvmc0nXOUA1/L77zq09pxBD26uKiIiISEmkEENEpBisXetDt65BVK5UiipVynBTzVOMuS3uoo/rz/u8T3+39oNUxbJ/v1t7QoL77iSG1Zq5sKeIiIiISAlTrLuTiIhciebM8Wf06EAcjqyA4fdTNYDctzytw05m8gChJHOYSoxhouvcQapi3bfE1D85GZYuNf+Yr8RhnNWrQ6D7tBUREREREU+nEENEpAj99psPTzwRiGFYLtp3J3VYcstEVhxuSJnEeCY5nyD0UObck9r+B8CW1fcgVbH+OxLjzBnYssWH337zISEha8BdOU5yC//DWbddgb4mEREREZGiohBDRKQIffqpX54CjDb8SEzAAe5742oGRVQAKgArOHv8ONbduymXWA/uyup/kKpYT58mflsinftVZv9+99mC9/M2waSS1rRpwb0gEREREZEipDUxRESK0Lp15ux4DLEc8Ytidu9v6db8AJVCz9A44E9eL/8MqTNmYEREmPob4eE4WrakSsOypvZ4onBi4YGRIdkGGFYcPMBMAGy9ehXwqxIRERERKRoaiSEiUkQSE+HPP80Bw2O8SqmBPej9yg30drVWBWMBGZacR2yEhxv4+RlkZGT2OU05XuEJfvytbLb9m7OeqsRjv/56jOjoAng1IiIiIiJFTyMxRESKwLp1PlStWganMyuYqMsOKnASe/v27g/IJcAAsFqhUiXD1Hb+Qp8X6sgyAGz9+uWjahERERERz6IQQ0SkkO3YYaVXrxC3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iIhIiaAQQ0RERERERERKBIUYIiIiIiIiIlIiKMQQERERERERkRJBIYaIiIiIiIiIlAgKMURERERERESkRFCIISIiIiIiIiIlgkIMERERERERESkRFGKIiIiIiIiISIlgSUhIMIq7CBERERERERGRi9FIDBEREREREREpERRiiIiIiIiIiEiJoBBDREREREREREoEhRgiIiIiIiIiUiIoxBARERERERGREkEhhoiIiIiIiIiUCAoxCtiUKVO46aabqFq1KrVq1aJPnz5s27bN1McwDGJjY6lXrx6RkZF07tyZ7du3u87v37+fkSNH0qhRIyIjI2nUqBHPP/88qamppuscPHiQPn36ULlyZWrWrMmTTz6JzWa7aI0LFiygRYsWVKxYkRYtWrBo0SLT+YULF9KjRw9q1apFWFgYP//882W8IyWbN9zP840aNYqwsDBmzJiRz3ei5POGexkWFpbtn8cff/wy3pmSydPv5/bt2+nfvz+NGjUiLCyM2NjYbPvNmTOHhg0bEhERQdu2bfnll18u8R0p+Yryno4ePZp27doRERFBgwYN8lzj6tWradu2LRERETRq1Ih33nnHdH7NmjX07duXq666irCwMD7++ONLeCdKLm+4hxe+nrCwMJ544ok8X9+beMP9bNCgQbb/bvbu3fsS3pGSzdPv55EjRxgyZAjNmjWjXLlyDB8+PNt++fl/rzcrqvu5detWBg8ezNVXX01kZCRNmzZl+vTpOJ3Oi9ZYmP9mKsQoYKtXr2bw4MEsW7aMhQsX4uvrS7du3Th9+rSrz/Tp05k5cyYTJ05k5cqVhIeH0717dxITEwGIi4vD4XAwZcoUfv31VyZNmsRnn33GmDFjXNdwOBz06dOHpKQklixZwty5c1m4cCHjxo3Ltb7169dz3333cdddd/Hzzz9z1113MXDgQDZu3Ojqk5KSQvPmzXnppZcK+N0pebzhfp6zYMECNm3aRKVKlQro3SlZvOFe7ty50/Tns88+A6Bbt24F+VaVCJ5+P1NTU6lWrRr//e9/iY6OzrbP/PnzGTNmDI899hg//fQTzZs356677uLgwYMF8A6VPEV1TwGcTif9+vWjb9++ea5v37599O7dm+bNm/PTTz/x6KOP8uT/t3e3QVGV/xvAL4R4SEHlUVQeLURIQ0lSETV8QSTCjILIMANpZhMMaoU/FzNh0gQE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","text/plain":[""]},"metadata":{},"output_type":"display_data"}],"source":["plt.figure(figsize=(16,6))\n","# đưa lên biểu đồ \n","plt.plot(date_test[30:], test_1[30:], color='r')\n","plt.plot(date_test[30:], test_2[30:], color='b')\n","plt.title(f\"STOCK {companyName} COMPANY\")\n","plt.xlabel(\"Date\")\n","plt.ylabel(\"Price\")\n","plt.legend(('prediction', 'reality'),loc='upper right')\n","plt.show()"]},{"cell_type":"code","execution_count":null,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"elapsed":1104,"status":"ok","timestamp":1640876869050,"user":{"displayName":"0542_Võ Thương Trường Nhơn","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10797139682346268390"},"user_tz":-420},"id":"Mj5xyw6Xq1ps","outputId":"e72b70e4-1243-4157-bce9-d619baaa8068"},"outputs":[{"name":"stdout","output_type":"stream","text":["Evaluate on test data\n","5/5 [==============================] - 1s 11ms/step - loss: 7.4576e-04\n","\n","\n","test loss, test acc: 0.0007457574247382581 0.9992542425752617\n","Giá dư doán của ngày hôm qua: [[162.3875]]\n"]}],"source":["test_output = model.predict(x_test) \n","print(\"Evaluate on test data\") \n","results = model.evaluate(x_test, y_test, batch_size=128) \n","print('\\n')\n","print(\"test loss, test acc:\", results,1-results)\n","print('Giá dư doán của ngày hôm qua: '+str(test_1[-1:]))"]}],"metadata":{"accelerator":"GPU","colab":{"collapsed_sections":[],"name":"code_stock_lstm_train_final.ipynb","provenance":[{"file_id":"1f60XZJdcxpZFHYP8RjFd8DQv5HlCne6A","timestamp":1640246501386},{"file_id":"14eJaC70ghBQ3UEPE4CuqennlyPhHvrgX","timestamp":1640187837537},{"file_id":"1s4IeiKxNLrTp9Tx_yQWtFQMYtr1kKURB","timestamp":1640181985808}]},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"}},"nbformat":4,"nbformat_minor":0}
2 |
--------------------------------------------------------------------------------