Конструктор набора данных MagicInput

Обзор

MagicInput Dataset Builder играет ключевую роль в подготовке высококачественных размеченных данных для обучения AI-моделям торговли криптовалютой. Он симулирует результаты сделок на основе широкого набора стратегий и исторических условий, формируя насыщенные датасеты в формате .parquet, оптимизированные для обучения высокопроизводительных моделей.

🛠 Конфигурация (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: Пропустить / ограничить
isDryRun: false
writeThreshold: 500
maxMemoryMB: 8000

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

Эта конфигурация задаёт параметры симуляции:

  • Целевой символ и интервал (например: BTC, 1m)
  • Диапазон для бэктеста в днях
  • Категории и стратегии для включения
  • Направление симуляции: Long / Short / Both
  • Ограничения по памяти и пороги записи
  • Опциональный тестовый режим (dry-run)

🧩 Иерархия Категория / Направление / Стратегия

Каждый датасет организуется в 3-уровневую структуру папок:

  • Категория: например meme, layer1, AI
  • Направление: Long, Short, Both
  • Стратегия: balance_midterm, long_term, scalp, swing

Каждый YAML-пресет задаёт диапазоны параметров для генерации данных.

🧠 Пример пресета

name: Стратегия для скальпинга – Long
description: Высокочастотный профиль с коротким горизонтом, узким SL/TP и высоким плечом

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]

📦 Выходные данные

Итоговые датасеты сохраняются по пути: /datasets/parquet_{YYYYMMDD}/{category}/{direction}/{symbol}.parquet

Пример:

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

🚀 Возможности пайплайна симуляции

  • ✔️ Загрузка и фильтрация пресетов
  • ✔️ Контроль направления (Long / Short / Both)
  • ✔️ Безопасная для памяти параллельная симуляция
  • ✔️ Умная пакетная обработка, лог ETA, отслеживание Run ID
  • ✔️ Опциональный режим dry-run (предпросмотр)
  • ✔️ Поддержка экспорта в CSV

🧼 Проверка и восстановление данных

  • ✔️ Проверка структуры заголовков
  • ✔️ Автопропуск строк с null/NaN или без сделок
  • ✔️ Резервное копирование .bak перед перезаписью
  • ✔️ Сжатое сохранение как .gz
  • ✔️ Логи отладки и перемещение плохих файлов в __bad__/
  • ✔️ Потокобезопасная обработка больших данных

📚 Поддерживаемые категории

Эти категории представляют логические рыночные секторы или типы токенов. Вы можете указать любое сочетание в 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

💡 Примечания

  • Генерация датасета требует значительных ресурсов CPU и памяти. Настройте параметры maxMemoryMB и writeThreshold соответствующим образом.
  • Используйте isDryRun: true для предварительной проверки конфигурации без записи файлов.
  • maxVariations предотвращает переполнение памяти при большом количестве комбинаций параметров.
  • Все симуляции воспроизводимы при использовании одного и того же RunId и конфигурации.

📎 Related Topics