This commit is contained in:
wassname
2022-07-16 15:41:36 +08:00
parent 47ea8722ff
commit e0931585df
12 changed files with 1626 additions and 6 deletions
+92
View File
@@ -1,2 +1,94 @@
/data/
*/.ipynb_checkpoints/*
*/__pycache__/*
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
# Translations
*.mo
*.pot
# Django stuff:
*.log
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# DotEnv configuration
.env
# Database
*.db
*.rdb
# Pycharm
.idea
# VS Code
.vscode/
# Spyder
.spyproject/
# Jupyter NB Checkpoints
.ipynb_checkpoints/
# exclude data from source control by default
/data/
# Mac OS-specific storage files
.DS_Store
# vim
*.swp
*.swo
# Mypy cache
.mypy_cache/
+1 -1
View File
@@ -111,4 +111,4 @@ if __name__ == "__main__":
)
args = parser.parse_args()
main(args)
main(args)
+20
View File
@@ -0,0 +1,20 @@
To source the data first walk through the `make_wind_dataset` notebook.
To generate forecasts for a station then run
```{bash}
python GPGenerator.py
--kernel={volt, sm, matern} ## kernel choice
--stn_idx=0 ## station index in the dataset
--mean={ewma, constant} ## mean choice
--ntrain=400 ## training window
--n_test_times=100 ## number of test time points
```
experiments/stocks/LSTMGenerator.py
experiments/stocks/GenerateMultiMeanPreds.py
experiments/stocks/ForecastGenerator.py
+1 -1
View File
@@ -12,4 +12,4 @@ python GPGenerator.py
--mean={ewma, constant} ## mean choice
--ntrain=400 ## training window
--n_test_times=100 ## number of test time points
```
```
+35
View File
@@ -0,0 +1,35 @@
# 2022-07-16 15:14:59 make a new conda env for volt
```sh
export PROJ=volt
mamba create -y --name $PROJ python=3.7 -c pytorch -c conda-forge
# now I want to install pytorch with conda to avoid cuda issues, make sure we get the right version by looking at nvidia-smi to get cuda version. pick the closest
mamba install -y pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
mamba install botorch -c pytorch -c gpytorch -c conda-forge
# install kernel
mamba install -y ipykernel pip ipywidgets
python -m ipykernel install --user --name $PROJ --display-name $PROJ
# install this
pip install -e .
```
# data
instead of using robinhood (US only) we will use tingo
```py
import datetime
import pandas_datareader as pdr
# restricting to 1996-01-04 00:00:00 2019-06-28 00:00:00
api_key = os.environ["TIINGO_API_KEY"]
start = datetime.datetime(1996, 1, 4)
end = datetime.datetime(2019, 6, 28)
tickers = ["MSFT", "AAPL", "XOM"] #, "TUR", "RSX", "EWY", "EWS", "VTIP", "TLT", "BWX", "PDBC", "IAU", "VNQI"]
symbols = pdr.get_data_tiingo(tickers, api_key=api_key, start=start, end=end)
symbols
```
@@ -438,7 +438,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -452,7 +452,20 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.8"
"version": "3.9.9"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+184
View File
@@ -0,0 +1,184 @@
name: volt
channels:
- conda-forge
- pytorch
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_kmp_llvm
- argon2-cffi=21.3.0=pyhd8ed1ab_0
- argon2-cffi-bindings=21.2.0=py37h540881e_2
- attrs=21.4.0=pyhd8ed1ab_0
- backcall=0.2.0=pyh9f0ad1d_0
- backports=1.0=py_2
- backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0
- beautifulsoup4=4.11.1=pyha770c72_0
- blas=2.115=mkl
- blas-devel=3.9.0=15_linux64_mkl
- bleach=5.0.1=pyhd8ed1ab_0
- botorch=0.6.5=0
- brotli=1.0.9=h166bdaf_7
- brotli-bin=1.0.9=h166bdaf_7
- brotlipy=0.7.0=py37h540881e_1004
- bzip2=1.0.8=h7f98852_4
- ca-certificates=2022.6.15=ha878542_0
- certifi=2022.6.15=py37h89c1867_0
- cffi=1.15.1=py37h43b0acd_0
- charset-normalizer=2.1.0=pyhd8ed1ab_0
- colorama=0.4.5=pyhd8ed1ab_0
- cryptography=37.0.4=py37h38fbfac_0
- cudatoolkit=11.3.1=h9edb442_10
- cycler=0.11.0=pyhd8ed1ab_0
- debugpy=1.6.0=py37hd23a5d3_0
- decorator=5.1.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- entrypoints=0.4=pyhd8ed1ab_0
- ffmpeg=4.3=hf484d3e_0
- flit-core=3.7.1=pyhd8ed1ab_0
- fonttools=4.34.4=py37h540881e_0
- freetype=2.10.4=h0708190_1
- giflib=5.2.1=h36c2ea0_2
- gmp=6.2.1=h58526e2_0
- gnutls=3.6.13=h85f3911_1
- idna=3.3=pyhd8ed1ab_0
- importlib-metadata=4.11.4=py37h89c1867_0
- importlib_resources=5.8.0=pyhd8ed1ab_0
- ipykernel=6.15.1=pyh210e3f2_0
- ipython=7.33.0=py37h89c1867_0
- ipython_genutils=0.2.0=py_1
- ipywidgets=7.7.1=pyhd8ed1ab_0
- jedi=0.18.1=py37h89c1867_1
- jinja2=3.1.2=pyhd8ed1ab_1
- joblib=1.1.0=pyhd8ed1ab_0
- jpeg=9e=h166bdaf_2
- jsonschema=4.7.2=pyhd8ed1ab_0
- jupyter_client=7.3.4=pyhd8ed1ab_0
- jupyter_core=4.10.0=py37h89c1867_0
- jupyterlab_pygments=0.2.2=pyhd8ed1ab_0
- jupyterlab_widgets=1.1.1=pyhd8ed1ab_0
- kiwisolver=1.4.4=py37h7cecad7_0
- lame=3.100=h7f98852_1001
- lcms2=2.12=hddcbb42_0
- ld_impl_linux-64=2.36.1=hea4e1c9_2
- lerc=3.0=h9c3ff4c_0
- libblas=3.9.0=15_linux64_mkl
- libbrotlicommon=1.0.9=h166bdaf_7
- libbrotlidec=1.0.9=h166bdaf_7
- libbrotlienc=1.0.9=h166bdaf_7
- libcblas=3.9.0=15_linux64_mkl
- libdeflate=1.12=h166bdaf_0
- libffi=3.4.2=h7f98852_5
- libgcc-ng=12.1.0=h8d9b700_16
- libgfortran-ng=12.1.0=h69a702a_16
- libgfortran5=12.1.0=hdcd56e2_16
- libgomp=12.1.0=h8d9b700_16
- libiconv=1.17=h166bdaf_0
- liblapack=3.9.0=15_linux64_mkl
- liblapacke=3.9.0=15_linux64_mkl
- libnsl=2.0.0=h7f98852_0
- libpng=1.6.37=h753d276_3
- libsodium=1.0.18=h36c2ea0_1
- libstdcxx-ng=12.1.0=ha89aaad_16
- libtiff=4.4.0=hc85c160_1
- libwebp=1.2.2=h3452ae3_0
- libwebp-base=1.2.2=h7f98852_1
- libxcb=1.13=h7f98852_1004
- libzlib=1.2.12=h166bdaf_2
- llvm-openmp=14.0.4=he0ac6c6_0
- lz4-c=1.9.3=h9c3ff4c_1
- markupsafe=2.1.1=py37h540881e_1
- matplotlib-base=3.5.2=py37hc347a89_0
- matplotlib-inline=0.1.3=pyhd8ed1ab_0
- mistune=0.8.4=py37h5e8e339_1005
- mkl=2022.1.0=h84fe81f_915
- mkl-devel=2022.1.0=ha770c72_916
- mkl-include=2022.1.0=h84fe81f_915
- munkres=1.1.4=pyh9f0ad1d_0
- nbclient=0.6.6=pyhd8ed1ab_0
- nbconvert=6.5.0=pyhd8ed1ab_0
- nbconvert-core=6.5.0=pyhd8ed1ab_0
- nbconvert-pandoc=6.5.0=pyhd8ed1ab_0
- nbformat=5.4.0=pyhd8ed1ab_0
- ncurses=6.3=h27087fc_1
- nest-asyncio=1.5.5=pyhd8ed1ab_0
- nettle=3.6=he412f7d_0
- notebook=6.4.12=pyha770c72_0
- numpy=1.21.6=py37h976b520_0
- openh264=2.1.1=h780b84a_0
- openjpeg=2.4.0=hb52868f_1
- openssl=1.1.1q=h166bdaf_0
- opt_einsum=3.3.0=pyhd8ed1ab_1
- packaging=21.3=pyhd8ed1ab_0
- pandas=1.3.5=py37he8f5f7f_0
- pandoc=2.18=ha770c72_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- parso=0.8.3=pyhd8ed1ab_0
- patsy=0.5.2=pyhd8ed1ab_0
- pexpect=4.8.0=pyh9f0ad1d_2
- pickleshare=0.7.5=py_1003
- pillow=9.2.0=py37h44f0d7a_0
- pip=22.1.2=pyhd8ed1ab_0
- prometheus_client=0.14.1=pyhd8ed1ab_0
- prompt-toolkit=3.0.30=pyha770c72_0
- psutil=5.9.1=py37h540881e_0
- pthread-stubs=0.4=h36c2ea0_1001
- ptyprocess=0.7.0=pyhd3deb0d_0
- pycparser=2.21=pyhd8ed1ab_0
- pygments=2.12.0=pyhd8ed1ab_0
- pyopenssl=22.0.0=pyhd8ed1ab_0
- pyparsing=3.0.9=pyhd8ed1ab_0
- pyro-api=0.1.2=pyhd8ed1ab_0
- pyro-ppl=1.8.1=pyhd8ed1ab_0
- pyrsistent=0.18.1=py37h540881e_1
- pysocks=1.7.1=py37h89c1867_5
- python=3.7.12=hb7a2778_100_cpython
- python-dateutil=2.8.2=pyhd8ed1ab_0
- python-fastjsonschema=2.15.3=pyhd8ed1ab_0
- python_abi=3.7=2_cp37m
- pytorch=1.12.0=py3.7_cuda11.3_cudnn8.3.2_0
- pytorch-mutex=1.0=cuda
- pytz=2022.1=pyhd8ed1ab_0
- pyzmq=23.2.0=py37h0c0c2a8_0
- readline=8.1.2=h0f457ee_0
- requests=2.28.1=pyhd8ed1ab_0
- scikit-learn=1.0.2=py37hf9e9bfc_0
- scipy=1.7.3=py37hf2a6cf1_0
- seaborn=0.11.2=hd8ed1ab_0
- seaborn-base=0.11.2=pyhd8ed1ab_0
- send2trash=1.8.0=pyhd8ed1ab_0
- setuptools=59.8.0=py37h89c1867_1
- six=1.16.0=pyh6c4a22f_0
- soupsieve=2.3.1=pyhd8ed1ab_0
- sqlite=3.39.1=h4ff8645_0
- statsmodels=0.13.2=py37hda87dfa_0
- tbb=2021.5.0=h924138e_1
- terminado=0.15.0=py37h89c1867_0
- threadpoolctl=3.1.0=pyh8a188c0_0
- tinycss2=1.1.1=pyhd8ed1ab_0
- tk=8.6.12=h27826a3_0
- torchaudio=0.12.0=py37_cu113
- torchvision=0.13.0=py37_cu113
- tornado=6.2=py37h540881e_0
- tqdm=4.64.0=pyhd8ed1ab_0
- traitlets=5.3.0=pyhd8ed1ab_0
- typing-extensions=4.3.0=hd8ed1ab_0
- typing_extensions=4.3.0=pyha770c72_0
- unicodedata2=14.0.0=py37h540881e_1
- urllib3=1.26.10=pyhd8ed1ab_0
- wcwidth=0.2.5=pyh9f0ad1d_2
- webencodings=0.5.1=py_1
- wheel=0.37.1=pyhd8ed1ab_0
- widgetsnbextension=3.6.1=pyha770c72_0
- xorg-libxau=1.0.9=h7f98852_0
- xorg-libxdmcp=1.1.3=h7f98852_0
- xz=5.2.5=h516909a_1
- zeromq=4.3.4=h9c3ff4c_1
- zipp=3.8.0=pyhd8ed1ab_0
- zlib=1.2.12=h166bdaf_2
- zstd=1.5.2=h8a70e8d_2
- pip:
- gpytorch==1.7.0
- loguru==0.6.0
- pyotp==2.6.0
- python-dotenv==0.20.0
- robin-stocks==2.1.0
prefix: /home/wassname/miniforge3/envs/volt
+19
View File
@@ -0,0 +1,19 @@
name: volt
channels:
- conda-forge
- pytorch
dependencies:
- python=3.7
- pytorch
- torchvision
- torchaudio
- cudatoolkit=11.3
- ca-certificates
- openssl
- ipykernel
- pip
- ipywidgets
- certifi
- seaborn
- botorch
prefix: /home/wassname/miniforge3/envs/volt
+103
View File
@@ -0,0 +1,103 @@
argon2-cffi @ file:///home/conda/feedstock_root/build_artifacts/argon2-cffi_1640817743617/work
argon2-cffi-bindings @ file:///home/conda/feedstock_root/build_artifacts/argon2-cffi-bindings_1649500320262/work
attrs @ file:///home/conda/feedstock_root/build_artifacts/attrs_1640799537051/work
backcall @ file:///home/conda/feedstock_root/build_artifacts/backcall_1592338393461/work
backports.functools-lru-cache @ file:///home/conda/feedstock_root/build_artifacts/backports.functools_lru_cache_1618230623929/work
beautifulsoup4 @ file:///home/conda/feedstock_root/build_artifacts/beautifulsoup4_1649463573192/work
bleach @ file:///home/conda/feedstock_root/build_artifacts/bleach_1656355450470/work
botorch==0.6.5
brotlipy @ file:///home/conda/feedstock_root/build_artifacts/brotlipy_1648854164153/work
certifi==2022.6.15
cffi @ file:///home/conda/feedstock_root/build_artifacts/cffi_1656782824682/work
charset-normalizer @ file:///home/conda/feedstock_root/build_artifacts/charset-normalizer_1655906222726/work
colorama @ file:///home/conda/feedstock_root/build_artifacts/colorama_1655412516417/work
cryptography @ file:///home/conda/feedstock_root/build_artifacts/cryptography_1657174000558/work
cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1635519461629/work
debugpy @ file:///home/conda/feedstock_root/build_artifacts/debugpy_1649586340600/work
decorator @ file:///home/conda/feedstock_root/build_artifacts/decorator_1641555617451/work
defusedxml @ file:///home/conda/feedstock_root/build_artifacts/defusedxml_1615232257335/work
entrypoints @ file:///home/conda/feedstock_root/build_artifacts/entrypoints_1643888246732/work
fastjsonschema @ file:///home/conda/feedstock_root/build_artifacts/python-fastjsonschema_1641751198313/work/dist
flit_core @ file:///home/conda/feedstock_root/build_artifacts/flit-core_1645629044586/work/source/flit_core
fonttools @ file:///home/conda/feedstock_root/build_artifacts/fonttools_1657249376706/work
gpytorch==1.7.0
idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1642433548627/work
importlib-metadata @ file:///home/conda/feedstock_root/build_artifacts/importlib-metadata_1653252814274/work
importlib-resources @ file:///home/conda/feedstock_root/build_artifacts/importlib_resources_1655356668708/work
ipykernel @ file:///home/conda/feedstock_root/build_artifacts/ipykernel_1657295047882/work
ipython @ file:///home/conda/feedstock_root/build_artifacts/ipython_1651240553635/work
ipython-genutils==0.2.0
ipywidgets @ file:///home/conda/feedstock_root/build_artifacts/ipywidgets_1655973868664/work
jedi @ file:///home/conda/feedstock_root/build_artifacts/jedi_1649067102072/work
Jinja2 @ file:///home/conda/feedstock_root/build_artifacts/jinja2_1654302431367/work
joblib @ file:///home/conda/feedstock_root/build_artifacts/joblib_1633637554808/work
jsonschema @ file:///home/conda/feedstock_root/build_artifacts/jsonschema-meta_1657629641118/work
jupyter-client @ file:///home/conda/feedstock_root/build_artifacts/jupyter_client_1654730843242/work
jupyter-core @ file:///home/conda/feedstock_root/build_artifacts/jupyter_core_1652365252517/work
jupyterlab-pygments @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_pygments_1649936611996/work
jupyterlab-widgets @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_widgets_1655961217661/work
kiwisolver @ file:///home/conda/feedstock_root/build_artifacts/kiwisolver_1657953088445/work
loguru==0.6.0
MarkupSafe @ file:///home/conda/feedstock_root/build_artifacts/markupsafe_1648737551960/work
matplotlib @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-suite_1651609498426/work
matplotlib-inline @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-inline_1631080358261/work
mistune @ file:///home/conda/feedstock_root/build_artifacts/mistune_1635844677043/work
munkres==1.1.4
nbclient @ file:///home/conda/feedstock_root/build_artifacts/nbclient_1656688109017/work
nbconvert @ file:///home/conda/feedstock_root/build_artifacts/nbconvert-meta_1649676641343/work
nbformat @ file:///home/conda/feedstock_root/build_artifacts/nbformat_1651607001005/work
nest-asyncio @ file:///home/conda/feedstock_root/build_artifacts/nest-asyncio_1648959695634/work
notebook @ file:///home/conda/feedstock_root/build_artifacts/notebook_1654636967533/work
numpy @ file:///home/conda/feedstock_root/build_artifacts/numpy_1649806299270/work
opt-einsum @ file:///home/conda/feedstock_root/build_artifacts/opt_einsum_1617859230218/work
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1637239678211/work
pandas==1.3.5
pandocfilters @ file:///home/conda/feedstock_root/build_artifacts/pandocfilters_1631603243851/work
parso @ file:///home/conda/feedstock_root/build_artifacts/parso_1638334955874/work
patsy @ file:///home/conda/feedstock_root/build_artifacts/patsy_1632667180946/work
pexpect @ file:///home/conda/feedstock_root/build_artifacts/pexpect_1602535608087/work
pickleshare @ file:///home/conda/feedstock_root/build_artifacts/pickleshare_1602536217715/work
Pillow @ file:///home/conda/feedstock_root/build_artifacts/pillow_1657007166151/work
prometheus-client @ file:///home/conda/feedstock_root/build_artifacts/prometheus_client_1649447152425/work
prompt-toolkit @ file:///home/conda/feedstock_root/build_artifacts/prompt-toolkit_1656332401605/work
psutil @ file:///home/conda/feedstock_root/build_artifacts/psutil_1653089169272/work
ptyprocess @ file:///home/conda/feedstock_root/build_artifacts/ptyprocess_1609419310487/work/dist/ptyprocess-0.7.0-py2.py3-none-any.whl
pycparser @ file:///home/conda/feedstock_root/build_artifacts/pycparser_1636257122734/work
Pygments @ file:///home/conda/feedstock_root/build_artifacts/pygments_1650904496387/work
pyOpenSSL @ file:///home/conda/feedstock_root/build_artifacts/pyopenssl_1643496850550/work
pyotp==2.6.0
pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1652235407899/work
pyro-api @ file:///home/conda/feedstock_root/build_artifacts/pyro-api_1614940619870/work
pyro-ppl @ file:///home/conda/feedstock_root/build_artifacts/pyro-ppl_1648155753098/work
pyrsistent @ file:///home/conda/feedstock_root/build_artifacts/pyrsistent_1649013358450/work
PySocks @ file:///home/conda/feedstock_root/build_artifacts/pysocks_1648857264451/work
python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1626286286081/work
python-dotenv==0.20.0
pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1647961439546/work
pyzmq @ file:///home/conda/feedstock_root/build_artifacts/pyzmq_1656183559639/work
requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1656534056640/work
robin-stocks==2.1.0
scikit-learn @ file:///home/conda/feedstock_root/build_artifacts/scikit-learn_1640464152916/work
scipy @ file:///home/conda/feedstock_root/build_artifacts/scipy_1637806658031/work
seaborn @ file:///home/conda/feedstock_root/build_artifacts/seaborn-split_1629095986539/work
Send2Trash @ file:///home/conda/feedstock_root/build_artifacts/send2trash_1628511208346/work
six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work
soupsieve @ file:///home/conda/feedstock_root/build_artifacts/soupsieve_1638550740809/work
statsmodels @ file:///home/conda/feedstock_root/build_artifacts/statsmodels_1654787101575/work
terminado @ file:///home/conda/feedstock_root/build_artifacts/terminado_1652790603075/work
threadpoolctl @ file:///home/conda/feedstock_root/build_artifacts/threadpoolctl_1643647933166/work
tinycss2 @ file:///home/conda/feedstock_root/build_artifacts/tinycss2_1637612658783/work
torch==1.12.0
torchaudio==0.12.0
torchvision==0.13.0
tornado @ file:///home/conda/feedstock_root/build_artifacts/tornado_1656937818679/work
tqdm @ file:///home/conda/feedstock_root/build_artifacts/tqdm_1649051611147/work
traitlets @ file:///home/conda/feedstock_root/build_artifacts/traitlets_1655411388954/work
typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1656706066251/work
unicodedata2 @ file:///home/conda/feedstock_root/build_artifacts/unicodedata2_1649111917568/work
urllib3 @ file:///home/conda/feedstock_root/build_artifacts/urllib3_1657224465922/work
-e git+https://github.com/g-benton/Volt.git@47ea8722ffd82c10f85372f9fb14fbf3cf39962b#egg=voltron
wcwidth @ file:///home/conda/feedstock_root/build_artifacts/wcwidth_1600965781394/work
webencodings==0.5.1
widgetsnbextension @ file:///home/conda/feedstock_root/build_artifacts/widgetsnbextension_1655939017940/work
zipp @ file:///home/conda/feedstock_root/build_artifacts/zipp_1649012893348/work
+2 -2
View File
@@ -10,7 +10,7 @@ def GetStockData(symbols, interval='day', span='5year'):
load_dotenv()
username = os.getenv("robinhood_username")
password = os.getenv("robinhood_password")
r.login(username, password);
r.login(username, password)
data = pd.DataFrame(r.stocks.get_stock_historicals(symbols, interval, span))
data['date'] = pd.to_datetime(data['begins_at'], format='%Y-%m-%d').dt.date
@@ -19,4 +19,4 @@ def GetStockData(symbols, interval='day', span='5year'):
data[ohlc] = data[ohlc].astype("float")
return data[['date', 'symbol', 'open_price', 'close_price',
'high_price', 'low_price']]
'high_price', 'low_price']]