andres31416/pen-usd-trading-dataset
PEN/USD Trading Dataset Historico del tipo de cambio Sol Peruano (PEN) / Dolar Americano (USD), obtenido desde Yahoo Finance (ticker PEN=X), en tres temporalidades distintas. Pensado como base para entrenar modelos de forecasting y asistentes de trading (compra/venta) sobre este par de divisas. Fuente de datos Los datos provienen de Yahoo Finance, que agrega cotizaciones de mercado (no es la tasa interna de un banco comercial especifico como BCP, sino el precio de… See the full description on the dataset page: https://huggingface.co/datasets/andres31416/pen-usd-trading-dataset.
PEN/USD Trading Dataset
Historico del tipo de cambio Sol Peruano (PEN) / Dolar Americano (USD), obtenido desde Yahoo Finance (ticker PEN=X), en tres temporalidades distintas. Pensado como base para entrenar modelos de forecasting y asistentes de trading (compra/venta) sobre este par de divisas.
Fuente de datos
Los datos provienen de Yahoo Finance, que agrega cotizaciones de mercado (no es la tasa interna de un banco comercial especifico como BCP, sino el precio de mercado del par PEN/USD). Se descargan con la libreria yfinance mediante el script scripts/build_dataset.py.
Nota: para aproximar la tasa que cobra un banco comercial especifico (ej. BCP), se recomienda aplicar un multiplicador/spread configurable sobre estos datos de mercado en la capa de despliegue de la aplicacion, en lugar de contaminar el dataset de entrenamiento con el margen comercial de un banco en particular.
Archivos y temporalidades
Estos limites de hourly y minute no son una limitacion del script, son restricciones que Yahoo Finance impone sobre cuanto historico intradia entrega de forma gratuita. Para mantener el dataset actualizado en esas dos temporalidades, el script debe re-ejecutarse periodicamente (ver seccion "Mantenimiento" mas abajo).
Columnas
Todos los CSVs comparten la misma estructura:
date: fecha en formatoYYYY-MM-DDtime: hora en formatoHH:MM:SS(UTC)datetime_utc: timestamp completo con zona horaria UTCopen: precio de apertura del periodohigh: precio maximo del periodolow: precio minimo del periodoclose: precio de cierre del periodovolume: volumen reportado (en forex suele ser 0 o no significativo, ya que no existe un volumen centralizado como en acciones)
Como se genero
Se recomienda usar un entorno virtual (venv) para no instalar las dependencias directamente en el Python del sistema.
1. Crear y activar el entorno virtual
En Linux / WSL2 / macOS:
python3 -m venv venv
source venv/bin/activateEn Windows (PowerShell, si no usas WSL2):
python -m venv venv
venv\Scripts\Activate.ps1Cuando el entorno esta activo, tu terminal muestra un prefijo (venv) al inicio de la linea.
2. Instalar dependencias
Con el venv activado, no se necesita --break-system-packages (esa bandera solo aplica cuando se instala fuera de un entorno virtual, directo sobre el Python del sistema):
pip install -r scripts/requirements.txtSi por alguna razon pip no encuentra el modulo tras instalar, verifica que python3 y pip apunten al mismo entorno:
which python3
which pipAmbos deben apuntar a una ruta dentro de venv/ (ej. .../venv/bin/python3). Si no coinciden, usa:
python3 -m pip install -r scripts/requirements.txt3. Ejecutar el script
python3 scripts/build_dataset.pyEsto genera data/daily.csv, data/hourly.csv y data/minute.csv.
4. Desactivar el entorno virtual (al terminar)
deactivateNotas rapidas
- El
venvno debe subirse al repositorio (ya esta excluido en.gitignore). - Si clonas este repo en otra maquina, solo repite los pasos 1 y 2 para recrear el entorno; no necesitas copiar la carpeta
venv/.
El script:
- Descarga las 3 temporalidades desde Yahoo Finance.
- Limpia duplicados, valores nulos y normaliza columnas.
- Distribuye cada temporalidad en su CSV correspondiente dentro de
data/. - Imprime un resumen con la cantidad de filas y el rango de fechas de cada archivo.
Mantenimiento (mantener el dataset actualizado)
Como hourly.csv y minute.csv tienen ventanas historicas limitadas por la fuente, se recomienda:
- Ejecutar
build_dataset.pyperiodicamente (ej. una vez al dia via cron/task scheduler) y acumular los datos nuevos en lugar de sobreescribir, para ir construyendo un historico intradia propio con el tiempo. daily.csvno necesita este cuidado especial, ya que Yahoo siempre entrega el historico completo disponible en cada ejecucion.
Licencia
MIT. Los datos subyacentes provienen de Yahoo Finance y estan sujetos a sus propios terminos de uso para datos de mercado.
