dragon/v2 目录下文件,总结交易数据。龙泉回测20260109.data.xlsx。龙泉:交易节点、阶段估值、年度收益汇总焚诀(规则):策略规则文字说明55,450910,785.96+1542.54%,资金约 16.43x32.30%21 个未重新开仓就再次出现的卖点只是看空信号标记,不是真实交易卖点1 个持仓中再次买入记录,当前先归类为持仓中辅助看多信号true_trade_events.csv、true_trades.csv、auxiliary_signals.csv、trade_split_summary.md105 笔完整交易,胜率约 44.8%,均值收益约 +3.15%KDJ/QL双金叉、刀口舔血2、带明确信号标签的买点质量明显高于未标注买点4.1%,但只有约 60% 有效,更适合做仓位/等待过滤,不适合作为硬性 vetoC1 与 C4 为同一指标的不同名称QL凤凰线 的 B/S 是上穿/下穿的计算结果399673BUY 视为辅助看多信号dragon_workbook.pydragon_indicators.pydragon_state_machine.pydragon_validate.pydragon_indicator_snapshot.csvdragon_workbook_layers.csvdragon_signal_alignment.csvdragon_validation.mdKDJ 对齐 197/197 的买点、196/197 的死叉;唯一死叉错位日为 2018-05-23QL 的 B/S 标记对齐 112/112dragon_strategy.py 与 dragon_backtest.py,完成第一版可执行规则树与基线回测106,策略 97,重合 78105,策略 96,重合 641,策略 48,重合 021,策略 195,重合 1196 笔,胜率约 42.71%,平均收益约 +2.23%,中位数约 -0.61%glued_buy,共 77 笔knife_take_profit_2_glued,共 70 笔见好就收1/2、高位大行情退出、预警减仓点、股灾兜底等高位退出规则仍未充分编码crash_protection_exit,2025-10-14 已成功命中真实卖点dragon_event_gaps.csv 与 dragon_event_gaps.md,用于系统化分析工作簿未命中/额外命中事件2019-03-25 预警减仓点2020-03-09 / 2020-07-24 / 2020-08-07 的大行情高位退出2021-06-16 / 2021-07-16 的“大行情第一次不卖、第二次确认再卖”逻辑2022-07-08 / 2022-07-11 的预警减仓与正式卖点拆分
Later refinement on dragon_strategy.py:
added explicit high-regime exit handling before generic glued exits
changed B1 negative count from daily accumulation to sell-signal-node accumulation
blocked premature ql-only high-zone exits such as 2021-06-03
recovered workbook-style key events: 2019-03-25, 2020-03-09, 2020-07-24, 2021-06-16, 2021-06-21, 2021-07-16, 2022-07-08, 2022-07-11, 2022-07-15
current fit after rerun:
real BUY overlap 78/106
real SELL overlap 70/105
aux BUY overlap 0/1
aux SELL overlap 15/21
strategy trades 97, win rate 44.33%, avg return 2.42%, median return -0.59%
Later refinements after more rule work:
added ql_high_zone_take_profit / ql_mid_zone_take_profit
added deep_oversold_rebound_buy and oversold_recovery_buy
added super_hot_trend_hold to preserve 2025-10-14 crash-protection exit
latest verified fit:
real BUY overlap 96/106
real SELL overlap 88/105
missing real BUY down to 10
missing real SELL down to 17
strategy trades 118, win rate 44.07%, avg return 2.04%, median return -0.61%
important recovered dates in this stage:
buys: 2022-02-09, 2022-02-15, 2022-03-11, 2022-03-16, 2022-04-27, 2022-09-26, 2022-11-01, 2023-06-12
sells: 2020-05-22, 2021-11-18, 2024-03-22, 2022-02-11, 2022-02-22, 2022-03-15, 2022-03-25, 2022-05-24, 2022-09-30, 2022-11-10, 2023-06-21, 2025-10-14
Final edge-pattern refinements in this session:
fixed same-bar buy/sell execution bug in run()
added oversold_reversal_after_ql_buy
added oversold_rebound_take_profit
added predictive_b1_break_exit and predictive_error_reentry_buy
latest verified fit:
real BUY overlap 98/106
real SELL overlap 91/105
missing real BUY down to 8
missing real SELL down to 14
remaining misses are concentrated in early 2016-2019 samples
recovered late-sample dates:
2023-08-28, 2023-09-07, 2023-10-12, 2024-11-28, 2024-11-29
Final pass today closed all remaining real-trade gaps in dragon/v2.
Root causes were three overly broad ql-only exit paths and one non-standard post-washout reentry day.
Implemented:
narrow low_zone_wait_kdj_confirmation to 14<=c1<30
add glued_mid_zone_wait_kdj_confirmation
add oversold_low_zone_wait_kdj_confirmation
add post_washout_kdj_reentry_buy
allow _buy_decision() evaluation while flat even on non-buy-signal days, so workbook-style special reentry can be captured
final verified fit after serial rerun:
real BUY overlap 106/106
real SELL overlap 105/105
aux BUY overlap 1/1
aux SELL overlap 15/21
strategy trades 130, win rate 42.31%, avg return 1.84%, median return -0.77%
Later quality optimization on the same day:
added buy_block_glued_high_weak_rebound with c1 > 68 and b1 < -0.08 to cut false glued entries in high weak rebound states
compressed flat-state auxiliary sell output via _should_emit_aux_sell()
aux sell now only emits for:
repeated bearish confirmation within 10 days after a real sell
or high-zone renewed weakness (c1 > 80)
or kdj_sell with c1 > 60 and b1 < -0.05
corrected dragon_backtest.py to trim strategy evaluation to workbook min/max dates, not just min date
latest verified fit after these changes:
real BUY overlap 106/106
real SELL overlap 105/105
extra real BUY 14
extra real SELL 14
aux BUY overlap 1/1
aux SELL overlap 18/21
strategy aux SELL 94 vs prior 181
strategy trades 120, win rate 44.17%, avg return 2.10%, median return -0.59%
Continued late-session optimization cut remaining extra real trades from 14+14 down to 5+5 without breaking full real-trade alignment.
Current verified fit:
real BUY overlap 106/106
real SELL overlap 105/105
extra real BUY 5
extra real SELL 5
aux BUY overlap 1/1
aux SELL overlap 18/21
strategy aux SELL 89
strategy trades 111, win rate 45.05%, avg return 2.32%, median return -0.60%
Remaining extra real BUY dates:
2020-10-28, 2023-02-13, 2023-05-10, 2023-10-26, 2024-11-27
Remaining extra real SELL dates:
2020-10-23, 2022-12-27, 2023-05-19, 2023-11-10, 2024-11-22
Important lesson: some apparent extra buys are state-bridge entries that preserve later workbook-aligned sells, so pruning must always be verified on downstream sell alignment, not just on local buy precision.
Phase 1 attribution outputs created:
dragon_residual_attribution.py
dragon_residual_trade_attribution.csv
dragon_residual_trade_review.md
Current residual recommendation split:
delete candidates: 2020-10-23, 2022-12-27, 2023-05-10, 2023-05-19
keep bridge: 2020-10-28
keep alpha: 2023-10-26, 2023-11-10
observe bridge: 2023-02-13, 2024-11-27
observe: 2024-11-22
Phase 2 residual cleanup was then executed directly in dragon_strategy.py.
Implemented three narrow filters:
block the weak oversold_reversal_after_ql_buy pattern around 23<c1<26, b1>-0.12, a1>-0.035
narrow early_failed_rebound_exit from any b1<0 to mild weakness -0.05<b1<0
add a ql-only follow-through hold before knife_take_profit_2_glued for the narrow 2020-10-23 pattern
A follow-up hot-zone hold mid_hot_wait_ql_confirmation was added after the first rerun to restore the workbook-aligned 2020-11-11 sell that had shifted to 2020-11-10
Latest verified fit after serial rerun:
real BUY overlap 106/106
real SELL overlap 105/105
extra real BUY 2: 2023-10-26, 2024-11-27
extra real SELL 2: 2023-11-10, 2024-11-22
aux BUY overlap 1/1
aux SELL overlap 18/21, strategy aux SELL 85
strategy trades 108, win rate 44.44%, avg return 2.49%, median return -0.61%
Net result: all four prior DELETE_CANDIDATE residual rows were removed, and the remaining residual set is now only KEEP_ALPHA plus OBSERVE/OBSERVE_BRIDGE.
Phase 3 residual cleanup then targeted the last bridge chain 2024-11-22 -> 2024-11-27 -> 2024-11-28 -> 2024-11-29.
Full-history uniqueness checks showed:
the long-held ql-only fade pattern around 2024-11-22 was unique
the long-held predictive break pattern around 2024-11-28 was also unique
Implemented:
long_glued_wait_predictive_break to hold through the premature 2024-11-22 ql-only exit
a long-held extension of predictive_b1_break_exit so the same position exits on 2024-11-28
Latest verified fit after serial rerun:
real BUY overlap 106/106
real SELL overlap 105/105
extra real BUY 1: 2023-10-26
extra real SELL 1: 2023-11-10
aux BUY overlap 1/1, strategy aux BUY 48
aux SELL overlap 18/21, strategy aux SELL 85
strategy trades 107, win rate 44.86%, avg return 2.52%, median return -0.60%
2024-11-27 is no longer a real extra buy; it is now a holding-period auxiliary bullish signal.
Residual review now contains only one KEEP_ALPHA pair: 2023-10-26 / 2023-11-10.
Phase 4 auxiliary-signal optimization then started on 2026-04-04.
Added audit tooling and outputs:
dragon_aux_signal_audit.py
dragon_aux_signal_audit.csv
dragon_aux_signal_review.md
Aux BUY optimization:
added strength-gated holding reconfirmation logic plus cooldown in dragon_strategy.py
reduced strategy aux BUY from 48 to 19 while preserving workbook overlap 1/1
Aux SELL optimization:
initially tested a broader redesign, then rolled back to the more robust original trunk
kept only duplicate-cooldown suppression plus a narrow state_crash_followthrough path
recovered workbook aux sell 2025-10-17
also suppressed premature high-zone kdj-only aux sells so workbook dates 2019-04-11 and 2021-07-26 now align
Latest verified fit after serial rerun:
real BUY overlap 106/106
real SELL overlap 105/105
aux BUY overlap 1/1, strategy aux BUY 19
aux SELL overlap 19/21, strategy aux SELL 82
strategy trades 107, win rate 44.86%, avg return 2.52%, median return -0.60%
Current bottleneck from audit:
the main remaining unmatched auxiliary cluster is SELL / post_exit_confirmation with 53 unmatched rows
future compression should be based on grouping by real-sell cycle, not only simple date cooldowns
User approved sequence: finish Stage 2 first, then move into Stage 3 robustness validation.
Stage 2 structural outputs were completed and verified:
dragon_trade_path_trace.csv
dragon_rule_taxonomy.md
dragon_aux_sell_cycle_audit.csv
dragon_aux_sell_cycle_summary.csv
dragon_aux_sell_cycle_review.md
dragon_trade_path_trace.py was corrected so Layer 4 links both in-position aux BUY and post-exit aux SELL until the next real BUY, matching the agreed auxiliary-layer definition.
A narrow cycle-aware aux-sell dedupe was then added to dragon_strategy.py:
within post_exit_confirmation, only the first same-side signal (ql or kdj) is emitted in a flat cycle
this keeps workbook-style ql -> kdj double confirmation cycles but removes same-side repeat noise
Latest verified fit after rerun:
real BUY overlap 106/106
real SELL overlap 105/105
extra real BUY 1: 2023-10-26
extra real SELL 1: 2023-11-10
aux BUY overlap 1/1, strategy aux BUY 19
aux SELL overlap 19/21, strategy aux SELL 75
strategy events 307, strategy trades 107
win rate 44.86%, avg return 2.52%, median return -0.60%
Cycle compression effect:
repeated post_exit_confirmation cycles 10 -> 3
zero-anchor repeated cycles 8 -> 1
remaining protected double-confirmation cycles are 2022-07-08 -> 2022-09-26 and 2018-12-06 -> 2019-01-18
remaining zero-anchor repeated candidate is 2023-12-04 -> 2024-01-18
Stage 3 was then started with a first executable robustness pack.
Added dragon_robustness_report.py.
Generated:
dragon_trade_quality.csv
dragon_trade_group_summary.csv
dragon_yearly_performance.csv
dragon_rule_contribution_entry.csv
dragon_rule_contribution_exit.csv
dragon_rule_stability.csv
dragon_robustness_report.md
First results:
baseline 107 trades, avg MFE 6.66%, avg MAE -2.66%, avg exit followthrough 5d -2.95%
short holding buckets remain the main weakness:
00-05d win rate 0%, avg return -2.03%
06-10d avg return -0.81%
long holding buckets contain most alpha:
21-40d avg return 6.33%
41d+ win rate 100%, avg return 24.13%
later sample is stronger than earlier sample:
2016-2020 avg return 1.95%, profit factor 2.83
2021-2025 avg return 3.15%, profit factor 3.81
current attribution focus for next optimization round:
entry side: deep_oversold_rebound_buy
exit side: knife_take_profit_2_glued
report explicitly notes the next engineering gap: parameterize hard-coded thresholds before formal perturbation and true leave-one-rule-out reruns
Stage 3 continued and delivered the next three modules in this same session.
Module A:
added dragon_strategy_config.py
parameterized dragon_strategy.py so DragonRuleEngine(config=...) can run experiments without changing default baseline behavior
default config was verified to preserve:
real BUY overlap 106/106
real SELL overlap 105/105
aux BUY overlap 1/1
aux SELL overlap 19/21, strategy aux SELL 75
strategy trades 107, avg return 2.52%
Module B:
added dragon_rule_ablation.py
generated dragon_rule_ablation.csv and dragon_rule_ablation.md
rerun ablation findings:
glued_buy is still the backbone; disabling it collapses overlap to BUY 46, SELL 52
deep_oversold_rebound_buy is the clearest weak entry family:
disabling it raises avg return by about +0.54%
but breaks overlap to BUY 93, SELL 92
predictive_b1_break_exit and some oversold rebound/reentry rules look mildly weak, but current evidence is not enough to cut them directly because alignment still degrades
disabling knife_take_profit_2_glued caused no top-level metric change in rerun form, suggesting replacement by alternate same-cycle exits
Module C:
added dragon_threshold_perturbation.py
generated:
dragon_threshold_perturbation.csv
dragon_threshold_perturbation.md
dragon_threshold_sensitivity_summary.csv
first perturbation pack conclusions:
fragile parameters:
predictive_b1_break_short_b1_max
predictive_b1_break_long_b1_max
deep_oversold_entry_c1_max
deep_oversold_entry_b1_min
robust parameters:
post_exit_confirmation_window_days
aux_sell_high_zone_kdj_only_block_c1
glued_high_weak_rebound_high_c1
glued_high_weak_rebound_high_b1
Module D:
added dragon_stability_report.py
generated dragon_stage3_stability_report.md
current quantitative judgment:
short holding buckets remain the main drag
glued_buy remains core alpha structure
optimization leverage is now concentrated in weak oversold entry logic and fragile predictive-break exit thresholds
auxiliary sell layer is no longer the main optimization frontier
Deep-oversold focus work was then completed in the same session.
Added localized audit artifacts:
dragon_deep_oversold_audit.py
dragon_deep_oversold_audit.csv
dragon_deep_oversold_subtype_summary.csv
dragon_deep_oversold_review.md
Audit result:
all 18 deep-oversold trades are workbook-aligned
weakest subtypes are positive_b1_rebound and shallow_false_start
relatively better subtype is classic_oversold
Strategy research granularity was improved without changing behavior:
deep_oversold_rebound_buy now emits subtype-tagged reasons
a family-aware _entry_reason_is(...) helper was added so subtype labels do not break downstream sell logic
Verified after rerun:
real BUY overlap 106/106
real SELL overlap 105/105
aux BUY overlap 1/1
aux SELL overlap 19/21, strategy aux SELL 75
strategy trades 107, avg return 2.52%
Practical conclusion:
next optimization should target subtype-aware redesign of positive_b1_rebound and shallow_false_start, not the full deep-oversold family
One more subtype-aware pass was then executed.
Default safe optimization applied:
shallow-false-start entries with ql_buy are now routed to same-day fallback rules instead of remaining inside the deep-oversold family
very light positive-B1 rebound with a1 > -0.02 is also routed to same-day fallback
Rerouted dates:
2018-01-02 -> glued_buy
2018-10-19 -> dual_gold_resonance_buy
2023-06-02 -> dual_gold_resonance_buy
2024-09-11 -> glued_buy
Verified after rerun:
real BUY overlap 106/106
real SELL overlap 105/105
aux BUY overlap 1/1
aux SELL overlap 19/21, strategy aux SELL 75
strategy trades 107, avg return 2.52%
deep-oversold family count reduced from 18 to 14
Added focused experiment outputs:
dragon_deep_oversold_experiments.py
dragon_deep_oversold_experiments.csv
dragon_deep_oversold_experiments.md
Focused experiment results show the remaining weak subtype blocking is not acceptable under current objective:
block remaining positive-B1 rebound -> BUY 104, SELL 103
block remaining shallow-false-start without ql -> BUY 103, SELL 102
block both -> BUY 101, SELL 100
Conclusion: safe cleanup is mostly exhausted; any further deep-oversold optimization now requires accepting alignment loss or inventing more complex replacement logic
Continued Stage 3 optimization then removed one redundant weak entry label from the effective in-sample decision tree.
In dragon_strategy.py, non_glued_positive_expansion_buy was narrowed to non-dual_gold cases only.
This pushed the two historical in-sample occurrences (2016-07-13, 2020-04-30) onto the later dual_gold_resonance_buy fallback branch on the same dates.
Verified after serial rerun:
real BUY overlap 106/106
real SELL overlap 105/105
aux BUY overlap 1/1
aux SELL overlap 19/21, strategy aux SELL 75
strategy trades 107, avg return 2.52%, profit factor 3.31
Structural implication:
dual_gold_resonance_buy count increased from 11 to 14
non_glued_positive_expansion_buy now has no remaining in-sample trades and should be treated as a redundant label, not an independent alpha family
dragon_stage3_stability_report.md was updated to record this judgment.
Stage 3 was then formally closed into a research baseline package instead of continuing blind residual tuning.
Added dragon_walk_forward_validation.py.
Generated:
dragon_walk_forward_summary.csv
dragon_walk_forward_family_year.csv
dragon_walk_forward_family_stability.csv
dragon_walk_forward_report.md
Walk-forward conclusions on the fixed current baseline:
anchored expanding windows positive out-of-sample years 8/10
rolling 3Y windows positive out-of-sample years 7/8
strongest persistent family remains glued_buy; early_crash_probe_buy also remains strong but smaller-sample
weakest family persistence remains deep_oversold_rebound_buy; dual_gold_resonance_buy and post_sell_rebound_buy are secondary / weaker persistence families
Added dragon_research_baseline.py.
Generated:
dragon_baseline_config_snapshot.json
dragon_formal_research_baseline.md
Formal baseline classification now fixed as:
core alpha families: glued_buy, early_crash_probe_buy, oversold_recovery_buy
structural support families: dual_gold_resonance_buy, deep_oversold_rebound_buy:classic_oversold
frozen bridge rules: predictive_b1_break_exit, predictive_error_reentry_buy, plus related internal hold gates that only preserve workbook split paths
redundant label: non_glued_positive_expansion_buy
active research families: remaining weak deep-oversold subtypes, post_washout_kdj_reentry_buy, oversold_reversal_after_ql_buy, post_sell_rebound_buy
Current stage judgment:
the workbook-preserving reconstruction baseline is now formalized
next work should target either:
Track A: subtype-aware redesign of weak deep-oversold entries
Track B: short-holding drag reduction in 00-05d / 06-10d
not further predictive-break tuning or aux-layer micro-optimization
Continued Track A work then implemented a switchable deep-oversold confirmation branch in dragon_strategy.py and dragon_strategy_config.py, with default behavior still unchanged.
New config controls:
deep_oversold_confirm_weak_with_ql
deep_oversold_confirm_window_bars
Added pending-state support for weak deep-oversold subtype setups so alpha-first experiments can delay entry until later QL confirmation without touching the formal baseline.
Added dragon_deep_oversold_confirmation_experiments.py.
Generated:
dragon_deep_oversold_confirmation_experiments.csv
dragon_deep_oversold_confirmation_event_changes.csv
dragon_deep_oversold_confirmation_experiments.md
dragon_deep_oversold_confirmation_review.md
Key result:
QL confirmation for weak deep-oversold subtypes improves alpha-first branch metrics somewhat (avg_return up to about 2.73%, profit_factor up to about 3.66)
but this improvement comes mainly from vetoing weak trades, not from turning them into strong confirmed winners
2022-03-11, 2024-01-18, 2024-01-23 are clean veto wins
delayed confirmed entries such as 2022-03-17 and 2024-08-30 still remain losing trades
Quant implication:
for future alpha-first research, weak deep-oversold redesign should prioritize selective veto / removal before adding more confirmation complexity
for the workbook-preserving baseline, no change should be applied from this branch
Track A then moved from delayed-confirmation to narrow selective-veto experiments.
Added more alpha-first experiment hooks in dragon_strategy_config.py / dragon_strategy.py:
deep_oversold_selective_positive_b1_c1_max
deep_oversold_selective_shallow_c1_min
deep_oversold_selective_shallow_b1_min
deep_oversold_selective_mixed_c1_max
deep_oversold_selective_mixed_require_no_ql
Added dragon_deep_oversold_selective_veto_experiments.py.
Generated:
dragon_deep_oversold_selective_veto_experiments.csv
dragon_deep_oversold_selective_veto_event_changes.csv
dragon_deep_oversold_selective_veto_experiments.md
dragon_deep_oversold_selective_veto_review.md
Key result:
best branch is selective_veto_plus_mixed_c1_lt_10_2_no_ql
metrics: 103 trades, avg_return about 2.81%, profit_factor about 3.96
this is better than broad blocking of all remaining weak subtypes (102 trades, avg_return about 2.78%, profit_factor about 3.76)
and also loses fewer aligned dates
Best branch removes four clearly weak deep-oversold trades:
2022-02-09
2022-03-11
2024-01-18
2024-01-23
while preserving the more borderline chains:
2022-03-16
2024-08-29
Current quant judgment:
Track A priority is now clear:
narrow pathological-pattern veto > delayed QL confirmation > broad subtype deletion
workbook-preserving baseline still unchanged
alpha-first branch best current candidate is the selective-veto package, not the confirmation package
Stage 3 was then formally closed with branch-level governance and completion artifacts.
Added dragon_alpha_first_baseline.py.
Generated:
dragon_alpha_first_baseline.md
dragon_alpha_first_config_snapshot.json
dragon_alpha_first_branch_summary.csv
dragon_alpha_first_branch_comparison.csv
dragon_alpha_first_branch_holding_buckets.csv
dragon_alpha_first_branch_walk_forward.csv
dragon_alpha_first_branch_trade_diff.csv
Alpha-first candidate baseline fixed as alpha_first_selective_veto with:
trades 103
avg_return about 2.81%
profit_factor about 3.96
real BUY / SELL overlap 102 / 101
short-holding buckets improved versus workbook baseline:
00-05d about -2.03% -> -1.72%
06-10d about -0.81% -> -0.69%
walk-forward also improved modestly while keeping the same positive-year counts:
anchored 8/10 positive years, average test return improved
rolling 3Y 7/8 positive years, average test return improved
trade diff vs workbook baseline is simple and interpretable:
removed only 4 pathological deep-oversold trades
added 0 new trades
Added final closure document:
dragon_stage3_completion.md
Final stage judgment:
Stage 1 complete
Stage 2 complete
Stage 3 complete
Current governance:
workbook_preserving is the authoritative reconstruction baseline
alpha_first_selective_veto is the leading performance-oriented research branch
future work must explicitly choose the branch before continuing optimization
Follow-up short-holding governance review completed after Stage 3 closure.
Confirmed dragon_short_holding_master_review.md already existed and was valid.
Added alpha_first_glued_selective_veto in dragon_branch_configs.py plus formal review script dragon_glued_alpha_candidate.py.
Generated:
dragon_glued_alpha_candidate_summary.csv
dragon_glued_alpha_candidate_comparison.csv
dragon_glued_alpha_candidate_holding_buckets.csv
dragon_glued_alpha_candidate_walk_forward.csv
dragon_glued_alpha_candidate_trade_diff_vs_alpha.csv
dragon_glued_alpha_candidate_trade_diff_vs_workbook.csv
dragon_glued_alpha_candidate_config_snapshot.json
dragon_glued_alpha_candidate_review.md
Candidate result:
trades 92
avg_return 3.35%
profit_factor 4.95
real BUY / SELL overlap 90/89
short buckets improved further:
00-05d -1.67%
06-10d -0.58%
walk-forward improved too:
anchored 9/10 positive, avg test return 3.86%
rolling 3Y 7/8 positive, avg test return 4.78%
Governance conclusion:
do not replace current formal alpha-first baseline yet
keep alpha_first_selective_veto as official alpha-first branch
keep alpha_first_glued_selective_veto as next research branch because overlap loss is much larger (102/101 -> 90/89)
Trade-diff detail:
vs alpha-first, glued candidate removes 12 trades and adds 1
all 12 removals are glued_buy
added trade is fallback reroute 2021-11-22 -> 2021-11-30, dual_gold_resonance_buy -> small_positive_a1_declining:kdj_sell
Continued immediately with glued-branch residual attribution instead of blind retuning.
Added:
dragon_glued_veto_attribution.py
dragon_glued_veto_attribution.csv
dragon_glued_veto_bucket_summary.csv
dragon_glued_veto_review.md
Attribution result on the 12 removed trades vs alpha_first_selective_veto:
removed-set avg_return -1.60%
win_rate 8.33%
profit_factor 0.03
bucket split:
low_weak_range: 4 trades, all losing, avg_return -2.35%, avg_holding 3.0, clean promotion candidate
hot_positive_b1: 8 trades, 7 keep-veto + 1 observe-veto, avg_return -1.23%, avg_holding 6.1
only borderline sample is:
2021-11-05 -> 2021-11-18, glued_buy -> ql_mid_zone_take_profit, return +0.69%
this suggested narrowing hot veto instead of rolling back glued veto globally
Added configurable hot-cap support:
glued_selective_hot_c1_max in dragon_strategy_config.py
corresponding condition update in dragon_strategy.py
Added focused refinement pack:
dragon_glued_refine_experiments.py
dragon_glued_refine_experiments.csv
dragon_glued_refine_experiments.md
dragon_glued_refined_candidate_config.json
dragon_glued_refined_trade_diff_vs_full.csv
added branch helper alpha_first_glued_refined_hot_cap_config() in dragon_branch_configs.py
Refined glued candidate result:
glued_veto_hot_cap75_and_low
trades 92
avg_return 3.36%
profit_factor 4.98
real BUY / SELL overlap 91/90
This is better than the prior full glued candidate on both performance and overlap.
Minimal diff vs prior full glued branch:
add back 2021-11-05 -> 2021-11-18, glued_buy -> ql_mid_zone_take_profit
remove fallback reroute 2021-11-22 -> 2021-11-30, dual_gold_resonance_buy -> small_positive_a1_declining:kdj_sell
Updated stage judgment:
alpha_first_selective_veto still remains the formal alpha-first baseline
next research branch should now be the refined glued candidate, not the old full glued candidate
Completed the formal upgrade-review pack for the refined glued branch.
Added:
dragon_glued_refined_branch_review.py
dragon_glued_refined_branch_summary.csv
dragon_glued_refined_branch_comparison.csv
dragon_glued_refined_branch_walk_forward.csv
dragon_glued_refined_branch_trade_diff.csv
dragon_glued_refined_holding_breakdown.csv
dragon_glued_refined_yearly_breakdown.csv
dragon_glued_refined_family_breakdown.csv
dragon_glued_refined_regime_breakdown.csv
dragon_glued_refined_branch_config_snapshot.json
dragon_glued_refined_branch_review.md
Result for alpha_first_glued_refined_hot_cap:
trades 92
avg_return 3.36%
profit_factor 4.98
avg_MFE 7.57%
avg_MAE -2.57%
real BUY / SELL overlap 91/90
walk-forward:
anchored 9/10, avg test return 3.87%
rolling 3Y 7/8, avg test return 4.79%
relative to current alpha_first_selective_veto:
avg_return +0.55%
profit_factor +1.02
overlap -11/-11
removed trades 11, added trades 0
Governance conclusion from the review:
quality and walk-forward gate now pass
but promotion still should not be silent because the overlap loss remains material
recommended status remains:
keep alpha_first_selective_veto as formal alpha-first baseline
keep alpha_first_glued_refined_hot_cap as the leading next alpha-first candidate
Also completed refined removed-trade attribution.
Added:
dragon_glued_refined_removed_trade_attribution.py
dragon_glued_refined_removed_trade_attribution.csv
dragon_glued_refined_removed_trade_review.md
Removed-set result vs current alpha-first:
removed trades 11
avg_return -1.81%
win_rate 0%
profit_factor 0.00
recommendation mix:
KEEP_REMOVAL 11
OBSERVE_REMOVAL 0
OVER_REMOVAL 0
The refined branch now removes only losing short-holding glued trades from the current alpha-first baseline; no profitable sample remains in the removed set.
Completed final alpha-branch governance package.
Added:
dragon_alpha_branch_governance.py
dragon_alpha_branch_governance_matrix.csv
dragon_alpha_branch_governance_decision.json
dragon_alpha_branch_governance.md
Final gate results:
headline_quality_gate = PASS
stability_gate = PASS
removal_quality_gate = PASS
alignment_cost_gate = FAIL
explicit deltas of refined candidate vs current formal alpha:
avg_return +0.55%
profit_factor +1.02
BUY overlap -11
SELL overlap -11
removed trades 11, added trades 0
Final governance decision:
DUAL_TRACK_GOVERNANCE
Meaning:
alpha_first_selective_veto stays as the formal alpha-first baseline
alpha_first_glued_refined_hot_cap becomes the governed leading candidate, but not auto-promoted because overlap loss exceeds the automatic-promotion tolerance
User then explicitly supported the stronger alpha-first view and asked for the next research direction and detailed plan under that stance.
Planning implication:
next roadmap should treat alpha_first_glued_refined_hot_cap as the main forward candidate and alpha_first_selective_veto as the benchmark control, rather than continuing workbook-style fine-tuning.
Executed the first full formalization-validation pack under the stronger alpha-first direction.
Added:
dragon_research_direction_update.md
dragon_forward_branch_roles.md
dragon_cost_stress_test.py
dragon_cost_stress_test.csv
dragon_cost_stress_test.md
dragon_glued_refined_sensitivity.py
dragon_glued_refined_sensitivity.csv
dragon_glued_refined_sensitivity_summary.csv
dragon_glued_refined_sensitivity.md
dragon_glued_refined_year_regime_review.py
dragon_glued_refined_year_regime_review.csv
dragon_glued_refined_regime_review.csv
dragon_glued_refined_holding_review.csv
dragon_glued_refined_family_review.csv
dragon_glued_refined_year_regime_review.md
dragon_equity_curve_review.py
dragon_equity_curve_review.csv
dragon_drawdown_review.csv
dragon_monthly_return_review.csv
dragon_yearly_return_review.csv
dragon_equity_curve_review.md
Core validation conclusions:
cost stress:
refined remains ahead at every tested cost level
at 20 bps/side, current alpha CAGR 23.55%, refined CAGR 26.62%
local sensitivity:
neighborhood cases 81
avg_return range 3.23% -> 3.42%
PF range 4.66 -> 5.11
robust-nearby cases 52
year/regime:
improvements concentrate in short-holding cleanup and glued_buy
medium and long buckets are preserved
equity curve:
refined is best on growth and drawdown quality together
CAGR 31.32%
max DD -12.79%
Calmar 2.45
Updated stage judgment:
the refined alpha candidate now looks quantitatively robust across:
cost pressure
local threshold perturbation
year/regime consistency
drawdown quality
the only remaining blocker is governance preference on workbook divergence, not lack of quantitative evidence
Added dragon_alpha_promotion_decision.md.
This document converts the prior "governed candidate" status into an explicit recommendation tree:
keep alpha_first_selective_veto if workbook continuity is still a hard governance constraint
promote alpha_first_glued_refined_hot_cap if the objective is explicitly robust alpha first
otherwise keep dual-track governance but use refined as the forward research default and selective-veto as the benchmark control
Practical conclusion after this step:
quant evidence now points clearly to refined as the better strategy branch
non-promotion is now a governance choice, not an evidence gap
Added dragon_forward_research_plan.md so the next-stage roadmap is fixed in one file for later verification.
The plan formalizes the next work around alpha_first_glued_refined_hot_cap and splits it into:
branch freeze
alpha attribution
execution-aware robustness
formal governance
final strategy memo
Immediate execution focus remains Phase 2: explain exactly where refined alpha comes from.
Completed Phase 2 refined attribution work.
Added:
dragon_refined_alpha_attribution.py
dragon_refined_family_decomposition.csv
dragon_refined_alpha_attribution.csv
dragon_refined_removed_trade_recheck.csv
dragon_refined_edge_review.md
Main conclusions:
refined alpha still comes mainly from glued_buy
the branch wins by deleting weak short glued trades rather than adding complex paths
removed trades vs control remain 11, all classified KEEP_REMOVAL
removed-set avg_return -1.81%, win_rate 0%
Completed execution-aware robustness validation.
Added:
dragon_refined_execution_validation.py
dragon_refined_execution_stress.csv
dragon_refined_latency_review.csv
dragon_refined_risk_cluster_review.csv
dragon_refined_stability_review.md
Main conclusions:
refined still leads under next-open execution: avg_return 3.31% vs 2.76%, PF 4.73 vs 3.78
refined still leads under next-close execution: avg_return 2.44% vs 1.98%, PF 2.78 vs 2.37
refined still leads under next-open + 20 bps/side: CAGR 25.51% vs 22.40%, PF 3.64 vs 2.92
refined also improves risk clusters under next-open:
max loss streak 8 vs 10
worst 5-trade sum -7.96% vs -10.11%
max drawdown -13.19% vs -17.84%
Completed formal strategy packaging.
Added:
dragon_formal_strategy_governance.md
dragon_parameter_governance.md
dragon_strategy_monitoring_template.csv
dragon_formal_strategy_memo.md
This closes the staged roadmap from Phase 1 through Phase 5 in the current session.
Workspace-level conclusion is now explicit:
alpha_first_glued_refined_hot_cap is the best branch quantitatively
if not promoted, that is now a governance decision rather than a missing-research issue