Générateur de jeu de données MagicInput

Vue d'ensemble

Le MagicInput Dataset Builder joue un rôle essentiel dans la préparation de données d'entraînement étiquetées et de haute qualité pour les modèles de trading crypto basés sur l'IA. Il simule les résultats de trading à partir d'une large gamme de préréglages de stratégies et de conditions historiques pour générer un jeu de données riche au format .parquet, optimisé pour l'entraînement performant des modèles.

🛠 Configuration (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: Skip / test cap
isDryRun: false
writeThreshold: 500
maxMemoryMB: 8000

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

Cette configuration guide le simulateur pour :

  • Le symbole et l'intervalle de temps cibles (ex. : BTC, 1m)
  • L'intervalle de backtest en jours
  • Les catégories et stratégies à inclure
  • La direction de la simulation : Long / Short / Both
  • Les limites mémoire et seuils d'écriture
  • Le mode test à sec (dry-run) en option

🧩 Hiérarchie Catégorie / Direction / Stratégie

Chaque jeu de données est structuré dans une hiérarchie de dossiers à 3 niveaux :

  • Catégorie : ex. meme, layer1, AI
  • Direction : Long, Short, Both
  • Stratégie : balance_midterm, long_term, scalp, swing

Chaque fichier YAML de préréglage définit des plages d'entrée paramétriques pour la génération du dataset.

🧠 Exemple de préréglage

name: Scalping Strategy - Long
description: Profil de trading à haute fréquence, court terme avec SL/TP serré et fort effet de levier

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]

📦 Sortie du dataset

Les datasets finaux sont enregistrés sur disque dans : /datasets/parquet_{YYYYMMDD}/{category}/{direction}/{symbol}.parquet

Exemple :

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

🚀 Fonctionnalités du pipeline de simulation

  • ✔️ Chargement et filtrage des préréglages
  • ✔️ Contrôle directionnel (Long / Short / Both)
  • ✔️ Simulation parallèle avec gestion mémoire
  • ✔️ Batch intelligent, journalisation de l'ETA, suivi de l'ID d'exécution
  • ✔️ Mode test à sec (dry-run) en option
  • ✔️ Exportation CSV prise en charge

🧼 Validation & réparation du dataset

  • ✔️ Validation de la structure des en-têtes
  • ✔️ Saut automatique des lignes nulles / NaN ou sans transaction
  • ✔️ Sauvegarde .bak avant l’écrasement des fichiers défectueux
  • ✔️ Réenregistrement compressé en .gz
  • ✔️ Logs de débogage + déplacement des fichiers défectueux dans __bad__/
  • ✔️ Traitement thread-safe pour les grands datasets

📚 Catégories prises en charge

Ces catégories représentent des secteurs logiques du marché ou types de tokens. Vous pouvez configurer n'importe quelle combinaison dans votre fichier 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

💡 Remarques

  • La génération de datasets consomme beaucoup de ressources CPU/mémoire. Configurez maxMemoryMB et writeThreshold en conséquence.
  • Utilisez isDryRun: true pour valider la configuration et prévisualiser les variations sans écrire les fichiers.
  • Max variations permet d’éviter une surcharge mémoire avec un trop grand nombre de permutations.
  • Toutes les simulations sont reproductibles avec le même RunId et la même configuration.

📎 Related Topics