# region declaration
# region research
schema_version: "1.0"
metadata:
  name: recorded_compiled_preparation
  mode: development
  description: Compare preparation and regularization on recorded Bitcoin bars.
sfd:
  manifest:
    type: ml
# region source
    data_source:
      method: limen.data.HistoricalData.get_any_file
      params:
        file_path_or_url: inputs/spot_15m_20250101_20250531.parquet
# endregion source
# region partitions
    split_dates:
      train_start: "2025-01-01"
      train_end: "2025-01-15"
      val_start: "2025-01-15"
      val_end: "2025-01-18"
      test_start: "2025-01-18"
      test_end: "2025-01-22"
      val_predict_guard: true
      test_predict_guard: true
# endregion partitions
# region indicators
    indicators:
      - func: limen.indicators.roc
        params:
          period: 1
          group: momentum
      - func: limen.indicators.roc
        params:
          period: 3
          group: momentum
      - func: limen.indicators.roc
        params:
          period: 12
          group: momentum
# endregion indicators
# region features
    features:
      - func: limen.features.lag_range
        params:
          col: roc_1
          start: 1
          end: 3
          group: momentum
      - func: limen.features.fractional_diff
        params:
          d: 0.4
          cols: [close]
          threshold: 0.05
          group: price
# endregion features
# region target
    target:
      name: barrier_label
      class: limen.targets.TripleBarrierTarget
      fit_params:
        upper_multiple: 1.5
        lower_multiple: 1.0
        max_horizon: 3
        span: 8
        min_periods: 8
# endregion target
# region preparation
    scaler:
      class: limen.scalers.RobustScaler
    feature_ablation:
      drop_count_key: feature_drop_count
      seed_key: feature_drop_seed
    pca_compression:
      enabled_param: auto_pca
      n_components_param: pca_k
# endregion preparation
# region execution
    backtest:
      source_interval_seconds: 900
      fee_bps: 7.0
      slip_bps: 3.0
      notional_rate: 0.5
      execution_lag_seconds: 0.0
      product:
        kind: cash_spot
        instrument: BTCUSDT
        base_currency: BTC
        quote_currency: USDT
        quantity_step: 1.0e-9
        min_notional: 0.0
# endregion execution
    reference_architecture: limen.sfd.reference_architecture.ridge_regressor
# region parameters
  params:
    alpha: [1.0]
    solver: [svd]
    random_state: [42]
    feature_groups: [momentum|price]
    feature_drop_count: [0, 1]
    feature_drop_seed: [7]
    auto_pca: [false, true]
    pca_k: [2]
# endregion parameters
# region run
uel:
  output_path: compiled-preparation
  n_permutations: 4
  workers: 1
  search_strategy:
    type: grid
    shuffle: true
    seed: 17
  prep_each_round: true
  checkpoint_interval: 1
  feedback_interval: 1
  output_format: parquet
  recording:
    predictions: true
    alignment: true
    trade_ledger: true
    fold_details: true
# endregion run
# endregion research
# endregion declaration
