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
  • 메모리 제한 및 쓰기 임계값
  • 옵션: 드라이런(미리보기 모드)

🧩 카테고리 / 방향 / 전략 계층 구조

각 데이터셋은 3단계 폴더 구조로 정리됩니다:

  • 카테고리: 예: meme, layer1, AI
  • 방향: Long, Short, Both
  • 전략: balance_midterm, long_term, scalp, swing

각 프리셋 YAML 파일은 데이터 생성에 사용될 매개변수 입력 범위를 정의합니다.

🧠 프리셋 예시

name: 스캘핑 전략 - Long
description: 타이트한 손절/익절과 높은 레버리지를 사용하는 고빈도 단기 거래 프로필

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 로깅, 실행 ID 추적
  • ✔️ 드라이런(미리보기) 모드 지원
  • ✔️ 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 및 메모리를 많이 사용하므로 maxMemoryMBwriteThreshold 값을 적절히 설정해야 합니다.
  • isDryRun: true를 사용하면 파일을 저장하지 않고 설정을 미리 검증하고 조합을 미리보기 할 수 있습니다.
  • maxVariations는 조합 수가 매우 많을 때 메모리 오버플로우를 방지합니다.
  • 같은 RunId와 구성으로 모든 시뮬레이션은 재현 가능합니다.

📎 Related Topics