Resumen
El Constructor de Conjuntos de Datos MagicInput desempeña un papel crucial en la preparación de datos de entrenamiento etiquetados y de alta calidad
para modelos de trading de criptomonedas basados en inteligencia artificial. Simula resultados de operaciones basadas en una amplia variedad de configuraciones
preestablecidas y condiciones históricas para generar un conjunto de datos enriquecido en formato .parquet
, optimizado para
el entrenamiento de modelos de alto rendimiento.
🛠 Configuración (config.yaml)
daysBack: 30
exportFolder: exports
categories:
- meme
datasetDir: datasets
baseDir: presets
direction: Both # Long, Short, Both
strategy: scalp # balance_midterm, long_term, scalp, swing
maxVariations: 100 # 0: Saltar / límite de prueba
isDryRun: false
writeThreshold: 500
maxMemoryMB: 8000
database:
provider: sqlite
connectionString: Data Source=trade.db
Esta configuración guía al simulador sobre:
- Símbolo objetivo e intervalo temporal (por ejemplo: BTC, 1m)
- Rango del backtest en días
- Categorías y estrategias a incluir
- Simulación direccional: Long / Short / Both
- Límites de memoria y umbrales
- Modo de prueba opcional (dry-run)
🧩 Jerarquía de Categoría / Dirección / Estrategia
Cada conjunto de datos se organiza en una jerarquía de carpetas de tres niveles:
- Categoría: por ejemplo
meme
,layer1
,AI
- Dirección:
Long
,Short
,Both
- Estrategia:
balance_midterm
,long_term
,scalp
,swing
Cada archivo YAML define los rangos de parámetros para generar el conjunto de datos.
🧠 Ejemplo de Preset
name: Estrategia Scalping - Long
description: Perfil de trading de alta frecuencia a corto plazo con SL/TP ajustados y alto apalancamiento
leverage: [25, 50, 75]
strategy: [0, 1, 2]
virtualBalance: [100, 250]
riskPercent: [3, 5]
stopLoss: [0.3, 0.5, 1.0]
takeProfit: [0.5, 1.0, 2.0]
trailingSLOffset: [0.2, 0.5]
breakevenActivation: [0.5, 1.0]
breakevenBuffer: [0.1, 0.2]
trailingTPTrigger: [1.0, 2.0]
trailingTPOffset: [0.5]
timeTriggerEnabled: [true]
timeTriggerMinutes: [1, 3, 5]
timeTriggerModes: [2]
change: [0.3, 0.5, 1.0]
direction: [0, 1]
interval: [1, 3, 5]
match: [0, 1, 2]
📦 Salida del Conjunto de Datos
Los conjuntos de datos finales se escriben en el disco en:
/datasets/parquet_{YYYYMMDD}/{category}/{direction}/{symbol}.parquet
Ejemplo:
/datasets/parquet_20250713/meme/Both/WIF.parquet
🚀 Funcionalidades del Flujo de Simulación
- ✔️ Carga y filtrado de presets
- ✔️ Control direccional (
Long
/Short
/Both
) - ✔️ Simulación paralela segura para la memoria
- ✔️ Procesamiento por lotes inteligente, registro ETA, seguimiento de ID de ejecución
- ✔️ Modo dry-run opcional para vista previa
- ✔️ Soporte para exportación en formato CSV
🧼 Validación y Reparación del Conjunto de Datos
- ✔️ Validación de la estructura del encabezado
- ✔️ Omitir automáticamente filas con null/NaN o sin operaciones
- ✔️ Copia de seguridad
.bak
antes de sobrescribir archivos erróneos - ✔️ Re-guardado comprimido como
.gz
- ✔️ Registros de depuración y reubicación de archivos defectuosos en
__bad__/
- ✔️ Procesamiento seguro por hilos para conjuntos de datos grandes
📚 Categorías Soportadas
Estas categorías representan sectores de mercado lógicos o tipos de tokens.
Puedes configurar cualquier combinación en tu archivo config.yaml
.
- AI
- bitcoin-layer2
- bluechip / bluechip-alt
- defin / defin-alt
- enterprise-alt
- gaming
- highcap-alt
- high-volatility-alt
- identity
- infrastructure
- layer1 / layer2 / layer1-highcap
- legacy / legacy-alt
- meme
- metaverse
- new-alt
- ordinals
- pow-alt
- stablecoin
- storage
- video
- zero-knowledge
💡 Notas
- La construcción del conjunto de datos requiere un uso intensivo de CPU y memoria. Ajusta
maxMemoryMB
ywriteThreshold
en consecuencia. - Usa
isDryRun: true
para validar la configuración y previsualizar variaciones sin guardar archivos. - maxVariations ayuda a evitar desbordamientos de memoria cuando hay muchas combinaciones.
- Todas las simulaciones son reproducibles usando el mismo
RunId
y configuración.