r1_microprobe_config.yaml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. version: 0.2
  2. project: chinext50_regime
  3. trading:
  4. frequency: daily
  5. execution_timing: next_open_approx
  6. instrument_type: domestic_stock_etf
  7. max_exposure: 1.0
  8. min_exposure: 0.0
  9. exposure_mode: ladder
  10. exposure_ladder_step: 0.1
  11. max_daily_exposure_change: 0.3
  12. fee_bps_roundtrip: 8
  13. slippage_bps_oneway: 4
  14. extreme_day_move_threshold: 0.03
  15. extreme_day_cost_multiplier: 1.5
  16. gap_slippage_factor: 0.02
  17. annualization: 252
  18. state_machine:
  19. min_state_duration: 3
  20. crash_override: true
  21. thresholds:
  22. risk_off_down_hazard: 0.67
  23. risk_off_stress: 0.89
  24. risk_off_trend_floor: -0.14
  25. crash_override_down_hazard: 0.77
  26. trend_score: 0.45
  27. trend_breadth_min: -0.05
  28. trend_stress_max: 0.45
  29. euphoric_crowding: 0.7
  30. euphoric_rebound_hazard: 0.68
  31. repair_hazard: 0.58
  32. repair_stress_max: 0.85
  33. repair_d_stress_max: 0.0
  34. policy:
  35. trend: 0.9
  36. euphoric_late: 0.6
  37. chop: 0.3
  38. risk_off: 0.0
  39. repair_rebound_base: 0.35
  40. repair_rebound_max: 0.8
  41. evaluation:
  42. objective: net_utility
  43. positive_window_ratio_threshold: 0.6
  44. upside_capture_min: 0.75
  45. max_drawdown_ratio_max: 0.75
  46. primary_window_success_upside_min: 0.25
  47. primary_window_success_drawdown_ratio_max: 0.8
  48. primary_window_success_turnover_max: 22.0
  49. primary_window_success_require_positive_return: true
  50. primary_window_success_ratio_min: 0.5
  51. primary_window_success_ratio_target: 0.6
  52. primary_window_min_rows: 180
  53. utility_upside_target: 0.55
  54. utility_turnover_penalty_start: 8.0
  55. utility_turnover_penalty_rate: 0.01
  56. data_quality:
  57. strict_mode_default: false
  58. default_min_coverage: 0.95
  59. critical_columns:
  60. - open
  61. - high
  62. - low
  63. - close
  64. - volume
  65. - hs300_close
  66. - star50_close
  67. - csi1000_close
  68. - pct_constituents_above_20dma
  69. - pct_constituents_above_60dma
  70. - pct_new_high_20
  71. - pct_new_low_20
  72. - eq_weight_ret_5
  73. - weighted_ret_5
  74. - top3_contribution_5
  75. - top1_contribution_5
  76. - top10_contribution_5
  77. - sector_concentration_20
  78. - corr_spike_20
  79. - dispersion_20
  80. blocking_columns:
  81. - open
  82. - high
  83. - low
  84. - close
  85. - volume
  86. - hs300_close
  87. - star50_close
  88. - csi1000_close
  89. - pct_constituents_above_20dma
  90. - pct_constituents_above_60dma
  91. - pct_new_high_20
  92. - pct_new_low_20
  93. - eq_weight_ret_5
  94. - weighted_ret_5
  95. - top3_contribution_5
  96. - corr_spike_20
  97. - dispersion_20
  98. column_min_coverage: {}
  99. breadth_integrity_min_unique_non_null: 3
  100. breadth_integrity_max_dominant_value_ratio: 0.995
  101. breadth_integrity_std_floor: 1e-8
  102. breadth_semantic_require_official_index_weight: true
  103. breadth_semantic_require_time_varying_membership: true
  104. breadth_semantic_max_industry_unknown_ratio: 0.1
  105. low_info_min_unique_non_null: 3
  106. low_info_std_floor: 1e-8
  107. low_info_max_dominant_ratio: 0.995
  108. low_info_feature_columns:
  109. - concentration_spread_5
  110. - breadth_thrust_5
  111. - up_down_imbalance_20
  112. - breadth_divergence
  113. - top3_vs_top10_ratio_5
  114. - top1_top3_pressure_5
  115. - sector_concentration_change_20
  116. - volume_z_20
  117. - upper_wick_ratio_5
  118. - range_pos_120
  119. low_info_blocking_columns:
  120. - concentration_spread_5
  121. - breadth_thrust_5
  122. - up_down_imbalance_20
  123. - breadth_divergence
  124. - top3_vs_top10_ratio_5
  125. - top1_top3_pressure_5
  126. - sector_concentration_change_20
  127. - volume_z_20
  128. - upper_wick_ratio_5
  129. - range_pos_120
  130. frozen_validation:
  131. window_mode: expanding
  132. min_train_years: 2
  133. test_years: 1
  134. allow_partial_last_test: true
  135. min_train_rows: 120
  136. min_test_rows: 40
  137. candidate_selection:
  138. use_hard_constraints: true
  139. upside_capture_min: 0.28
  140. max_drawdown_ratio_vs_benchmark: 0.72
  141. annual_turnover_soft_max: 18.0
  142. annual_return_override_abs: 0.05
  143. annual_return_override_ratio: 0.4
  144. return_ratio_weight: 0.3
  145. upside_weight: 0.3
  146. drawdown_weight: 0.2
  147. sharpe_delta_weight: 0.1
  148. stability_weight: 0.1
  149. turnover_penalty_per_unit: 0.015
  150. score_cap: 1.2
  151. upside_target: 0.45
  152. drawdown_improvement_target: 0.35
  153. sharpe_delta_shift: 0.05
  154. sharpe_delta_scale: 0.15
  155. turnover_penalty_start: 12.0
  156. core_utility_floor: -0.05
  157. core_utility_target: 0.1
  158. fallback_mode: closest_to_feasible_frontier
  159. candidates:
  160. - id: defensive
  161. overrides:
  162. policy:
  163. trend: 0.8
  164. euphoric_late: 0.3
  165. chop: 0.2
  166. repair_rebound_base: 0.3
  167. repair_rebound_max: 0.65
  168. trading:
  169. max_daily_exposure_change: 0.2
  170. - id: baseline
  171. overrides: {}
  172. - id: balanced_capture
  173. overrides:
  174. policy:
  175. trend: 0.95
  176. euphoric_late: 0.65
  177. chop: 0.35
  178. repair_rebound_base: 0.4
  179. repair_rebound_max: 0.85
  180. trading:
  181. max_daily_exposure_change: 0.3
  182. - id: pro_risk
  183. overrides:
  184. policy:
  185. trend: 1.0
  186. euphoric_late: 0.7
  187. chop: 0.45
  188. repair_rebound_base: 0.5
  189. repair_rebound_max: 0.95
  190. trading:
  191. max_daily_exposure_change: 0.35