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
ewriteThreshold
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.