Views
No views yet
andres31416/pen-usd-trading-dataset.Precio (serie temporal)
|
v
Division en parches
|
v
Embedding + Positional Encoding
|
v
Transformer Encoder (N capas, atencion multi-cabeza)
|
v
Cabeza de prediccion -> precio(s) futuro(s)signal_logic.generar_senal): que predice
el Transformer sobre el precio FUTURO (proximo paso).technical_indicators.generar_senal_tecnica): evalua
si el precio ACTUAL esta en una zona anormal (sobrecompra/sobreventa)
respecto a su comportamiento reciente, usando 3 indicadores clasicos
de estrategias de "mean reversion":signal_logic.combinar_senales): junta ambas
señales en una sola alerta, con 3 niveles:| Forecasting | Tecnico | Resultado |
|---|---|---|
| COMPRAR | COMPRAR | 🔴 ALARMA ALTA — Comprar |
| VENDER | VENDER | 🔴 ALARMA ALTA — Vender |
| COMPRAR | MANTENER (o viceversa) | 🟡 ALARMA MODERADA — con precaucion |
| COMPRAR | VENDER (opuestas) | ⚪ SIN ALARMA — señales contradictorias |
| MANTENER | MANTENER | ⚪ SIN ALARMA — nada que hacer |
src/inference.py, que corre ambas
evaluaciones y muestra los 3 bloques de resultado (prediccion,
señal tecnica, alarma combinada).src/incremental_update.py):incremental_learning_rate en
config/config.py), y pocas epochs.checkpoints/backup_*.pt, para poder
revertir si el modelo actualizado empeora.incremental_updates) de cuantas veces se ha
actualizado el modelo desde su entrenamiento inicial.pen-usd-trading-model/
├── README.md # Esta model card
├── requirements.txt
├── config/
│ └── config.py # Hiperparametros y rutas
├── src/
│ ├── dataset.py # Carga y ventaneo de datos
│ ├── model.py # Arquitectura PatchTST
│ ├── train.py # Entrenamiento inicial (desde cero)
│ ├── incremental_update.py # Fine-tuning incremental (warm-start)
│ ├── signal_logic.py # Señal forecasting + combinacion de alarma
│ ├── technical_indicators.py # RSI, Bollinger %B, Z-score (señal tecnica)
│ └── inference.py # Prediccion + señal tecnica + alarma combinada
└── checkpoints/
├── best_model.pt # Checkpoint activo (se sube via Git LFS)
├── backup_*.pt # Respaldos automaticos antes de cada update
└── training_history.json # Historial de perdida por epoch1python3 -m venv venv
2source venv/bin/activate
3pip install -r requirements.txt
4
5# Asegurate que el dataset este clonado como carpeta hermana, o define:
6export PEN_USD_DATASET_DIR=/ruta/a/pen-usd-trading-dataset/data
7
8python3 src/train.pycheckpoints/best_model.pt y checkpoints/training_history.json.python3 src/incremental_update.py --nuevos_datos ruta/a/datos_nuevos.csvdate,time,datetime_utc,open,high,low,close,volume).python3 src/inference.py --datos ruta/a/daily.csv============================================================
RESULTADO DE LA PREDICCION (FORECASTING)
============================================================
Precio actual: 3.40000
Prediccion (siguiente paso): 3.36667
Prediccion ajustada al banco: 3.36667 (multiplicador=1.0)
Cambio esperado: -0.980%
Señal de forecasting: VENDER (confianza: alta)
------------------------------------------------------------
Prediccion completa (5 pasos futuros):
paso +1: 3.36667
paso +2: 3.35323
...
============================================================
SEÑAL TECNICA (basada en el precio ACTUAL)
============================================================
RSI: 55.42
Bollinger %B: 0.70
Z-score: 0.79
Votos compra/venta: 0/0
Señal tecnica: MANTENER
Detalle: RSI=55.4 (zona neutral) | Bollinger %B=0.70 (dentro del canal normal) | Z-score=0.79 (zona neutral)
============================================================
ALARMA COMBINADA (forecasting + tecnico)
============================================================
Nivel de alarma: MODERADA
Accion final: VENDER
¿Coinciden?: NO
Mensaje: Solo una de las dos señales sugiere accion (VENDER). Alarma moderada: considerar con precaucion.
============================================================config/config.py, SignalConfig.bank_spread_multiplier permite
ajustar la prediccion de mercado a una aproximacion de lo que cobraria
un banco comercial especifico (ej. BCP), sin contaminar el entrenamiento
del modelo con ese margen comercial. Ajusta este valor comparando
periodicamente contra la tasa real publicada por el banco.training_history.json y comparar el desempeño antes/despues de cada
actualizacion incremental.