In this simple notebook, we can download historical price series in a scalable way, including various categories (Adj Close, Close, High, Low, Open, Volume). Additionally, we save the data in downloadable files in case you want to work offline.
If you have any questions about this project, feel free to contact me:
- LinkedIn: linkedin.com/in/ajsiracusa
- GitHub: github.com/JonatanSiracusa
- Medium: jonatansiracusa.medium.com
- GitHub Page: jonatansiracusa.github.io
- Features
- Requirements
- Installation
- Usage
- Examples and Visualizations
- Project Structure
- Technologies
- Contribution
- License
- Download financial data from
yfinance. - Convert data into a time series Dataframe.
- Export data to
.csvand.xlsxfiles. - Deployed on GitHub Pages and Streamlit.
Python 3.8 or higher was used in development. Install dependencies by running:
pip install -r requirements.txt
- Clone the repository:
git clone https://github.com/YOUR_USER/PROJECT_NAME.git
cd PROJECT_NAME
- Create a virtual environment:
python -m venv env
- Activate the virtual environment:
- On Windows:
.\env\Scripts\activate - On macOS/Linux:
source env/bin/activate
- Install libraries:
pip install -r requirements.txt
Run the main script to optimize a portfolio with selected assets:
python optimize_portfolio.py
Example input and output:
{
"assets": ["AAPL", "MSFT", "TSLA", "AMZN"],
"period": "5y"
}
Expected output:
{
"optimized_weights": {"AAPL": 0.3, "MSFT": 0.25, "TSLA": 0.2, "AMZN": 0.25},
"expected_return": 0.15,
"risk": 0.12
}
📈 Efficient Frontier Chart (Example)\
📉 Return Distribution\
portfolio-optimization/
│-- optimize_portfolio.py # Main script
│-- data/ # Downloaded data
│-- models/ # Financial model implementations
│-- utils/ # Utility functions
│-- tests/ # Unit tests
│-- README.md # This file
│-- LICENSE # Project license
│-- requirements.txt # Project dependencies
│-- .gitignore # Files to ignore in Git
- Python (Pandas, NumPy, SciPy)
- Matplotlib / Plotly
- GitHub Pages for deployment
- Streamlit for UI
If you want to contribute, follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-new-feature). - Make commits with clear descriptions (
git commit -m "Add new feature"). - Submit a Pull Request.
For more details, check the CONTRIBUTING.md file.
This project is under the MIT License. See the LICENSE file for details.
--
If you find this repository useful, give it a star ⭐ on GitHub and follow me on LinkedIn and GitHub.
En este sencillo notebook podemos descargar, de forma escalabale, series de precios históricos con sus distintas categorías (Adj Close, Close, High, Low, Open, Volume). Asimismo, guardamos los datos en archivos descargables, en caso de desear trabajar sin estar conectados a internet.
Si tenes preguntas sobre este proyecto, no dudes en contactarme a través de:
- LinkedIn: linkedin.com/in/ajsiracusa
- GitHub: github.com/JonatanSiracusa
- Medium: jonatansiracusa.medium.com
- GitHub Page: jonatansiracusa.github.io
- Características
- Requisitos
- Instalación
- Uso
- Ejemplos y Visualizaciones
- Estructura del Proyecto
- Tecnologías
- Contribución
- Licencia
- Descarga de datos financieros desde
yfinance. - Conversión de datos en una serie de datos.
- Se exportan los datos en archivos
.csvy.xlsx. - Desplegado en GitHub Pages y Streamlit.
Se utilizo Python 3.8 o superior instalado, en el desarrollo. Instala las dependencias ejecutando:
pip install -r requirements.txt
- Clonar el repositorio:
git clone https://github.com/TU_USUARIO/NOMBRE_DEL_PROYECTO.git
cd NOMBRE_DEL_PROYECTO
- Crear un entorno virtual:
python -m venv env
- Activar el entorno virtual:
- En Windows:
.\env\Scripts\activate - En macOS/Linux:
source env/bin/activate
- Instalar librerías:
pip install -r requirements.txt
Ejecuta el script principal para optimizar un portafolio con activos seleccionados:
python optimize_portfolio.py
Ejemplo de entrada y salida:
{
"assets": ["AAPL", "MSFT", "TSLA", "AMZN"],
"period": "5y"
}
Salida esperada:
{
"optimized_weights": {"AAPL": 0.3, "MSFT": 0.25, "TSLA": 0.2, "AMZN": 0.25},
"expected_return": 0.15,
"risk": 0.12
}
📈 Gráfico de Frontera Eficiente (Ejemplo)\
📉 Distribución de Retornos\
portfolio-optimization/
│-- optimize_portfolio.py # Script principal
│-- data/ # Datos descargados
│-- models/ # Implementaciones de modelos financieros
│-- utils/ # Funciones auxiliares
│-- tests/ # Pruebas unitarias
│-- README.md # Este archivo
│-- LICENSE # Licencia del proyecto
│-- requirements.txt # Dependencias del proyecto
│-- .gitignore # Archivos a ignorar por Git
- Python (Pandas, NumPy, SciPy)
- Matplotlib / Plotly
- GitHub Pages para despliegue
- Streamlit para la interfaz
Si deseas contribuir, segui estos pasos:
- Realiza un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature-nueva-funcionalidad). - Realiza commits con descripciones claras (
git commit -m "Añadir nueva funcionalidad"). - Envia un Pull Request.
Para más detalles, revisa el archivo CONTRIBUTING.md.
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
--
Si el respositorio te resulta útil, dale una estrella ⭐ en GitHub y seguime en LinkedIn y GitHub.