# Model Report: ar_btc_60_40d0fa750cd2_20260420_163210

> Generated: 2026-04-20T10:08:33.235837
> Execution ID: `09316439-cb04-4ad2-bf5d-2e463f757c39`

## Executive Summary

### Status: ⚠️ COMPLETED — NOT PRODUCTION READY - Monte Carlo completed, but no finalists passed guardrails (business no-go).

### Links

- 🔗 [Optuna Dashboard](https://optuna-dev.heroestreasure.synology.me/dashboard?study_name=Stage 2 AR_BTC_60_40d0fa750cd2_20260420_163210)
- _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.2649 |
| APPT | 0.218 R |
| MDD | -43.03 R |

### Metrics

| Metric | Value |
|--------|-------|
| SQN | 9.34 |
| Sharpe | 0.93 |
| 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:** 27.16%
- **Recall:** 26.19%

### Pipeline Configuration

```yaml
pipeline_version: 10.0.0
pipeline_name: ar_btc_60_40d0fa750cd2_20260420_163210
description: AutoResearch continuous BTC search candidate 40d0fa750cd2 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/40d0fa750cd2_20260420_163210
    reports_dir: /app/reports
    results_dir: /app/results/autoresearch/40d0fa750cd2_20260420_163210
  optuna:
    study_name: AR_BTC_60_40d0fa750cd2_20260420_163210
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.26
        - 0.43
        appt:
        - 0.1
        - 1.1
        mdd:
        - -16.0
        - -3.0
        take_rate_p:
        - 0.015
        - 0.35
      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.58
      - 0.2
      - 0.18
      - 0.04
      search_space:
        booster:
          values:
          - gbtree
        tree_method:
          values:
          - hist
          - approx
        grow_policy:
          values:
          - lossguide
          - depthwise
        learning_rate:
          low: 0.145
          high: 0.168
        n_estimators:
          low: 700
          high: 1200
          step: 100
        max_depth:
          low: 7
          high: 10
        min_child_weight:
          low: 3
          high: 6
        gamma:
          low: 1.0
          high: 2.6
        reg_alpha:
          low: 6.7
          high: 8.2
        reg_lambda:
          low: 5.3
          high: 7.6
        subsample:
          low: 0.73
          high: 0.775
        colsample_bytree:
          low: 0.805
          high: 0.845
        colsample_bylevel:
          low: 0.735
          high: 0.825
        colsample_bynode:
          low: 0.845
          high: 0.905
        scale_pos_weight:
          low: 5
          high: 8
        max_delta_step:
          low: 4
          high: 7
        max_bin:
          low: 256
          high: 384
          step: 64
        max_leaves:
          low: 96
          high: 176
          step: 16
        base_score:
          low: 0.5
          high: 0.67
      min_appt: 0.05
      min_auprc: 0.22
      max_mdd: null
      min_trades_pct_of_tp: 10
      threshold_search_range:
      - 0.34
      - 0.82
    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: 24
      n_generations: 2
      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.34
      - 0.82
    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.25
        - 0.4
        - 0.35
        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.08
      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_40d0fa750cd2_20260420_163210`

### 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:** 56
- **Pareto Solutions:** 5

### Guardrails

**Warnings:**
- ⚠️ dsr_warning: DSR 11.32 is borderline (warning threshold: 999.0)
- ⚠️ min_composite_score_survivor_mode: Best composite score -2.580 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.55, 0.59, 0.63, 0.67, 0.71

### Results

- **Finalists Tested:** 1
- **Finalists Passed:** 0
- **Execution Time:** 97.1s

⚠️ **No finalists passed guardrails** - Consider relaxing thresholds or improving model quality

## 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_40d0fa750cd2_20260420_Report_FeatureImportance_2026-04-20_17-08-35_09316439-cb04-4ad2-bf5d-2e463f757c39.png)

### SHAP

![SHAP Values](visualizations/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_SHAPSummary_2026-04-20_17-08-35_09316439-cb04-4ad2-bf5d-2e463f757c39.png)

### Additional Artifact Files

- `asset_comparison`: visualizations/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_AssetComparison_2026-04-20_17-08-42_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `feature_importance.stage2_finalists`: visualizations/feature-importance/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_Stage2_FeatureImportance_stage2_finalists_2026-04-20_17-08-40_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `feature_importance_csv.stage1.rank1.trial1`: tuning/Stage_1_AR_BTC_60_40d0fa750cd2_20260420_Tuning_stage1_FeatureImportanceCSV_rank_1_trial_1_2026-04-20_17-04-48_09316439-cb04-4ad2-bf5d-2e463f757c39.csv
- `feature_importance_csv.stage2.rank1.trial3`: tuning/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Tuning_stage2_FeatureImportanceCSV_rank_1_trial_3_2026-04-20_17-05-02_09316439-cb04-4ad2-bf5d-2e463f757c39.csv
- `pipeline.resolved_yaml`: ar_btc_60_40d0fa750cd2_20260420_163210_Pipeline_ResolvedYAML_09316439-cb04-4ad2-bf5d-2e463f75_2026-04-20_16-32-11_09316439-cb04-4ad2-bf5d-2e463f757c39.yaml
- `shap.stage2_all_trials`: visualizations/shap/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_Stage2_SHAPSummary_stage2_all_trials_2026-04-20_17-08-41_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `shap_beeswarm`: visualizations/shap/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_SHAPBeeswarm_2026-04-20_17-08-37_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `shap_csv.stage1.rank1.trial1`: tuning/Stage_1_AR_BTC_60_40d0fa750cd2_20260420_Tuning_stage1_SHAPSummaryCSV_rank_1_trial_1_2026-04-20_17-04-48_09316439-cb04-4ad2-bf5d-2e463f757c39.csv
- `shap_csv.stage2.rank1.trial3`: tuning/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Tuning_stage2_SHAPSummaryCSV_rank_1_trial_3_2026-04-20_17-05-02_09316439-cb04-4ad2-bf5d-2e463f757c39.csv
- `shap_dependence_0`: visualizations/shap/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_SHAPDependence_0_lower_wick_2026-04-20_17-08-39_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `shap_dependence_1`: visualizations/shap/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_SHAPDependence_1_volumedelta_5bar_2026-04-20_17-08-39_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `shap_dependence_2`: visualizations/shap/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_SHAPDependence_2_atr_percentage_2026-04-20_17-08-40_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `shap_dependence_3`: visualizations/shap/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_SHAPDependence_3_volumedelta_20bar_2026-04-20_17-08-40_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `shap_dependence_4`: visualizations/shap/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_SHAPDependence_4_low_array_178_2026-04-20_17-08-40_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `shap_waterfall`: visualizations/shap/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_SHAPWaterfall_2026-04-20_17-08-38_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `step_timing_bar`: visualizations/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Report_StepTimingBar_2026-04-20_17-08-42_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `tuning.shap_artifacts_summary`: tuning/UnknownStudy_Tuning_stage1_st_SHAPArtifactsSummary_summary_2026-04-20_17-05-05_09316439-cb04-4ad2-bf5d-2e463f757c39.json
- `visualization.feature_importance.stage1.rank1.trial1`: tuning/Stage_1_AR_BTC_60_40d0fa750cd2_20260420_Tuning_stage1_FeatureImportance_rank_1_trial_1_2026-04-20_17-04-48_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `visualization.feature_importance.stage2.rank1.trial3`: tuning/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Tuning_stage2_FeatureImportance_rank_1_trial_3_2026-04-20_17-05-02_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `visualization.shap_summary.stage1.rank1.trial1`: tuning/Stage_1_AR_BTC_60_40d0fa750cd2_20260420_Tuning_stage1_SHAPSummary_rank_1_trial_1_2026-04-20_17-04-50_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `visualization.shap_summary.stage2.rank1.trial3`: tuning/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Tuning_stage2_SHAPSummary_rank_1_trial_3_2026-04-20_17-05-02_09316439-cb04-4ad2-bf5d-2e463f757c39.png
- `visualization.shap_summary_html.stage1.rank1.trial1`: tuning/Stage_1_AR_BTC_60_40d0fa750cd2_20260420_Tuning_stage1_SHAPSummaryInteracti_rank_1_trial_1_2026-04-20_17-04-52_09316439-cb04-4ad2-bf5d-2e463f757c39.html
- `visualization.shap_summary_html.stage2.rank1.trial3`: tuning/Stage_2_AR_BTC_60_40d0fa750cd2_20260420_Tuning_stage2_SHAPSummaryInteracti_rank_1_trial_3_2026-04-20_17-05-05_09316439-cb04-4ad2-bf5d-2e463f757c39.html

## Recommendations

### Production Ready?

❌ **No** - Monte Carlo completed, but no finalists passed guardrails (business no-go).

### Observations

- Common failure reasons: [MC] MDD -43.029 < -35.000
- Monte Carlo completed successfully, but zero finalists passed guardrails. This is an explicit business no-go, not a technical failure.
- APPT (0.22 R) is below 0.5 R — edge is narrow.
- MDD (-43.0 R) exceeds -10 R — drawdown risk is elevated.
