Generatore di dataset MagicInput

Panoramica

Il MagicInput Dataset Builder svolge un ruolo cruciale nella preparazione di dati di addestramento etichettati e di alta qualità per modelli di trading crypto basati sull'intelligenza artificiale. Simula gli esiti delle operazioni in base a un'ampia gamma di preset di strategia e condizioni storiche, generando un dataset ricco in formato .parquet, ottimizzato per l'addestramento efficiente dei modelli.

🛠 Configurazione (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: Salta / limite test
isDryRun: false
writeThreshold: 500
maxMemoryMB: 8000

database:
  provider: sqlite
  connectionString: Data Source=trade.db

Questa configurazione guida il simulatore su:

  • Simbolo target e intervallo temporale (es. BTC, 1m)
  • Intervallo di backtest in giorni
  • Categorie e strategie da includere
  • Simulazione direzionale: Long / Short / Both
  • Limiti di memoria e soglie di scrittura
  • Modalità test (dry-run) opzionale

🧩 Gerarchia Categoria / Direzione / Strategia

Ogni dataset è organizzato in una struttura a 3 livelli di cartelle:

  • Categoria: es. meme, layer1, AI
  • Direzione: Long, Short, Both
  • Strategia: balance_midterm, long_term, scalp, swing

Ogni file YAML preset definisce intervalli di input parametrici per la generazione dei dataset.

🧠 Esempio di Preset

name: Strategia Scalping - Long
description: Profilo di trading ad alta frequenza e breve termine con SL/TP stretti e leva elevata

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]

📦 Output del Dataset

I dataset finali vengono salvati su disco in: /datasets/parquet_{YYYYMMDD}/{category}/{direction}/{symbol}.parquet

Esempio:

/datasets/parquet_20250713/meme/Both/WIF.parquet

🚀 Funzionalità della Pipeline di Simulazione

  • ✔️ Caricamento e filtro dei preset
  • ✔️ Controllo direzionale (Long / Short / Both)
  • ✔️ Simulazione parallela sicura per la memoria
  • ✔️ Batch intelligente, logging ETA, tracciamento Run ID
  • ✔️ Modalità test (dry-run) opzionale
  • ✔️ Supporto per esportazione CSV

🧼 Validazione e Riparazione del Dataset

  • ✔️ Validazione della struttura dell'intestazione
  • ✔️ Salto automatico delle righe con null / NaN o senza operazioni
  • ✔️ Backup con estensione .bak prima di sovrascrivere i file corrotti
  • ✔️ Salvataggio compresso come .gz
  • ✔️ Log di debug + spostamento dei file danneggiati in __bad__/
  • ✔️ Elaborazione sicura con thread per dataset di grandi dimensioni

📚 Categorie Supportate

Queste categorie rappresentano settori di mercato logici o tipologie di token. Puoi configurare qualsiasi combinazione nel tuo file 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

💡 Note

  • La generazione dei dataset richiede CPU/memoria elevate. Configura maxMemoryMB e writeThreshold di conseguenza.
  • Usa isDryRun: true per validare la configurazione e visualizzare in anteprima le variazioni senza scrivere file.
  • maxVariations aiuta a prevenire sovraccarichi di memoria in set di permutazioni molto grandi.
  • Tutte le simulazioni sono riproducibili usando lo stesso RunId e la stessa configurazione.

📎 Related Topics