MagicInput 모델 훈련 앱

πŸ“ˆ κ°œμš”

MagicInput λͺ¨λΈ ν•™μŠ΅ 앱은 μ•”ν˜Έν™”ν νŠΈλ ˆμ΄λ”© μ „λž΅μ„ μœ„ν•œ 예츑 λͺ¨λΈμ„ ν•™μŠ΅ν•˜λŠ” λ¨Έμ‹ λŸ¬λ‹ μ—”μ§„μž…λ‹ˆλ‹€. MagicInput Dataset Builderκ°€ μƒμ„±ν•œ .parquet ν˜•μ‹μ˜ κ΅¬μ‘°ν™”λœ 데이터셋을 ν™œμš©ν•©λ‹ˆλ‹€. 이 데이터셋은 λ‹€μ–‘ν•œ 거래 μ‹œλ‚˜λ¦¬μ˜€λ₯Ό ν¬ν•¨ν•˜κ³  있으며, μΉ΄ν…Œκ³ λ¦¬(예: 밈 토큰), λ°©ν–₯(Long, Short), μ „λž΅(scalp, long_term λ“±)을 κΈ°μ€€μœΌλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

ν•™μŠ΅μ΄ μ™„λ£Œλœ λͺ¨λΈμ€ 거래 봇에 ν†΅ν•©λ˜μ–΄ μ‹€μ‹œκ°„ μ „λž΅ μΆ”μ²œ 및 μ˜μ‚¬κ²°μ • 보쑰 κΈ°λŠ₯을 μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

🧠 λͺ¨λΈ μ„€μ • – mlconfig.yaml

ν•™μŠ΅ λ™μž‘μ€ μœ μ—°ν•œ μ„€μ • νŒŒμΌμ„ 톡해 μ œμ–΄λ©λ‹ˆλ‹€:

# mlconfig.yaml

datasetDir: ./datasets/parquite_latest
modelOutputPath: ./ai/models/trade_predictor.zip
taskType: classification
labelColumn: WinRateAboveThreshold

featureColumns:
  - Leverage
  - Strategy
  - VirtualBalance
  - RiskPercent
  - SL
  - TP
  - Breakeven_Trigger
  - Breakeven_Buffer
  - TrailingSL_Offset
  - TrailingTP_Trigger
  - LongCond_0_Change
  - LongCond_0_Interval
  - ShortCond_0_Change
  - ShortCond_0_Interval

filter:
  symbols:
    - DOGE
    - PEPE
    - WIF
    - SHIB
    - FLOKI
    - BONK
  minWinRate: 60

trainer: FastForest

training:
  maxIterations: 100
  trainTestSplit: 0.8
  stratified: true

evaluation:
  metrics:
    - Accuracy
    - AUC
    - F1Score

exportTrainingStats: true

πŸ“‚ 데이터셋 μž…λ ₯

ν•™μŠ΅ 엔진은 datasetDir λ””λ ‰ν„°λ¦¬μ—μ„œ .parquet νŒŒμΌμ„ κ²€μƒ‰ν•˜λ©°, 일반적으둜 λ‹€μŒκ³Ό 같이 μ •λ¦¬λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€:

  • μΉ΄ν…Œκ³ λ¦¬ – 예: meme, layer1, AI
  • λ°©ν–₯ – Long, Short, Both
  • μ „λž΅ – scalp, long_term, balance_midterm

filter 블둝을 μ‚¬μš©ν•˜λ©΄ νŠΉμ • μ‹¬λ³Όλ§Œ μ„ νƒν•˜κ±°λ‚˜ μ΅œμ†Œ 승λ₯ μ„ μ„€μ •ν•˜μ—¬ μžμ‚° μœ ν˜• λ˜λŠ” μ‹œμž₯ ν–‰λ™λ³„λ‘œ μ„ΈλΆ„ν™”λœ λͺ¨λΈμ„ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ§ͺ νŠΉμ§• 선택

ν•™μŠ΅μ— μ‚¬μš©λ˜λŠ” μž…λ ₯ λ³€μˆ˜λŠ” featureColumns에 λ‚˜μ—΄λœ μ—΄λ‘œ μ œν•œλ©λ‹ˆλ‹€. 이 열듀은 λ ˆλ²„λ¦¬μ§€, 리슀크 λΉ„μœ¨, 슀마트 μ†μ ˆ/읡절, 쑰건 기반 트리거 λ“± μ€‘μš”ν•œ 인풋을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

labelColumn은 지도 ν•™μŠ΅μ—μ„œ 예츑 λŒ€μƒμ΄ λ˜λŠ” 이진 결과이며, WinRateAboveThreshold와 같이 높은 μ„±κ³Όλ₯Ό 보인 μ„ΈνŒ…μ„ λΆ„λ₯˜ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

βš™οΈ ν•™μŠ΅ μ„€μ •

μ„€μ • νŒŒμΌμ—μ„œ μ •μ˜λœ ν•™μŠ΅ ꡬ성 μš”μ†ŒλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  • μ•Œκ³ λ¦¬μ¦˜: FastForest (κ²°μ • 트리 기반의 κ°•λ ₯ν•œ 이진 λΆ„λ₯˜)
  • μ΅œλŒ€ 반볡 수: 반볡 횟수 초과 λ˜λŠ” 수렴 μ‹œ ν•™μŠ΅ μ’…λ£Œ
  • ν•™μŠ΅/ν…ŒμŠ€νŠΈ λΆ„ν• : 예: 80% / 20%
  • μΈ΅ν™”(Stratified): 클래슀 뢄포 κ· ν˜• μœ μ§€

πŸ“Š λͺ¨λΈ 평가

ν•™μŠ΅μ΄ μ™„λ£Œλœ ν›„ λͺ¨λΈμ€ λ‹€μŒκ³Ό 같은 ν‘œμ€€ λΆ„λ₯˜ μ§€ν‘œλ‘œ ν‰κ°€λ©λ‹ˆλ‹€:

  • 정확도 (Accuracy) – 전체 μƒ˜ν”Œ 쀑 μ˜¬λ°”λ₯΄κ²Œ 예츑된 λΉ„μœ¨
  • AUC – ROC 곑선 μ•„λž˜ 면적
  • F1 점수 – 정밀도와 μž¬ν˜„μœ¨μ˜ μ‘°ν™” 평균

exportTrainingStatsκ°€ ν™œμ„±ν™”λœ 경우, 이 λ©”νŠΈλ¦­κ³Ό 손싀 곑선은 CSV둜 μ €μž₯λ˜μ–΄ λ‚˜μ€‘μ— 뢄석할 수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ“¦ λͺ¨λΈ 좜λ ₯

ν•™μŠ΅μ΄ μ™„λ£Œλ˜λ©΄, ML.NET λ°”μ΄λ„ˆλ¦¬ λͺ¨λΈμ€ modelOutputPath에 .zip ν˜•μ‹μœΌλ‘œ μ €μž₯λ©λ‹ˆλ‹€. 이 νŒŒμΌμ€ λŸ°νƒ€μž„μ— λ‘œλ”©λ˜μ–΄ λ‹€μŒκ³Ό 같은 κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€:

  • ⚑ μ‹€μ‹œκ°„ νŠΈλ ˆμ΄λ”© μΆ”μ²œ
  • πŸ“‰ 리슀크 기반 μ§„μž… 필터링
  • 🧠 λ΄‡μ˜ μ˜μ‚¬κ²°μ • κ°•ν™”

πŸš€ μ‚¬μš© μ˜ˆμ‹œ: μΉ΄ν…Œκ³ λ¦¬λ³„ AI λͺ¨λΈ

각 μΉ΄ν…Œκ³ λ¦¬(예: meme 토큰), λ°©ν–₯(예: Long μ „μš©), μ „λž΅(예: scalp)에 맞좰 μ—¬λŸ¬ 개의 λͺ¨λΈμ„ ν•™μŠ΅μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ λͺ¨λΈμ€ λ™μ μœΌλ‘œ μ œκ³΅λ˜μ–΄ μžλ™ν™”λœ μ „λž΅μ˜ 정밀도와 κ°œμΈν™”λ₯Ό ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€.

πŸ“Ž Related Topics