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