Generador de conjuntos de datos MagicInput

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 y writeThreshold 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.

📎 Related Topics