{"indicator":{"schema":"mastermind.indicator/v1","indicator":{"id":"confluence_rsimacd_stochrsi_mtf","title":"RSI-MACD × StochRSI MTF Confluence","engine":"python:signal_layer.confluence_v2@v2","source_lang":"python","source_hash":"sha256:f27a407bea861a2217477beb98c398abc62845d2bcc38d331d4963c06471986d","macd_kind":"rsi_based","params":{"confW":8,"rsiLen":14,"useMTF":true,"confirmTF":"1W","macd_on":"rsi","macd_fast":14,"macd_slow":60,"macd_signal":5,"buy_rsi_max":65,"ext_rsi":70,"rev_bars":3,"no_cut_exits":true,"reclaim_lane":true}},"symbol":"BHVN","timeframe":"3D","as_of":"2026-09-21T00:00:00Z","bar_quality":"real_ohlc","signal_era":"gc_v2_wo2","signals":[{"ts":"2023-04-19","known_ts":"2023-04-21","bar_index":48,"type":"BUY","strength":0.45,"price":14.34,"reasons":["macd_bull_cross","recent_b1","confirm_bull","rsi<65"],"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false},"quality":"regime_blocked","quality_reason":"bear_block: monthly-bear & below-200 & 2W-not-bull","tier":null,"score":null,"blocked":true},{"ts":"2023-04-24","known_ts":"2023-04-24","bar_index":49,"type":"RECLAIM","strength":0.588,"price":13.13,"scored":true,"quality":"block_repair","quality_reason":"bear-block legs repaired after the 2023-04-19 blocked entry","reasons":["bear_block_cleared","macd_cross_still_live"],"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false}},{"ts":"2023-07-24","known_ts":"2023-07-24","bar_index":69,"type":"SELL","basis":"structure_stop","strength":0.863,"price":23.83,"stop_level":24.07,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":false}},{"ts":"2023-10-05","known_ts":"2023-10-05","bar_index":87,"type":"RECLAIM","strength":0.725,"price":24.85,"scored":true,"quality":"reclaim","quality_reason":"trend reclaimed the 2023-07-24 sell level","reasons":["close>sell_price","weekly_bull","above200","debounced"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":false}},{"ts":"2023-10-27","known_ts":"2023-10-27","bar_index":92,"type":"SELL","basis":"structure_stop","strength":0.725,"price":26.84,"stop_level":26.85,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":false}},{"ts":"2023-10-30","known_ts":"2023-10-30","bar_index":92,"type":"RECLAIM","strength":0.725,"price":27.63,"scored":false,"quality":"stop_sweep_reclaim","quality_reason":"price reclaimed the 2023-10-27 structure-stop level within five sessions","reasons":["close_reclaimed_stop_level","within_5_sessions","failed_breakdown"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":false},"anchor_ts":"2023-10-27","prior_stop_level":26.85,"sweep_low":26.688,"atr14":1.489094,"stop_level":25.943453,"risk_basis":"daily_ohlc_atr14"},{"ts":"2023-11-13","known_ts":"2023-11-13","bar_index":96,"type":"RECLAIM","strength":0.725,"price":29.05,"scored":true,"quality":"reclaim","quality_reason":"trend reclaimed the 2023-10-27 sell level","reasons":["close>sell_price","weekly_bull","above200","debounced"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":false}},{"ts":"2024-03-25","known_ts":"2024-03-25","bar_index":126,"type":"SELL","basis":"structure_stop","strength":1.0,"price":55.23,"stop_level":55.38,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":true}},{"ts":"2024-03-26","known_ts":"2024-03-26","bar_index":126,"type":"RECLAIM","strength":1.0,"price":56.29,"scored":false,"quality":"stop_sweep_reclaim","quality_reason":"price reclaimed the 2024-03-25 structure-stop level within five sessions","reasons":["close_reclaimed_stop_level","within_5_sessions","failed_breakdown"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":true},"anchor_ts":"2024-03-25","prior_stop_level":55.38,"sweep_low":55.13,"atr14":3.273512,"stop_level":53.493244,"risk_basis":"daily_ohlc_atr14"},{"ts":"2024-06-20","known_ts":"2024-06-24","bar_index":146,"type":"BOTTOM_WATCH","scored":false,"subtype":"early_dot","quality":"washout_early_watch","quality_reason":"early momentum turn inside a point-in-time own-name washout","trigger_ts":"2024-06-20","trigger_known_ts":"2024-06-24","strength":0.45,"price":34.74,"reasons":["bear_block","own_name_washout","early_momentum_turn"],"washout_ctx":{"rule":"bear_block & (dd252<=-35% | monthly_os_dwell>=3) & recent_3d_os","drawdown_252":-0.402374,"monthly_oversold_dwell":0,"recent_3d_oversold":true},"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false},"sweep_low":32.62,"atr14":2.219186,"stop_level":31.510407,"risk_basis":"daily_ohlc_atr14"},{"ts":"2024-06-25","known_ts":"2024-06-27","bar_index":147,"type":"BUY","strength":0.45,"price":35.09,"reasons":["macd_bull_cross","recent_b1","confirm_bull","rsi<65"],"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false},"quality":"regime_blocked","quality_reason":"bear_block: monthly-bear & below-200 & 2W-not-bull","tier":null,"score":null,"blocked":true},{"ts":"2024-06-25","known_ts":"2024-06-27","bar_index":147,"type":"BOTTOM_WATCH","scored":false,"subtype":"blocked_trigger","quality":"washout_trigger_watch","quality_reason":"blocked Oracle turn inside a point-in-time own-name washout","trigger_ts":"2024-06-25","trigger_known_ts":"2024-06-27","strength":0.45,"price":35.09,"reasons":["bear_block","own_name_washout","raw_buy_trigger"],"washout_ctx":{"rule":"bear_block & (dd252<=-35% | monthly_os_dwell>=3) & recent_3d_os","drawdown_252":-0.396353,"monthly_oversold_dwell":0,"recent_3d_oversold":true},"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false},"sweep_low":32.62,"atr14":2.013368,"stop_level":31.613316,"risk_basis":"daily_ohlc_atr14"},{"ts":"2024-08-05","known_ts":"2024-08-05","bar_index":156,"type":"SELL","basis":"structure_stop","strength":0.588,"price":34.23,"stop_level":34.71,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false}},{"ts":"2024-08-06","known_ts":"2024-08-06","bar_index":156,"type":"RECLAIM","strength":0.588,"price":35.72,"scored":false,"quality":"stop_sweep_reclaim","quality_reason":"price reclaimed the 2024-08-05 structure-stop level within five sessions","reasons":["close_reclaimed_stop_level","within_5_sessions","failed_breakdown"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false},"anchor_ts":"2024-08-05","prior_stop_level":34.71,"sweep_low":32.5,"atr14":2.284036,"stop_level":31.357982,"risk_basis":"daily_ohlc_atr14"},{"ts":"2024-08-23","known_ts":"2024-08-23","bar_index":161,"type":"RECLAIM","strength":0.725,"price":41.35,"scored":true,"quality":"reclaim","quality_reason":"trend reclaimed the 2024-08-05 sell level","reasons":["close>sell_price","weekly_bull","above200","debounced"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":false}},{"ts":"2024-10-29","known_ts":"2024-10-29","bar_index":176,"type":"SELL","basis":"structure_stop","strength":0.725,"price":50.95,"stop_level":51.34,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":false}},{"ts":"2024-11-05","known_ts":"2024-11-05","bar_index":178,"type":"RECLAIM","strength":0.725,"price":51.41,"scored":false,"quality":"stop_sweep_reclaim","quality_reason":"price reclaimed the 2024-10-29 structure-stop level within five sessions","reasons":["close_reclaimed_stop_level","within_5_sessions","failed_breakdown"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":false},"anchor_ts":"2024-10-29","prior_stop_level":51.34,"sweep_low":48.735,"atr14":2.298022,"stop_level":47.585989,"risk_basis":"daily_ohlc_atr14"},{"ts":"2025-01-30","known_ts":"2025-02-03","bar_index":197,"type":"BUY","strength":0.45,"price":37.71,"reasons":["macd_bull_cross","recent_b1","confirm_bull","rsi<65"],"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false},"quality":"regime_blocked","quality_reason":"bear_block: monthly-bear & below-200 & 2W-not-bull","tier":null,"score":null,"blocked":true},{"ts":"2025-01-30","known_ts":"2025-02-03","bar_index":197,"type":"BOTTOM_WATCH","scored":false,"subtype":"blocked_trigger","quality":"washout_trigger_watch","quality_reason":"blocked Oracle turn inside a point-in-time own-name washout","trigger_ts":"2025-01-30","trigger_known_ts":"2025-02-03","strength":0.45,"price":37.71,"reasons":["bear_block","own_name_washout","raw_buy_trigger"],"washout_ctx":{"rule":"bear_block & (dd252<=-35% | monthly_os_dwell>=3) & recent_3d_os","drawdown_252":-0.351282,"monthly_oversold_dwell":0,"recent_3d_oversold":true},"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false},"sweep_low":36.825,"atr14":2.073215,"stop_level":35.788392,"risk_basis":"daily_ohlc_atr14"},{"ts":"2025-02-07","known_ts":"2025-02-07","bar_index":199,"type":"RECLAIM","strength":0.588,"price":42.53,"scored":true,"quality":"block_repair","quality_reason":"bear-block legs repaired after the 2025-01-30 blocked entry","reasons":["bear_block_cleared","macd_cross_still_live"],"regime":{"weeklyBull":false,"above200":true,"monthlyBull":false}},{"ts":"2025-02-21","known_ts":"2025-02-21","bar_index":202,"type":"SELL","basis":"structure_stop","strength":0.45,"price":36.91,"stop_level":38.25,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false}},{"ts":"2025-03-03","known_ts":"2025-03-03","bar_index":204,"type":"SELL","basis":"structure_stop","strength":0.45,"price":32.06,"stop_level":35.53,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false}},{"ts":"2025-03-19","known_ts":"2025-03-21","bar_index":208,"type":"BOTTOM_WATCH","scored":false,"subtype":"early_dot","quality":"washout_early_watch","quality_reason":"early momentum turn inside a point-in-time own-name washout","trigger_ts":"2025-03-19","trigger_known_ts":"2025-03-21","strength":0.45,"price":28.54,"reasons":["bear_block","own_name_washout","early_momentum_turn"],"washout_ctx":{"rule":"bear_block & (dd252<=-35% | monthly_os_dwell>=3) & recent_3d_os","drawdown_252":-0.499474,"monthly_oversold_dwell":0,"recent_3d_oversold":true},"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false},"sweep_low":26.96,"atr14":1.920502,"stop_level":25.999749,"risk_basis":"daily_ohlc_atr14"},{"ts":"2025-04-09","known_ts":"2025-04-11","bar_index":213,"type":"BOTTOM_WATCH","scored":false,"subtype":"early_dot","quality":"washout_early_watch","quality_reason":"early momentum turn inside a point-in-time own-name washout","trigger_ts":"2025-04-09","trigger_known_ts":"2025-04-11","strength":0.45,"price":17.62,"reasons":["bear_block","own_name_washout","early_momentum_turn"],"washout_ctx":{"rule":"bear_block & (dd252<=-35% | monthly_os_dwell>=3) & recent_3d_os","drawdown_252":-0.668111,"monthly_oversold_dwell":0,"recent_3d_oversold":true},"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false},"sweep_low":15.79,"atr14":2.380309,"stop_level":14.599846,"risk_basis":"daily_ohlc_atr14"},{"ts":"2025-04-23","known_ts":"2025-04-25","bar_index":216,"type":"BUY","strength":0.45,"price":19.84,"reasons":["macd_bull_cross","recent_b1","confirm_bull","rsi<65"],"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false},"quality":"regime_blocked","quality_reason":"bear_block: monthly-bear & below-200 & 2W-not-bull","tier":null,"score":null,"blocked":true},{"ts":"2025-04-23","known_ts":"2025-04-25","bar_index":216,"type":"BOTTOM_WATCH","scored":false,"subtype":"blocked_trigger","quality":"washout_trigger_watch","quality_reason":"blocked Oracle turn inside a point-in-time own-name washout","trigger_ts":"2025-04-23","trigger_known_ts":"2025-04-25","strength":0.45,"price":19.84,"reasons":["bear_block","own_name_washout","raw_buy_trigger"],"washout_ctx":{"rule":"bear_block & (dd252<=-35% | monthly_os_dwell>=3) & recent_3d_os","drawdown_252":-0.626295,"monthly_oversold_dwell":0,"recent_3d_oversold":true},"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false},"sweep_low":17.42,"atr14":2.305305,"stop_level":16.267348,"risk_basis":"daily_ohlc_atr14"},{"ts":"2025-05-15","known_ts":"2025-05-15","bar_index":221,"type":"SELL","basis":"structure_stop","strength":0.45,"price":15.82,"stop_level":19.02,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false}},{"ts":"2025-05-22","known_ts":"2025-05-22","bar_index":223,"type":"SELL","basis":"structure_stop","strength":0.45,"price":15.43,"stop_level":19.02,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false}},{"ts":"2025-09-11","known_ts":"2025-09-11","bar_index":248,"type":"SELL","basis":"structure_stop","strength":0.588,"price":14.07,"stop_level":15.39,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false}},{"ts":"2025-09-18","known_ts":"2025-09-18","bar_index":250,"type":"RECLAIM","strength":0.588,"price":15.52,"scored":false,"quality":"stop_sweep_reclaim","quality_reason":"price reclaimed the 2025-09-11 structure-stop level within five sessions","reasons":["close_reclaimed_stop_level","within_5_sessions","failed_breakdown"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false},"anchor_ts":"2025-09-11","prior_stop_level":15.39,"sweep_low":13.41,"atr14":0.927118,"stop_level":12.946441,"risk_basis":"daily_ohlc_atr14"},{"ts":"2025-11-03","known_ts":"2025-11-03","bar_index":260,"type":"SELL","basis":"structure_stop","strength":0.725,"price":14.85,"stop_level":16.3,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false}},{"ts":"2025-11-05","known_ts":"2025-11-05","bar_index":261,"type":"SELL","basis":"structure_stop","strength":0.725,"price":8.34,"stop_level":16.3,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false}},{"ts":"2025-12-12","known_ts":"2025-12-16","bar_index":270,"type":"BUY","strength":0.725,"price":11.03,"reasons":["macd_bull_cross","recent_b1","confirm_bull","rsi<65"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false},"quality":"block","quality_reason":"failed reclaim-and-hold","tier":"base","score":30},{"ts":"2026-02-05","known_ts":"2026-02-05","bar_index":282,"type":"SELL","basis":"structure_stop","strength":0.725,"price":10.76,"stop_level":10.97,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false}},{"ts":"2026-02-06","known_ts":"2026-02-06","bar_index":282,"type":"RECLAIM","strength":0.725,"price":11.6,"scored":false,"quality":"stop_sweep_reclaim","quality_reason":"price reclaimed the 2026-02-05 structure-stop level within five sessions","reasons":["close_reclaimed_stop_level","within_5_sessions","failed_breakdown"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false},"anchor_ts":"2026-02-05","prior_stop_level":10.97,"sweep_low":10.61,"atr14":0.964159,"stop_level":10.12792,"risk_basis":"daily_ohlc_atr14"},{"ts":"2026-04-13","known_ts":"2026-04-15","bar_index":297,"type":"BUY","strength":0.588,"price":10.37,"reasons":["macd_bull_cross","recent_b1","confirm_bull","rsi<65"],"regime":{"weeklyBull":false,"above200":false,"monthlyBull":false},"quality":"block","quality_reason":"counter-trend, no 200-reclaim/hold","tier":"base","score":70},{"ts":"2026-04-30","known_ts":"2026-04-30","bar_index":301,"type":"SELL","basis":"structure_stop","strength":0.725,"price":9.59,"stop_level":10.01,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false}},{"ts":"2026-05-04","known_ts":"2026-05-04","bar_index":302,"type":"RECLAIM","strength":0.725,"price":10.14,"scored":false,"quality":"stop_sweep_reclaim","quality_reason":"price reclaimed the 2026-04-30 structure-stop level within five sessions","reasons":["close_reclaimed_stop_level","within_5_sessions","failed_breakdown"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false},"anchor_ts":"2026-04-30","prior_stop_level":10.01,"sweep_low":9.02,"atr14":0.693847,"stop_level":8.673076,"risk_basis":"daily_ohlc_atr14"},{"ts":"2026-05-13","known_ts":"2026-05-13","bar_index":304,"type":"SELL","basis":"structure_stop","strength":0.725,"price":9.03,"stop_level":9.2,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false}},{"ts":"2026-05-26","known_ts":"2026-05-28","bar_index":307,"type":"BUY","strength":0.725,"price":10.24,"reasons":["macd_bull_cross","recent_b1","confirm_bull","rsi<65"],"regime":{"weeklyBull":true,"above200":false,"monthlyBull":false},"quality":"block","quality_reason":"failed reclaim-and-hold","tier":"base","score":40},{"ts":"2026-07-13","known_ts":"2026-07-13","bar_index":317,"type":"SELL","basis":"structure_stop","strength":0.863,"price":15.17,"stop_level":15.55,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":false}},{"ts":"2026-07-15","known_ts":"2026-07-15","bar_index":318,"type":"SELL","basis":"structure_stop","strength":0.863,"price":14.86,"stop_level":15.55,"reasons":["distribution_confirmed","structure_break"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":false}},{"ts":"2026-08-04","known_ts":"2026-08-04","bar_index":323,"type":"RECLAIM","strength":1.0,"price":14.42,"scored":true,"quality":"reclaim","quality_reason":"trend reclaimed the 2026-07-15 sell level","reasons":["close>sell_price","weekly_bull","above200","debounced"],"regime":{"weeklyBull":true,"above200":true,"monthlyBull":true}}],"state":{"position_hint":"long","last_signal":"RECLAIM","last_scored_signal":"RECLAIM","last_scored_ts":"2026-08-04","last_scored_basis":null,"bars_since_signal":11,"extended":false,"strong_bull":false,"overbought":false,"weeklyBull":false,"above200":true},"early_dots":["2023-03-10","2023-04-14","2023-05-05","2023-08-07","2023-09-11","2023-09-27","2024-02-06","2024-03-04","2024-04-29","2024-05-23","2024-12-02","2024-12-23","2025-11-17","2025-12-26","2026-03-30","2026-08-07","2026-08-25","2026-09-21"],"warnings":[{"ts":"2023-05-19","kind":"arm","px":14.1},{"ts":"2023-06-16","kind":"arm","px":23.65},{"ts":"2023-07-24","kind":"confirm","px":23.83,"level":24.07},{"ts":"2023-10-23","kind":"arm","px":26.85},{"ts":"2023-10-27","kind":"confirm","px":26.84,"level":26.85},{"ts":"2023-12-22","kind":"arm","px":40.08},{"ts":"2024-03-21","kind":"arm","px":55.88},{"ts":"2024-03-25","kind":"confirm","px":55.23,"level":55.38},{"ts":"2024-07-22","kind":"arm","px":36.45},{"ts":"2024-08-05","kind":"confirm","px":34.23,"level":34.71},{"ts":"2024-08-30","kind":"arm","px":39.4},{"ts":"2024-10-04","kind":"arm","px":47.63},{"ts":"2024-10-29","kind":"confirm","px":50.95,"level":51.34},{"ts":"2025-02-07","kind":"arm","px":38.43},{"ts":"2025-02-21","kind":"confirm","px":36.91,"level":38.25},{"ts":"2025-02-26","kind":"arm","px":37.18},{"ts":"2025-03-03","kind":"confirm","px":32.06,"level":35.53},{"ts":"2025-05-12","kind":"arm","px":20.56},{"ts":"2025-05-15","kind":"confirm","px":15.82,"level":19.02},{"ts":"2025-05-21","kind":"arm","px":15.7},{"ts":"2025-05-22","kind":"confirm","px":15.43,"level":19.02},{"ts":"2025-08-12","kind":"arm","px":13.47},{"ts":"2025-09-10","kind":"arm","px":14.01},{"ts":"2025-09-11","kind":"confirm","px":14.07,"level":15.39},{"ts":"2025-10-17","kind":"arm","px":15.95},{"ts":"2025-11-03","kind":"confirm","px":14.85,"level":16.3},{"ts":"2025-11-04","kind":"arm","px":13.95},{"ts":"2025-11-05","kind":"confirm","px":8.34,"level":16.3},{"ts":"2026-01-27","kind":"arm","px":12.67},{"ts":"2026-02-05","kind":"confirm","px":10.76,"level":10.97},{"ts":"2026-04-29","kind":"arm","px":9.2},{"ts":"2026-04-30","kind":"confirm","px":9.59,"level":10.01},{"ts":"2026-05-12","kind":"arm","px":9.2},{"ts":"2026-05-13","kind":"confirm","px":9.03,"level":9.2},{"ts":"2026-07-01","kind":"arm","px":15.76},{"ts":"2026-07-13","kind":"confirm","px":15.17,"level":15.55},{"ts":"2026-07-14","kind":"arm","px":14.94},{"ts":"2026-07-15","kind":"confirm","px":14.86,"level":15.55}],"meta":{"leakfree":true,"scored":false,"score_basis":"full","validated_against":"signal_layer/confluence.py","validation":{},"honest_read":"RSI-MACD × StochRSI MTF confluence on daily→3D. Risk/timing overlay.","warnings":[]}}}