# Model Report: ar_btc_60_b23ed38fe5fc_20260420_171153

> Generated: 2026-04-20T10:47:57.971091
> Execution ID: `4bb03d2b-d6ec-45be-ad05-a9b345877ca9`

## Executive Summary

### Status: ⚠️ COMPLETED — NOT PRODUCTION READY - One or more Monte Carlo guardrails failed.

### Links

- 🔗 [Optuna Dashboard](https://optuna-dev.heroestreasure.synology.me/dashboard?study_name=Stage 2 AR_BTC_60_b23ed38fe5fc_20260420_171153)
- _No links available_

### Model

- **Type:** asset
- **Asset(s):** N/A
- **Timeframe(s):** N/A
- **Trading System(s):** N/A

### Best Model

| Metric | Value |
|--------|-------|
| AUPRC | 0.2440 |
| APPT | 0.259 R |
| MDD | -33.16 R |

### Metrics

| Metric | Value |
|--------|-------|
| SQN | 8.67 |
| Sharpe | 0.87 |
| Calmar | 0.00 |
| DSR | N/A |
| PBO | N/A |

### Trade Statistics

- **Total Trades:** 0
- **True Positives:** 0 (0.00%)
- **False Positives:** 0 (0.00%)
- **Precision:** 25.81%
- **Recall:** 9.52%

### Pipeline Configuration

```yaml
pipeline_version: 10.0.0
pipeline_name: ar_btc_60_b23ed38fe5fc_20260420_171153
description: AutoResearch continuous BTC search candidate b23ed38fe5fc for BTCUSDT.P
  60m EMA20Return.
stop_on_failure: true
log_level: INFO
logging:
  level: INFO
  language: en
  format: detailed
  include_stacktraces: true
  box_errors: true
sse_config:
  enabled: true
  heartbeat_interval: 30
  max_silence_seconds: 3600
globals:
  dataset_type: custom
  paths:
    dataset_dir: /app/datasets/autoresearch/btcusdtp_60_ema20return_53adbfa0fe73
    production_dir: /app/config/production/autoresearch/b23ed38fe5fc_20260420_171153
    reports_dir: /app/reports
    results_dir: /app/results/autoresearch/b23ed38fe5fc_20260420_171153
  optuna:
    study_name: AR_BTC_60_b23ed38fe5fc_20260420_171153
guardrails:
  mode: warn
  dataset:
    min_samples: 500
    max_samples: 1000000
    min_positive_rate: 0.02
    max_positive_rate: 0.99
    min_features: 10
    max_missing_rate: 0.2
  optuna:
    min_trials_completed: 12
    min_pareto_solutions: 2
    max_pbo: 0.85
    min_dsr: 0.0
    max_dsr_warning: 999.0
    min_composite_score: 0.0
    max_mdd: -40.0
  pareto:
    min_appt: 0.05
    max_mdd: -35.0
    min_auprc: 0.22
    min_trades_per_year: 20.0
    min_take_rate: 0.04
    min_trades_count: 16.0
  monte_carlo:
    min_appt: 0.0
    max_mdd: -35.0
    min_auprc: 0.22
    min_win_rate: 0.28
    min_sharpe: 0.6
    min_sqn: 2.0
    min_trades_per_year: 20.0
    min_take_rate: 0.04
    min_trades_count: 20.0
steps:
- name: 01_dataset
  type: dataset
  config:
    dataset_type: asset
    cache_enabled: true
    force_regenerate: false
    selection:
      symbols:
      - BTCUSDT.P
      asset_types: null
      timeframes:
      - '60'
      trading_systems:
      - EMA20Return
      date_range:
        start: '2019-09-17'
        end: '2025-11-03'
    output_dir: ${globals.paths.dataset_dir}
    validation:
      method: full_dataset
      nested_evaluation: true
    use_streaming: true
- name: 02_tuning
  type: tuning
  config:
    dataset_type: ${globals.dataset_type}
    dataset_dir: ${globals.paths.dataset_dir}
    study_name: ${globals.optuna.study_name}
    mlflow_experiment: AR BTC 60 Continuous Search
    load_if_exists: false
    stages: 2
    min_trades_per_year: 20
    min_trades_pct_of_tp: 10
    min_total_samples: 500
    min_val_samples: 100
    min_auprc: 0.22
    min_appt: 0.05
    optuna_features:
      enable_optunahub: false
      enable_pedanova: true
    walk_forward:
      enabled: true
      auto_mode: false
      train_span: 24M
      val_span: 9M
      step_span: 9M
      gap_span: 2D
      min_samples: 60
      min_pos_rate: 0.01
      min_folds: 3
      max_folds: 4
    stage1:
      run_mode: count
      n_trials: 24
      timeout: 43200
      n_jobs: 7
      adaptive_n_jobs:
        enabled: true
        chunk_size: 20
      normalization_mode: fixed_warmup
      composite_normalization_ranges:
        auprc:
        - 0.25
        - 0.42
        appt:
        - 0.0
        - 1.2
        mdd:
        - -18.0
        - -3.0
        take_rate_p:
        - 0.02
        - 0.4
      pruning:
        enabled: false
        pruner_type: MedianPruner
        warmup_trials: 12
        report_interval: 10
      artifact_logging:
        top_n: 0
        top_pct: 0.0
      eval_on_train: false
      sanity_guardrails:
        enabled: true
      composite_weights:
      - 0.571042
      - 0.219528
      - 0.165093
      - 0.044337
      search_space:
        booster:
          values:
          - gbtree
        tree_method:
          values:
          - hist
        grow_policy:
          values:
          - lossguide
        learning_rate:
          low: 0.141
          high: 0.165
        n_estimators:
          low: 600
          high: 1100
          step: 100
        max_depth:
          low: 6
          high: 9
        min_child_weight:
          low: 3
          high: 6
        gamma:
          low: 0.745
          high: 2.659
        reg_alpha:
          low: 6.485
          high: 8.026
        reg_lambda:
          low: 4.899
          high: 7.511
        subsample:
          low: 0.72
          high: 0.78
        colsample_bytree:
          low: 0.814
          high: 0.857
        colsample_bylevel:
          low: 0.751
          high: 0.845
        colsample_bynode:
          low: 0.842
          high: 0.913
        scale_pos_weight:
          low: 5
          high: 8
        max_delta_step:
          low: 3
          high: 8
        max_bin:
          low: 256
          high: 384
          step: 64
        max_leaves:
          low: 80
          high: 192
          step: 16
        base_score:
          low: 0.457
          high: 0.701
      min_appt: 0.05
      min_auprc: 0.22
      max_mdd: null
      min_trades_pct_of_tp: 10
      threshold_search_range:
      - 0.306
      - 0.796
    stage2:
      run_mode: count
      strategy: ga_refine
      sampler: NSGAIISampler
      sampler_options: {}
      n_trials: null
      timeout: 64800
      n_jobs: 7
      adaptive_n_jobs:
        enabled: true
        chunk_size: 10
      population_size: 30
      n_generations: 3
      seed_top_k: 5
      top_k: 5
      pedanova:
        enabled: true
        target_index: 1
        target_quantile: 0.15
        region_quantile: 0.35
      artifact_logging:
        top_n: 0
        top_pct: 0.0
      min_appt: 0.05
      min_auprc: 0.22
      max_mdd: null
      min_trades_pct_of_tp: 10
      threshold_search_range:
      - 0.306
      - 0.796
    export_study_artifacts:
      enabled: false
      csv: false
      html_charts: false
    output_dir: ${globals.paths.results_dir}
    use_streaming: true
    max_total_seconds: 129600
- name: 03_pareto
  type: pareto
  config:
    dataset_type: custom
    dataset_dir: ${globals.paths.dataset_dir}
    study_name: ${globals.optuna.study_name}
    top_k: 2
    selection_method: scalarization
    selection_config:
      scalarization:
        type: topsis
        weights:
        - 0.24
        - 0.42
        - 0.34
        normalize: true
        mdd_mode: abs
    log_all_methods: true
    train_finalists: true
    guardrails:
      min_appt: 0.05
      max_mdd: -35.0
      min_auprc: 0.22
      min_trades_count: 16.0
- name: 04_monte_carlo
  type: monte_carlo
  config:
    dataset_type: custom
    dataset_dir: ${globals.paths.dataset_dir}
    study_name: ${globals.optuna.study_name}
    top_k: 1
    source_step_type: pareto
    monte_carlo:
      run_mode: count
      n_simulations: 250
      max_simulations: 300
      time_budget_seconds: null
      threshold_sweep_mode: auto
      threshold_sweep_pct_range: 0.06
      threshold_sweep_pct_step: 0.04
      spread_range:
      - 0.05
      - 0.25
      slippage_range:
      - 0.0
      - 0.25
      volatility:
        enabled: false
        range:
        - 0.5
        - 2.0
      position_sizing:
        enabled: false
        range:
        - 1.0
        - 1.0
        cap_losses_at_1r: true
      enable_multiprocessing: false
      negative_controls_enabled: true
      negative_controls_n_shuffles: 5
      selection_metric: sqn
      selection_constraints:
        min_sqn: 2.0
        min_sharpe_ratio: 0.6
        min_max_drawdown: -35.0
    stability:
      enabled: false
      seeds:
      - 41
      - 42
      - 43
    export_production_config: true
    output_dir: ${globals.paths.production_dir}
- name: 05_report
  type: report
  config:
    output_dir: /app/reports
    include_zip: true

```

## Dataset

- **Dataset Type:** asset
- **Asset(s):** N/A
- **Timeframe(s):** N/A
- **Trading System(s):** N/A
- **Used Cache:** No

### Validation

- **Method:** walk_forward

| Split | Samples |
|-------|---------|
| Total | 0 |
| Train | 0 |
| Val | 0 |
| Test | 0 |
| Positive Rate | 0.00% |

### Features

- **Total Features:** 0
- **Include All:** Yes

## Optuna

**Study Name:** `Stage 2 AR_BTC_60_b23ed38fe5fc_20260420_171153`

### Stage 1

#### Walk-Forward

- **Enabled:** No
- **Auto Mode:** No

#### Config

| Parameter | Value |
|-----------|-------|
| Num Trials | 0 |
| Top K | 5 |
| MDD Tolerance | 10.0 R |

### Stage 2

| Parameter | Value |
|-----------|-------|
| Num Trials | 0 |
| Num Generations | 0 |
| Population Size | 50 |

### Results

- **Best Trial:** #N/A
- **Best Value:** N/A
- **Total Completed Trials:** 98
- **Pareto Solutions:** 5

### Guardrails

**Warnings:**
- ⚠️ dsr_warning: DSR 10.45 is borderline (warning threshold: 999.0)
- ⚠️ min_composite_score_survivor_mode: Best composite score -2.595 is below threshold (minimum: 0.0) — tolerated because 5 robust survivor(s) met the required minimum of 5 for stage2; downstream finalist selection is delegated to pareto_service

## Pareto - Monte Carlo

### Guardrails

| Guardrail | Threshold |
|-----------|-----------|
| Min AUPRC | 0.22 |
| Min APPT | 0.0 R |
| Max MDD | -35.0 R |
| Min Win Rate | 28.00% |
| Min Sharpe | 0.6 |
| Min SQN | 2.0 |

### Simulations

- **Num Simulations:** 10,000
- **Thresholds:** 0.596, 0.636, 0.676, 0.716

### Results

- **Finalists Tested:** 1
- **Finalists Passed:** 1
- **Execution Time:** 100.7s

✅ **Good pass rate (100%)**

## Visualizations

### Equity Curve

_Equity curve visualization not available_

### Drawdown Chart

_Drawdown chart not available_

### Monthly Heat Map

_Monthly heatmap not available_

### Confusion Matrix


## Model Explanation

### Feature Importance

![Feature Importance](visualizations/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_FeatureImportance_2026-04-20_17-48-00_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png)

### SHAP

![SHAP Values](visualizations/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_SHAPSummary_2026-04-20_17-48-00_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png)

### Additional Artifact Files

- `asset_comparison`: visualizations/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_AssetComparison_2026-04-20_17-48-05_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `feature_importance.stage2_finalists`: visualizations/feature-importance/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_Stage2_FeatureImportance_stage2_finalists_2026-04-20_17-48-03_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `feature_importance_csv.stage1.rank1.trial5`: tuning/Stage_1_AR_BTC_60_b23ed38fe5fc_20260420_Tuning_stage1_FeatureImportanceCSV_rank_1_trial_5_2026-04-20_17-44-27_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.csv
- `feature_importance_csv.stage2.rank1.trial68`: tuning/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Tuning_stage2_FeatureImportanceCSV_rank_1_trial_68_2026-04-20_17-44-37_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.csv
- `pipeline.resolved_yaml`: ar_btc_60_b23ed38fe5fc_20260420_171153_Pipeline_ResolvedYAML_4bb03d2b-d6ec-45be-ad05-a9b34587_2026-04-20_17-11-54_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.yaml
- `shap.stage2_all_trials`: visualizations/shap/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_Stage2_SHAPSummary_stage2_all_trials_2026-04-20_17-48-04_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `shap_beeswarm`: visualizations/shap/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_SHAPBeeswarm_2026-04-20_17-48-01_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `shap_csv.stage1.rank1.trial5`: tuning/Stage_1_AR_BTC_60_b23ed38fe5fc_20260420_Tuning_stage1_SHAPSummaryCSV_rank_1_trial_5_2026-04-20_17-44-27_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.csv
- `shap_csv.stage2.rank1.trial68`: tuning/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Tuning_stage2_SHAPSummaryCSV_rank_1_trial_68_2026-04-20_17-44-37_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.csv
- `shap_dependence_0`: visualizations/shap/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_SHAPDependence_0_low_array_178_2026-04-20_17-48-02_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `shap_dependence_1`: visualizations/shap/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_SHAPDependence_1_volumedelta_5bar_2026-04-20_17-48-03_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `shap_dependence_2`: visualizations/shap/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_SHAPDependence_2_atr_percentage_2026-04-20_17-48-03_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `shap_dependence_3`: visualizations/shap/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_SHAPDependence_3_high_array_197_2026-04-20_17-48-03_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `shap_dependence_4`: visualizations/shap/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_SHAPDependence_4_low_array_189_2026-04-20_17-48-03_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `shap_waterfall`: visualizations/shap/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_SHAPWaterfall_2026-04-20_17-48-02_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `step_timing_bar`: visualizations/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Report_StepTimingBar_2026-04-20_17-48-05_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `tuning.shap_artifacts_summary`: tuning/UnknownStudy_Tuning_stage1_st_SHAPArtifactsSummary_summary_2026-04-20_17-44-40_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.json
- `visualization.feature_importance.stage1.rank1.trial5`: tuning/Stage_1_AR_BTC_60_b23ed38fe5fc_20260420_Tuning_stage1_FeatureImportance_rank_1_trial_5_2026-04-20_17-44-27_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `visualization.feature_importance.stage2.rank1.trial68`: tuning/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Tuning_stage2_FeatureImportance_rank_1_trial_68_2026-04-20_17-44-37_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `visualization.shap_summary.stage1.rank1.trial5`: tuning/Stage_1_AR_BTC_60_b23ed38fe5fc_20260420_Tuning_stage1_SHAPSummary_rank_1_trial_5_2026-04-20_17-44-27_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `visualization.shap_summary.stage2.rank1.trial68`: tuning/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Tuning_stage2_SHAPSummary_rank_1_trial_68_2026-04-20_17-44-38_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.png
- `visualization.shap_summary_html.stage1.rank1.trial5`: tuning/Stage_1_AR_BTC_60_b23ed38fe5fc_20260420_Tuning_stage1_SHAPSummaryInteracti_rank_1_trial_5_2026-04-20_17-44-29_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.html
- `visualization.shap_summary_html.stage2.rank1.trial68`: tuning/Stage_2_AR_BTC_60_b23ed38fe5fc_20260420_Tuning_stage2_SHAPSummaryInteracti_rank_1_trial_68_2026-04-20_17-44-40_4bb03d2b-d6ec-45be-ad05-a9b345877ca9.html

## Recommendations

### Production Ready?

❌ **No** - One or more Monte Carlo guardrails failed.

### Observations

- 1 of 1 finalists passed Monte Carlo guardrails.
- APPT (0.26 R) is below 0.5 R — edge is narrow.
- MDD (-33.2 R) exceeds -10 R — drawdown risk is elevated.
