Skip to content

Latest commit

 

History

History
198 lines (114 loc) · 6.55 KB

README.md

File metadata and controls

198 lines (114 loc) · 6.55 KB

Columbia University Engineering, New York FinTech BootCamp

August 2022 Cohort

Passive Investing exchange-traded fund (ETF)

Objective - to script a financial database and web application using SQL, Python, and the Voilà library to analyze the performance of a hypothetical FinTech ETF.

Beyond the scope of the assignment, the author sought to conduct additional refinement and/or analysis of the data obtained and demonstrate further visualization.... Supplemental and/or extra analysis beyond the scope of the project is noted as 'supplemental' were approrpiate.


Methods

The code script analysis performed:

Step I - Analyze a single asset in the FinTech ETF, provide visualization

viz1

viz2

Step I - Supplementals analyze all individual assets in the FinTech ETF, provide visualization

viz3

viz4

Step II - Optimize the SQL Queries, analyze the ETF overall cumulative performance, provide visualization

viz5

Final Voila Images

voila1

voila2

voila3


Technologies


Dependencies

This project leverages Jupyter Lab v3.4.4 and python v3.7 with the following packages:

  • numpy - Software library, NumPy is the fundamental package for scientific computing in Python, provides vast functionality.

  • pandas - Software library written for the python programming language for data manipulation and analysis.

  • read_sql_query - From 'pandas', read SQL query into a DataFrame; returns a DataFrame corresponding to the result set of the SQL query string.

  • concat - From 'pandas', concatenate pandas objects along a particular axis, allows optional set logic along the other axes.

  • hvplot - provides a high-level plotting API built on HoloViews that provides a general and consistent API for plotting data into numerous formats listed within linked documentation.

  • SQLAlchemy - the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.

  • Engine - From 'SQLAlchemy', the starting point for any SQLAlchemy application; creates a tailored Dialect object, as well as a Pool object which will establish a DBAPI connection.

  • Inspection - From 'SQLAlchemy', inspection module provides the inspect() function, which delivers runtime information about a wide variety of SQLAlchemy objects, both within the Core as well as the ORM.

Hardware used for development

MacBook Pro (16-inch, 2021)

Chip Appple M1 Max
macOS Monterey version 12.6

Development Software

Homebrew 3.5.10

Homebrew/homebrew-core (git revision 0b6b6d9004e; last commit 2022-08-30)
Homebrew/homebrew-cask (git revision 63ae652861; last commit 2022-08-30)

anaconda Command line client 1.11.0

conda 22.9.0
Python 3.9.13

pip 22.2.2 from /opt/anaconda3/envs/jupyterlab_env/lib/python3.9/site-packages/pip (python 3.9)

git version 2.37.2


Installation of application (i.e. github clone)

In the terminal, navigate to directory where you want to install this application from the repository and enter the following command

git clone git@github.com:Billie-LS/snaking_fintech_etf.git

Usage

From terminal, the installed application is run through jupyter lab web-based interactive development environment (IDE) interface by typing at prompt:

  > jupyter lab

The file you will run is:

  etf_analyzer.ipynb

Project requirements

see starter code


Version control

Version control can be reviewed at:

repository


Contributors

Author

Loki 'billie' Skylizard LinkedIn @GitHub

BootCamp lead instructor

Vinicio De Sola LinkedIn @GitHub

BootCamp teaching assistants

Santiago Pedemonte LinkedIn @GitHub

BootCamp classmates

Stratis Gavnoudias LinkedIn @GitHub


Other Reference Sources

SQLAlchemy PYSHEET

set dataframe index pandas

pandas.DataFrame.to_sql pandas

inner joins W3 schools

annualized returns datacamp

add an empty column to a dataframe stack_overflow


License

MIT License

Copyright (c) [2022] [Loki 'billie' Skylizard]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.