# ============================================================
# Cryptomine — Martingale grid до Fib 0.618 (90% equity MTM)
# ============================================================

live: false
source: ccxt

ccxt_exchange: bingx
ccxt_symbol_format: usdtm

cache_db: "../DB/combined_cache_1m_1y.db"

# -----------------------
# Таймфрейм / сесія
# -----------------------
timeframe: "1m"
open_hour_kyiv: 2
kyiv_offset_hours: 3
force_start_always: true

# -----------------------
# Universe
# -----------------------
quote: "USDT"
symbols:
  - ENA/USDT:USDT

max_universe: 1
#min_qv_24h: 100000

# -----------------------
# Комісії / сліпедж
# -----------------------
commission_type: percent
commission_value: 0.0
slippage_bps: 0.0

# -----------------------
# Капітал
# -----------------------
initial_equity: 100.0

# ============================================================
# STRATEGY
# ============================================================
strategy_class: strategies.cryptomine_martingale_fib618_cached_v4.CryptomineMartingaleFib618V2Cached

strategy_params:
  firstBuyUSDT: 5.0

  gridSteps: 244
  budgetFrac: 0.90
  hardCapFrac: 0.99

  pminLookbackBars: 43200     # ~30d на 1m

  fibLevel: 0.618              # базовий fib-рівень (від "зараз" до pmin); до нього намагаємось розкласти ~90% депо (після масштабування confidence)
  atrHTFBars: 60               # HTF-агрегація для ATR: скільки base-барів в одному HTF барі (якщо base=1m, то 60 => 1h ATR)
  atrLen: 14                   # довжина ATR на HTF (кількість HTF-барів для розрахунку ATR)
  atrPctRef: 0.02              # референс-волатильність (ATR/price) для нормалізації "confidence": 0.02 = 2% (чим більший ATR%, тим нижча впевненість)
  confMin: 0.35                # нижня межа confidence (скейл для fibLevel): не дає fib впасти занадто низько
  confMax: 1.0                 # верхня межа confidence: 1.0 = без зменшення fib (коли рух не схожий на HTF-провал)
  fibMin: 0.20                 # мінімально дозволений fib-рівень після адаптації (обмежує агресивність мартінгейлу)
  fibMax: 0.618                # максимально дозволений fib-рівень після адаптації (зазвичай = fibLevel)

  maxBuyMult: 8.0              # ліміт множника розміру покупки відносно базової b (tail-risk); через нього обмежується km_max

  timeDecayBars: 0             # 0 = OFF; якщо >0, вмикає "time-decay" розвантаження: після N барів у позиції починаємо частково продавати (1m: 100000 ~ 69 днів)
  decaySellFrac: 0.10          # частка позиції, яку продаємо на кожному decay-кроці (0.10 = 10% від поточного розміру)
  minProfitForDecay: 0.001     # мінімальний прибуток (відносний, напр. 0.001 = 0.1%), щоб дозволити decay-продаж (щоб не фіксувати дрібний мінус/шум)
# ============================================================
# BACKTEST
# ============================================================
plots:
  enable: true
  path: plots_1m_v2

save_trades: true
save_equity_curve: true
