MagicInput-Datensatz-Generator

Übersicht

Der MagicInput Dataset Builder spielt eine entscheidende Rolle bei der Erstellung hochwertiger, gelabelter Trainingsdaten für KI-basierte Krypto-Handelsmodelle. Er simuliert Handelsergebnisse basierend auf einer Vielzahl vordefinierter Strategien und historischer Bedingungen, um einen umfangreichen Datensatz im .parquet-Format zu generieren, der für leistungsstarkes Modelltraining optimiert ist.

🛠 Konfiguration (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

Diese Konfiguration steuert den Simulator hinsichtlich:

  • Ziel-Symbol und Zeitintervall (z. B. BTC, 1m)
  • Backtest-Zeitraum in Tagen
  • Kategorien und Strategien, die einbezogen werden sollen
  • Richtung der Simulation: Long / Short / Both
  • Speichergrenzen und Schwellenwerte
  • Optionaler Testlauf (Dry-Run)

🧩 Kategorie / Richtung / Strategie-Hierarchie

Jeder Datensatz ist in einer dreistufigen Ordnerstruktur organisiert:

  • Kategorie: z. B. meme, layer1, AI
  • Richtung: Long, Short, Both
  • Strategie: balance_midterm, long_term, scalp, swing

Jede Preset-YAML-Datei definiert Parameterbereiche für die Datensatzgenerierung.

🧠 Beispiel-Preset

name: Scalping Strategy - Long
description: Hochfrequentes Kurzfrist-Tradingprofil mit engem SL/TP und hoher Hebelwirkung

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]

📦 Datensatzausgabe

Die endgültigen Datensätze werden auf der Festplatte gespeichert unter: /datasets/parquet_{YYYYMMDD}/{category}/{direction}/{symbol}.parquet

Beispiel:

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

🚀 Funktionen der Simulations-Pipeline

  • ✔️ Laden und Filtern von Presets
  • ✔️ Steuerung der Handelsrichtung (Long / Short / Both)
  • ✔️ Speichersichere parallele Simulation
  • ✔️ Intelligente Batching-Prozesse, ETA-Protokollierung, Run-ID-Tracking
  • ✔️ Optionaler Dry-Run-Modus zur Vorschau
  • ✔️ Unterstützung für CSV-Export

🧼 Validierung und Reparatur von Datensätzen

  • ✔️ Validierung der Header-Struktur
  • ✔️ Automatisches Überspringen von Zeilen mit null/NaN oder keinen Trades
  • ✔️ .bak-Backup vor dem Überschreiben fehlerhafter Dateien
  • ✔️ Komprimiertes Speichern als .gz
  • ✔️ Debug-Protokolle und Verschiebung beschädigter Dateien nach __bad__/
  • ✔️ Thread-sichere Verarbeitung großer Datensätze

📚 Unterstützte Kategorien

Diese Kategorien repräsentieren logische Marktsegmente oder Token-Typen. Sie können beliebige Kombinationen in Ihrer config.yaml konfigurieren.

  • 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

💡 Hinweise

  • Die Erstellung von Datensätzen ist CPU-/speicherintensiv. Konfigurieren Sie maxMemoryMB und writeThreshold entsprechend.
  • Verwenden Sie isDryRun: true, um die Konfiguration zu validieren und Variationen vorab anzuzeigen, ohne Dateien zu schreiben.
  • Maximale Variationen helfen, Speicherüberläufe bei sehr großen Permutationen zu vermeiden.
  • Alle Simulationen sind mit derselben RunId und Konfiguration reproduzierbar.

📎 Related Topics