# Machine Learning Model Configuration pattern_graders: # Individual pattern grading models base_model_type: "RandomForestClassifier" # RandomForestClassifier, XGBoostClassifier random_forest: n_estimators: 100 max_depth: 10 min_samples_split: 5 min_samples_leaf: 2 max_features: "sqrt" random_state: 42 n_jobs: -1 xgboost: n_estimators: 100 max_depth: 6 learning_rate: 0.1 subsample: 0.8 colsample_bytree: 0.8 random_state: 42 # Feature selection feature_selection: enabled: true method: "mutual_info" # mutual_info, f_test, chi2 top_k_features: 50 # Training configuration training: cv_folds: 5 scoring_metric: "f1_weighted" early_stopping: true patience: 10 setup_classifier: # Meta-model for complete setup classification model_type: "RandomForestClassifier" # Strategy types strategies: continuation: time_window_start: "03:00" time_window_end: "03:15" min_pattern_count: 2 required_patterns: ["fvg", "order_block"] reversal: time_window_start: "03:30" time_window_end: "03:50" min_pattern_count: 2 required_patterns: ["fvg", "liquidity"] # Model evaluation evaluation: metrics: - "accuracy" - "precision" - "recall" - "f1_score" - "roc_auc" min_accuracy_threshold: 0.75 min_precision_threshold: 0.70 min_recall_threshold: 0.65 # Hyperparameter tuning tuning: enabled: false method: "grid_search" # grid_search, random_search, optuna n_iter: 50 cv_folds: 5 grid_search: param_grids: random_forest: n_estimators: [50, 100, 200] max_depth: [5, 10, 15] min_samples_split: [2, 5, 10] # Model registry registry: track_versions: true auto_promote: false # Auto-promote best model to "latest" min_improvement: 0.02 # Minimum improvement to promote (2%)