Construtor de conjunto de dados MagicInput

Visão Geral

O MagicInput Dataset Builder desempenha um papel essencial na preparação de dados de treinamento rotulados e de alta qualidade para modelos de negociação de criptomoedas baseados em IA. Ele simula os resultados de operações com base em uma ampla variedade de presets de estratégia e condições históricas, gerando um conjunto de dados rico no formato .parquet, otimizado para treinamento de modelos de alto desempenho.

🛠 Configuração (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: Pular / limite de teste
isDryRun: false
writeThreshold: 500
maxMemoryMB: 8000

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

Essa configuração orienta o simulador sobre:

  • Símbolo e intervalo de tempo alvo (ex.: BTC, 1m)
  • Intervalo de backtest em dias
  • Categorias e estratégias a serem incluídas
  • Simulação direcional: Long / Short / Both
  • Limites de memória e thresholds
  • Modo de teste opcional (dry-run)

🧩 Hierarquia de Categoria / Direção / Estratégia

Cada conjunto de dados é organizado em uma hierarquia de pastas com 3 níveis:

  • Categoria: ex. meme, layer1, AI
  • Direção: Long, Short, Both
  • Estratégia: balance_midterm, long_term, scalp, swing

Cada arquivo YAML de preset define intervalos de parâmetros para a geração do dataset.

🧠 Exemplo de Preset

name: Estratégia Scalping - Long
description: Perfil de negociação de curto prazo e alta frequência com SL/TP apertados e alta alavancagem

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]

📦 Saída do Dataset

Os conjuntos de dados finais são gravados no disco em: /datasets/parquet_{YYYYMMDD}/{category}/{direction}/{symbol}.parquet

Exemplo:

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

🚀 Funcionalidades do Pipeline de Simulação

  • ✔️ Carregamento e filtragem de presets
  • ✔️ Controle direcional (Long / Short / Both)
  • ✔️ Simulação paralela segura para memória
  • ✔️ Agrupamento inteligente, log de ETA, rastreamento de Run ID
  • ✔️ Modo dry-run opcional para visualização prévia
  • ✔️ Suporte para exportação em CSV

🧼 Validação e Reparação do Dataset

  • ✔️ Validação da estrutura do cabeçalho
  • ✔️ Pular automaticamente linhas com null/NaN ou sem trades
  • ✔️ Backup .bak antes de sobrescrever arquivos com erro
  • ✔️ Salvamento comprimido como .gz
  • ✔️ Logs de depuração + realocação de arquivos ruins para __bad__/
  • ✔️ Processamento seguro por threads para grandes volumes

📚 Categorias Suportadas

Essas categorias representam setores de mercado ou tipos de tokens. Você pode configurar qualquer combinação no seu arquivo 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

💡 Observações

  • A construção do dataset consome muitos recursos de CPU e memória. Configure maxMemoryMB e writeThreshold adequadamente.
  • Use isDryRun: true para validar a configuração e visualizar as variações sem gravar arquivos.
  • maxVariations ajuda a evitar estouros de memória em grandes volumes de permutações.
  • Todas as simulações são reproduzíveis usando o mesmo RunId e a mesma configuração.

📎 Related Topics