# region declaration
schema_version: '1.0'
metadata:
  name: book_compiled_event_holdout
  mode: development
sfd:
  manifest:
    type: ml
    data_source:
      method: limen.data.HistoricalData.get_any_file
      params:
        file_path_or_url: inputs/spot_1h_20240101_20241231.parquet
    split_dates:
      train_start: '2024-01-01'
      train_end: '2024-01-03'
      val_start: '2024-01-03'
      val_end: '2024-01-04'
      test_start: '2024-01-04'
      test_end: '2024-01-05'
    indicators:
    - func: limen.indicators.roc
      params:
        period: 1
        group: momentum
    target:
      name: quantile_flag
      class: limen.targets.QuantileBinaryTarget
      fit_params:
        source_column: roc_1
        quantile: 0.5
      transform_params:
        shift: -1
# region event_policy
    backtest:
      fee_bps: 7.0
      slip_bps: 3.0
      notional_rate: 0.25
      product:
        kind: cash_spot
        instrument: BTCUSDT
        base_currency: BTC
        quote_currency: USDT
        quantity_step: 1.0e-9
        min_notional: 0.0
# endregion event_policy
    calibration:
      threshold_function:
        func: limen.calibration.grid_threshold_optimizer
        params:
          metric: limen.metrics.balanced_metric.balanced_metric
    scaler:
      from_params: scaler_type
    reference_architecture: limen.sfd.reference_architecture.logreg_binary
  params:
    scaler_type: [logreg]
    C:
    - 1.0
    random_state: [42]
    use_calibration: [false]
    use_threshold: [true]
uel:
  output_path: compiled-holdout_event
  n_permutations: 1
  search_strategy:
    type: grid
  output_format: csv
  checkpoint_interval: 1

# region final_assessment
assessment:
  metric: val_score
  direction: maximize
  top_k: 1
  predict: false
holdout:
  start: "2024-01-05"
  end: "2024-01-06"
  interval_seconds: 3600
  context_start: "2024-01-04"
  evaluation_target:
    class: limen.targets.NextBarUpTarget
    name: observed_up
  scenarios: []
# endregion final_assessment
# endregion declaration
