Sovereign BriefResearch Console

Signal Intelligence Lab

Granger causality · PCA hybrid index · lag-only alpha validation · target diagnostics - all resolved against the same parquet reference date.

Run Metadata

Reference
2026-05-18
Generated
2026-05-18 23:46 UTC
Artifact
sentiment-insight-v2
Diagnostics
complete
Tests run
75
Correction
FDR-BH

감성이 먼저

news → market

News Sentiment -> Fear & Greed Index

lag 2d · 보정 p<0.001 · significant

시장이 먼저

market → news

BTC Log Return -> News Sentiment

lag 1d · 보정 p<0.001 · significant

의미 있는 관계

26

adj p-value < 0.05

종합 신호 핵심

Fear & Greed Index

+0.635 · 99.6% coverage

§01

Pipeline Health

run · coverage · source · raw metadata

Data integrity check before reading any signal. Quality precedes interpretation.

Run State

sentiment-insight-v2

sentiment-join-20260518 · 2026-05-18

Rows

539

raw 539 · masked 14.5%

Granger

26 significant

75 tests · 0 skips

Alpha

21 signals

1 horizons · baseline linked

Targets

7

fixed + volatility adjusted labels

Raw Metadata

31 keys

parquet sentiment_join_stats

§02

Data Quality

source lineage · ffill · exclusion

Where BTC, ETF, futures, and VIX inputs originated and how much interpolation was applied. High ffill counts indicate stale propagation, not real signal.

데이터 품질 매트릭스

Input data state to inspect before reading any signal output. Source lineage, ffill counts, and outlier masking in a single view.

Rows used

539

raw 539

Masked

78

14.47%

Exclusions

5

feature exclusion groups

btc_etf

gold_history

coverage:non_null_days:540.00 · ratio:0.998 · mode:gold_history

futures

lambda

coverage:funding_days:542.00 · funding_ratio:1.000 · funding_quality_reasons:0 items

Forward Fill

btcend_date:2026-05-18 · filled_days:0.000
macroend_date:2026-05-18 · filled_days:495.00
usdkrwend_date:2026-05-18 · filled_days:172.00
vixend_date:2026-05-18 · filled_days:158.00

Exclusions

insufficient_article_count: 0.000invalid_contract: 0.000missing_backfill_marker: 0.000no_sentiment: 0.000skipped_sentiment: 2.00
§03

Granger Causality

75 relationships · lag 1–3d

Tests whether past values of one series statistically precede changes in another. Highlighted results survive multiple-comparison correction.

먼저 움직인 신호

감성과 시장 중 어느 쪽이 먼저 움직였는지 lag 1일 / 2일 / 3일 기준으로 비교합니다.

보정 p<0.05temporal precedence · lag-based

감성이 먼저

news leads price

News Sentiment → Fear & Greed Index

best lag: 2일 전 · 보정 p<0.001

significant0%

News Sentiment → ETF Net Inflow

best lag: 3일 전 · 보정 p<0.001

significant100%

Fear & Greed Index → ETF Net Inflow

best lag: 3일 전 · 보정 p<0.001

significant84%

News Sentiment → BTC Log Return

best lag: 2일 전 · 보정 p=0.004

significant57%

Fear & Greed Index → News Sentiment

best lag: 2일 전 · 보정 p=0.007

significant50%

Sentiment Momentum → BTC Log Return

best lag: 2일 전 · 보정 p=0.016

significant42%

etf net inflow usd log1p → BTC Log Return

best lag: 2일 전 · 보정 p=0.096

watch24%

btc taker imbalance zscore 30d → BTC Log Return

best lag: 1일 전 · 보정 p=0.111

watch22%

Volume Change → BTC Log Return

best lag: 2일 전 · 보정 p=0.131

watch21%

Fear & Greed Index → long short ratio zscore 30d

best lag: 2일 전 · 보정 p=0.146

watch20%

usdkrw log return → Volume Change

best lag: 3일 전 · 보정 p=0.156

watch19%

funding rate zscore 30d → ETF Net Inflow

best lag: 2일 전 · 보정 p=0.205

watch16%

long short ratio zscore 30d → BTC Log Return

best lag: 3일 전 · 보정 p=0.246

watch14%

ETF Net Inflow → BTC Log Return

best lag: 1일 전 · 보정 p=0.299

watch12%

oi change pct → BTC Log Return

best lag: 3일 전 · 보정 p=0.343

watch11%

News Sentiment → funding rate zscore 30d

best lag: 1일 전 · 보정 p=0.504

watch7%

usdkrw log return → BTC Log Return

best lag: 2일 전 · 보정 p=0.585

watch5%

Fear & Greed Index → BTC Log Return

best lag: 1일 전 · 보정 p=0.821

watch2%

F&G Change 1d → BTC Log Return

best lag: 1일 전 · 보정 p=0.821

watch2%

funding rate zscore 30d → BTC Log Return

best lag: 1일 전 · 보정 p=0.868

watch1%

시장이 먼저

price leads news

BTC Log Return → News Sentiment

best lag: 1일 전 · 보정 p<0.001

significant0%

BTC Log Return → Fear & Greed Index

best lag: 1일 전 · 보정 p<0.001

significant0%

BTC Log Return → long short ratio zscore 30d

best lag: 1일 전 · 보정 p<0.001

significant0%

BTC Log Return → ETF Net Inflow

best lag: 3일 전 · 보정 p<0.001

significant100%

BTC Log Return → funding rate zscore 30d

best lag: 3일 전 · 보정 p=0.063

watch28%
§04

Alpha Validation

7d horizon · baseline uplift

Candidate signals must outperform naive baselines on lag-only forward returns. Walk-forward stability separates persistent edge from in-sample curve-fitting.

Sharpe basis changed · 2026-04-30

Sharpe는 sqrt(365) 기준으로 연환산됩니다. 2026-04-30 이전 산출물은 sqrt(252) 기준이므로 직접 비교 불가합니다.

Alpha validation

Candidate signals must show baseline uplift to be promoted. Performance is evaluated on lag-only 1d / 3d / 7d forward returns, not contemporaneous correlation.

Candidate signals

21

lag-only predictors

Horizon

7d

btc_fwd_ret_7d

Best baseline

63.8%

best reference model

Walk-forward

2

full/core folds

Gate · decision vs strict

decision: 0 promotestrict: 0 promote
gap ratio 0.0%

Top signal hit rates

vix regime score

uplift -9.1ppq=1.000
strict54.7%

vol regime filtered full hybrid score

uplift -11.3ppq=1.000
strict52.5%

etf net inflow usd log1p

uplift -12.0ppq=1.000
strict51.8%

etf net inflow usd log1p

uplift -12.0ppq=1.000
strict51.8%

etf net inflow usd log1p

uplift -12.0ppq=1.000
strict51.8%

Backtest / walk-forward

News Sentiment

alpha 51.58%
-0.92

Fear & Greed Index

alpha 121.88%
-0.28

Sentiment Momentum

alpha -16.75%
-1.72

Sentiment Accel

alpha 20.50%
-1.15

core walk-forward

stability 0.62
49.1%

full walk-forward

stability 0.69
51.4%

Research rules · not yet in production gate

4 signals

vix low long only

research
uplift -8.0ppq=1.000
strict55.8%

vote vol sent fng5 2of3

research
uplift -7.1ppq=1.000
strict56.8%

vote vol vix sent fng5 3of4

research
uplift -7.5ppq=1.000
strict56.4%

vol regime v2 vix realized vol 2of2

research
uplift 0.0ppq=1.000
strict63.8%
§05

Target Diagnostics

forward returns · fixed label · volatility adjusted label

Event rates for large-move labels. Labels that are too frequent or too rare distort the prediction task — compare fixed vs. vol-adjusted thresholds across regimes.

Target diagnostics

Compare event rates across return targets and large-move labels. Labels that are too common create an illusion of easy prediction — inspect both fixed and vol-adjusted thresholds.

fixed large move38.4%
vol-adjusted move14.4%

btc_fwd_ret_1d

-0.0005

valid 538 · null 0.2%

btc_fwd_ret_3d

-0.0012

valid 536 · null 0.6%

btc_fwd_ret_7d

-0.0027

valid 532 · null 1.3%

btc_fwd_vol_5d

0.0207

valid 534 · null 0.9%

btc_large_move_3d

38.4%

valid 536 · null 0.6%

btc_large_move_3d_vol_adj

14.4%

valid 526 · null 2.4%

btc_realized_vol_20d_lag1

0.0222

valid 529 · null 1.9%

§06

PCA Factor Analysis

extended features · core features · loadings

Compression of market indicators into a single hybrid index. Loadings reveal which features drive the composite signal direction and magnitude.

지표 기여도

종합 신호를 올리거나 낮추는 지표의 방향과 설명력 비중을 함께 봅니다.

Components

4

설명력

85.2%

Coverage

97.6%

Features used

8

Excluded

0

데이터 상태 참고 필요 · composite signal computed from available features

가장 큰 기여 지표

Fear & Greed Index

+0.485 · raises composite signal

Fear & Greed Index

rank #1

lowersraises

+0.485

18.8%

raises

News Sentiment

rank #2

lowersraises

+0.480

18.6%

raises

Long/Short Ratio

rank #3

lowersraises

-0.411

15.9%

lowers

vix regime score

rank #4

lowersraises

+0.332

12.9%

raises

ETF Net Inflow

rank #5

lowersraises

+0.320

12.4%

raises

VIX Volatility

rank #6

lowersraises

-0.297

11.5%

lowers

Funding Rate

rank #7

lowersraises

+0.253

9.8%

raises

Volume Change

rank #8

lowersraises

-0.006

0.2%

lowers

§07

Stationarity Gate

ADF · stationarity · diagnostics

Granger tests assume stationary inputs. Weak ADF results cause skips or reduce confidence in causality estimates — this panel traces the root cause.

Stationarity gate

Time-series tests assume stationarity. Weak ADF results cause skips or reduce confidence in causality estimates — trace root cause here.

12 series
seriesp-valuestatstatus
BTC Log Returnn/an/astationary
ETF Net Inflown/an/astationary
etf net inflow usd log1pn/an/awatch
F&G Change 1dn/an/astationary
Fear & Greed Indexn/an/awatch
funding rate zscore 30dn/an/astationary
long short ratio zscore 30dn/an/astationary
News Sentimentn/an/awatch
oi change pctn/an/astationary
Sentiment Momentumn/an/astationary
usdkrw log returnn/an/astationary
Volume Changen/an/astationary
§08

Raw Parquet Metadata

sentiment_join_stats · no-loss view

Full parquet metadata exposed as JSON. Dashboard cards are curated views — this section is the ground truth for debugging and contract verification.

Raw parquet metadatasentiment_join_stats · 31 keys · ground truth viewexpand
{
  "adf": {
    "btc_log_return": {
      "adf_pvalue": 0,
      "adf_statistic": -25.344470909616184,
      "conclusion": "stationary",
      "kpss_pvalue": 0.1,
      "kpss_statistic": 0.13347403842623376,
      "stationary": true
    },
    "etf_net_inflow_usd": {
      "adf_pvalue": 1.5771099709911042e-7,
      "adf_statistic": -6.010570070782248,
      "conclusion": "stationary",
      "kpss_pvalue": 0.05431019786419277,
      "kpss_statistic": 0.4530003409550728,
      "stationary": true
    },
    "etf_net_inflow_usd_log1p": {
      "adf_pvalue": 3.3466033793484976e-18,
      "adf_statistic": -10.302352929420245,
      "conclusion": "trend_stationary",
      "kpss_pvalue": 0.02668362823628929,
      "kpss_statistic": 0.5665246906308755,
      "stationary": false
    },
    "fng_change_1d": {
      "adf_pvalue": 6.950611050823909e-27,
      "adf_statistic": -14.456853101881208,
      "conclusion": "stationary",
      "kpss_pvalue": 0.1,
      "kpss_statistic": 0.057283411048244234,
      "stationary": true
    },
    "fng_value": {
      "adf_pvalue": 0.10886804317302673,
      "adf_statistic": -2.527748110548966,
      "conclusion": "non_stationary",
      "kpss_pvalue": 0.01,
      "kpss_statistic": 1.9381404778173592,
      "stationary": false
    },
    "funding_rate_zscore_30d": {
      "adf_pvalue": 2.3663169228050047e-10,
      "adf_statistic": -7.200952467376335,
      "conclusion": "stationary",
      "kpss_pvalue": 0.1,
      "kpss_statistic": 0.14624896278474944,
      "stationary": true
    },
    "long_short_ratio_zscore_30d": {
      "adf_pvalue": 5.924642840375786e-10,
      "adf_statistic": -7.038664487451109,
      "conclusion": "stationary",
      "kpss_pvalue": 0.1,
      "kpss_statistic": 0.15984850198768802,
      "stationary": true
    },
    "news_sentiment_mean": {
      "adf_pvalue": 0.017856880431238766,
      "adf_statistic": -3.238588850010335,
      "conclusion": "trend_stationary",
      "kpss_pvalue": 0.01,
      "kpss_statistic": 1.6315279582913658,
      "stationary": false
    },
    "oi_change_pct": {
      "adf_pvalue": 0,
      "adf_statistic": -19.107124669480356,
      "conclusion": "stationary",
      "kpss_pvalue": 0.1,
      "kpss_statistic": 0.05860661708963503,
      "stationary": true
    },
    "sentiment_momentum": {
      "adf_pvalue": 2.4913759475729174e-16,
      "adf_statistic": -9.55645763739729,
      "conclusion": "stationary",
      "kpss_pvalue": 0.1,
      "kpss_statistic": 0.012671036247299509,
      "stationary": true
    },
    "usdkrw_log_return": {
      "adf_pvalue": 3.5888472914642144e-26,
      "adf_statistic": -14.019764800131432,
      "conclusion": "stationary",
      "kpss_pvalue": 0.1,
      "kpss_statistic": 0.07323227056660432,
      "stationary": true
    },
    "volume_change_pct": {
      "adf_pvalue": 1.937371065047328e-7,
      "adf_statistic": -5.970902523744728,
      "conclusion": "stationary",
      "kpss_pvalue": 0.1,
      "kpss_statistic": 0.1280486920836178,
      "stationary": true
    }
  },
  "backtest": [
    {
      "alpha": -0.14789045205463053,
      "bnh_cumulative_return": -0.2580853780484309,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -1.051112812825529,
      "cumulative_return_ci_upper": 0.28052053876185795,
      "granger_significant": true,
      "inverted": false,
      "max_drawdown": -0.5184253747869213,
      "n_trades": 105,
      "n_valid": 538,
      "predictor": "news_sentiment_mean_lag1",
      "sharpe_ci_lower": -2.4916670808612973,
      "sharpe_ci_upper": 0.6454877460612054,
      "sharpe_ratio": -0.9533424761819534,
      "strategy_cumulative_return": -0.40597583010306143,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": 0.22379652180499177,
      "bnh_cumulative_return": -0.2580853780484309,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.4536700193072766,
      "cumulative_return_ci_upper": 0.45180341541941593,
      "granger_significant": true,
      "inverted": false,
      "max_drawdown": -0.25532014153040056,
      "n_trades": 35,
      "n_valid": 538,
      "predictor": "fng_value_lag1",
      "sharpe_ci_lower": -1.3833510053150073,
      "sharpe_ci_upper": 1.2943765027811516,
      "sharpe_ratio": -0.10143271349630387,
      "strategy_cumulative_return": -0.034288856243439136,
      "threshold": 50,
      "transaction_cost_bps": 10
    },
    {
      "alpha": 0.027431563517194918,
      "bnh_cumulative_return": -0.23705965628333858,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.9964199197480379,
      "cumulative_return_ci_upper": 0.5011691721381669,
      "granger_significant": true,
      "inverted": false,
      "max_drawdown": -0.5678611775355014,
      "n_trades": 171,
      "n_valid": 535,
      "predictor": "sentiment_momentum_lag1",
      "sharpe_ci_lower": -1.9897976658778074,
      "sharpe_ci_upper": 1.0916449193924789,
      "sharpe_ratio": -0.43403890344176566,
      "strategy_cumulative_return": -0.20962809276614366,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": -0.07009295825483619,
      "bnh_cumulative_return": -0.2068455417015566,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.8589429216812758,
      "cumulative_return_ci_upper": 0.30899245740922715,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.5287982464058782,
      "n_trades": 304,
      "n_valid": 537,
      "predictor": "sentiment_accel_lag1",
      "sharpe_ci_lower": -1.91994763113617,
      "sharpe_ci_upper": 0.6990502904403563,
      "sharpe_ratio": -0.6180154479189112,
      "strategy_cumulative_return": -0.2769384999563928,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": -0.13450388434055988,
      "bnh_cumulative_return": -0.2068455417015566,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.9762687616419836,
      "cumulative_return_ci_upper": 0.34334597044310544,
      "granger_significant": false,
      "inverted": false,
      "max_drawdown": -0.6454111595642935,
      "n_trades": 311,
      "n_valid": 537,
      "predictor": "fng_change_1d_lag1",
      "sharpe_ci_lower": -2.3074023774143813,
      "sharpe_ci_upper": 0.710835030806303,
      "sharpe_ratio": -0.7526719488529843,
      "strategy_cumulative_return": -0.3413494260421165,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": -0.09690803691920552,
      "bnh_cumulative_return": -0.25358045734722623,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.9667819418372631,
      "cumulative_return_ci_upper": 0.23556931558118824,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.4648687556167063,
      "n_trades": 150,
      "n_valid": 533,
      "predictor": "fng_change_5d_lag1",
      "sharpe_ci_lower": -2.435448377731875,
      "sharpe_ci_upper": 0.5563050286179443,
      "sharpe_ratio": -0.8964570321694773,
      "strategy_cumulative_return": -0.35048849426643175,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": 0.026285899638112897,
      "bnh_cumulative_return": -0.2580853780484309,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.8388422213624149,
      "cumulative_return_ci_upper": 0.37419491469208704,
      "granger_significant": null,
      "inverted": true,
      "max_drawdown": -0.38078749086976793,
      "n_trades": 17,
      "n_valid": 538,
      "predictor": "btc_bear_regime_lag1",
      "sharpe_ci_lower": -1.844320269708795,
      "sharpe_ci_upper": 0.9441648516372214,
      "sharpe_ratio": -0.5226245593076257,
      "strategy_cumulative_return": -0.231799478410318,
      "threshold": 0.5,
      "transaction_cost_bps": 10
    },
    {
      "alpha": 0.10060197975763374,
      "bnh_cumulative_return": -0.23705965628333858,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.9154266363601533,
      "cumulative_return_ci_upper": 0.4705260606799273,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.4975645766406209,
      "n_trades": 90,
      "n_valid": 535,
      "predictor": "sentiment_momentum_x_bear_lag1",
      "sharpe_ci_lower": -2.195549231104835,
      "sharpe_ci_upper": 1.4830909522324034,
      "sharpe_ratio": -0.38091604113487915,
      "strategy_cumulative_return": -0.13645767652570484,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": 0.26385170011048825,
      "bnh_cumulative_return": -0.2068455417015566,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.44457995803958356,
      "cumulative_return_ci_upper": 0.590220262670464,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.3835106529781831,
      "n_trades": 148,
      "n_valid": 537,
      "predictor": "fng_change_1d_x_bear_lag1",
      "sharpe_ci_lower": -1.71610109728036,
      "sharpe_ci_upper": 1.6868554118198396,
      "sharpe_ratio": 0.1814140009047053,
      "strategy_cumulative_return": 0.05700615840893164,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": 0.14928490649707477,
      "bnh_cumulative_return": -0.2580853780484309,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.7540496623244785,
      "cumulative_return_ci_upper": 0.5065874227474773,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.4948411138801548,
      "n_trades": 57,
      "n_valid": 538,
      "predictor": "funding_rate_x_bear_lag1",
      "sharpe_ci_lower": -1.6569047177766854,
      "sharpe_ci_upper": 1.2424527735589224,
      "sharpe_ratio": -0.2419489793206635,
      "strategy_cumulative_return": -0.10880047155135614,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": -0.17006622289870138,
      "bnh_cumulative_return": -0.2312936999445021,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -1.210624534210811,
      "cumulative_return_ci_upper": 0.41771475425638077,
      "granger_significant": null,
      "inverted": true,
      "max_drawdown": -0.6729192812025906,
      "n_trades": 22,
      "n_valid": 535,
      "predictor": "vix_lag1",
      "sharpe_ci_lower": -1.8798383067511275,
      "sharpe_ci_upper": 0.7372930907124621,
      "sharpe_ratio": -0.6636448734457784,
      "strategy_cumulative_return": -0.4013599228432035,
      "threshold": 24,
      "transaction_cost_bps": 10
    },
    {
      "alpha": 0.4021456504226223,
      "bnh_cumulative_return": -0.28952923110798057,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.33444247594010545,
      "cumulative_return_ci_upper": 0.5648444173670027,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.1709373800635895,
      "n_trades": 42,
      "n_valid": 526,
      "predictor": "vix_regime_score_lag1",
      "sharpe_ci_lower": -1.128509600654872,
      "sharpe_ci_upper": 1.8267153271010925,
      "sharpe_ratio": 0.36417915090921965,
      "strategy_cumulative_return": 0.11261641931464175,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": 0.07751137804183561,
      "bnh_cumulative_return": -0.35744566360391705,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.7543708808203394,
      "cumulative_return_ci_upper": 0.2615206166017372,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.46930619116741135,
      "n_trades": 53,
      "n_valid": 525,
      "predictor": "full_hybrid_index_score_lag1",
      "sharpe_ci_lower": -2.110684805896452,
      "sharpe_ci_upper": 0.6991417956357153,
      "sharpe_ratio": -0.759888242472927,
      "strategy_cumulative_return": -0.27993428556208144,
      "threshold": 50,
      "transaction_cost_bps": 10
    },
    {
      "alpha": -0.011802536684507092,
      "bnh_cumulative_return": -0.19554822960542584,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.5256675142605709,
      "cumulative_return_ci_upper": 0.12157662496034782,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.35064095356944214,
      "n_trades": 35,
      "n_valid": 536,
      "predictor": "core_hybrid_index_score_lag1",
      "sharpe_ci_lower": -2.2356971045766594,
      "sharpe_ci_upper": 0.4673314908284838,
      "sharpe_ratio": -0.8278891441868836,
      "strategy_cumulative_return": -0.20735076628993293,
      "threshold": 50,
      "transaction_cost_bps": 10
    },
    {
      "alpha": -0.005461502746690605,
      "bnh_cumulative_return": -0.35744566360391705,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.8197808660544477,
      "cumulative_return_ci_upper": 0.1117441872450846,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.4534568574117291,
      "n_trades": 51,
      "n_valid": 525,
      "predictor": "sovereign_gauge_60_long",
      "sharpe_ci_lower": -2.7721781219584236,
      "sharpe_ci_upper": 0.3629092551960988,
      "sharpe_ratio": -1.2227917871525482,
      "strategy_cumulative_return": -0.36290716635060766,
      "threshold": 60,
      "transaction_cost_bps": 10
    },
    {
      "alpha": -0.6355397842048814,
      "bnh_cumulative_return": -0.19554822960542584,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -1.519617683905128,
      "cumulative_return_ci_upper": -0.17323678772546147,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.9748569001697065,
      "n_trades": 177,
      "n_valid": 536,
      "predictor": "etf_net_inflow_usd_log1p_lag1",
      "sharpe_ci_lower": -3.5100938473868446,
      "sharpe_ci_upper": -0.45752289830689524,
      "sharpe_ratio": -2.122530766454408,
      "strategy_cumulative_return": -0.8310880138103073,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": 0.47691089572173606,
      "bnh_cumulative_return": -0.19554822960542584,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.3952460740914191,
      "cumulative_return_ci_upper": 0.942599751708526,
      "granger_significant": null,
      "inverted": true,
      "max_drawdown": -0.3243085318983703,
      "n_trades": 177,
      "n_valid": 536,
      "predictor": "etf_net_inflow_usd_log1p_lag1_inverted",
      "sharpe_ci_lower": -0.7166747881367587,
      "sharpe_ci_upper": 1.945999372785569,
      "sharpe_ratio": 0.5360399095724021,
      "strategy_cumulative_return": 0.2813626661163102,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": -0.38042398918092146,
      "bnh_cumulative_return": -0.19554822960542584,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -1.2008634856563989,
      "cumulative_return_ci_upper": -0.03426495620983073,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.6132127560069249,
      "n_trades": 128,
      "n_valid": 536,
      "predictor": "etf_net_inflow_usd_log1p_lag1_q75",
      "sharpe_ci_lower": -3.0639201589075933,
      "sharpe_ci_upper": -0.13322012994243942,
      "sharpe_ratio": -1.7708754640598068,
      "strategy_cumulative_return": -0.5759722187863473,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": -0.08995662479245459,
      "bnh_cumulative_return": -0.19554822960542584,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.6447518074571293,
      "cumulative_return_ci_upper": 0.08132975371598694,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.3761475592204598,
      "n_trades": 110,
      "n_valid": 536,
      "predictor": "etf_net_inflow_usd_log1p_lag1_q80",
      "sharpe_ci_lower": -2.5598240187070136,
      "sharpe_ci_upper": 0.39298671965468346,
      "sharpe_ratio": -1.1311307209799406,
      "strategy_cumulative_return": -0.2855048543978804,
      "threshold": 0,
      "transaction_cost_bps": 10
    },
    {
      "alpha": 0.257016541117761,
      "bnh_cumulative_return": -0.2580853780484309,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.02985881687671216,
      "cumulative_return_ci_upper": 0.02756116572778717,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.015383838259898445,
      "n_trades": 4,
      "n_valid": 538,
      "predictor": "usdkrw_gap_flag_lag1",
      "sharpe_ci_lower": -0.9340037324817334,
      "sharpe_ci_upper": 1.0460920294129188,
      "sharpe_ratio": -0.04176792769901978,
      "strategy_cumulative_return": -0.0010688369306699093,
      "threshold": 0.5,
      "transaction_cost_bps": 10
    },
    {
      "alpha": 0.27534313016913553,
      "bnh_cumulative_return": -0.29345063437046526,
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "cumulative_return_ci_lower": -0.5689186758502651,
      "cumulative_return_ci_upper": 0.6194968588169989,
      "granger_significant": null,
      "inverted": false,
      "max_drawdown": -0.3469239779811931,
      "n_trades": 242,
      "n_valid": 519,
      "predictor": "btc_taker_imbalance_zscore_30d_lag1",
      "sharpe_ci_lower": -1.3777502348124404,
      "sharpe_ci_upper": 1.4510168258057277,
      "sharpe_ratio": -0.043580586694671256,
      "strategy_cumulative_return": -0.018107504201329727,
      "threshold": 0,
      "transaction_cost_bps": 10
    }
  ],
  "baseline_gap_summary": {
    "7": {
      "best_baseline": "vol_regime_v2",
      "signals_beating_vol_regime_count": 1,
      "signals_beating_vol_regime_strict_count": 0,
      "top_signal_by_hit_rate": {
        "hit_rate": 0.6383763837638377,
        "predictor": "vol_regime_v2_vix_realized_vol_2of2"
      },
      "top_signal_by_sharpe": {
        "predictor": "vol_regime_v2_vix_realized_vol_2of2",
        "strategy_sharpe": 6.69645065242314
      },
      "top_signal_hit_rate_gap": 0.087240020127474,
      "top_signal_sharpe_gap": 4.147345705407048,
      "vol_regime_hit_rate": 0.5511363636363636,
      "vol_regime_sharpe": 2.5491049470160925
    }
  },
  "baseline_metrics": {
    "7": {
      "always_up": {
        "bootstrap_block_length": 14,
        "bootstrap_method": "circular",
        "bootstrap_n": 1000,
        "coverage": 0.987012987012987,
        "hit_rate": 0.5150375939849624,
        "hit_rate_ci_lower": 0.4304041353383459,
        "hit_rate_ci_upper": 0.6034304511278196,
        "max_drawdown": -4.330892527037183,
        "sharpe": -0.9757221223846895,
        "sharpe_ci_lower": -4.797824127616463,
        "sharpe_ci_upper": 3.2737711902134037
      },
      "btc_momo_20d": {
        "bootstrap_block_length": 14,
        "bootstrap_method": "circular",
        "bootstrap_n": 1000,
        "coverage": 0.9499072356215214,
        "hit_rate": 0.48046875,
        "hit_rate_ci_lower": 0.40234375,
        "hit_rate_ci_upper": 0.556640625,
        "max_drawdown": -1.9663266065963643,
        "sharpe": 0.4226194837526882,
        "sharpe_ci_lower": -3.232834107146969,
        "sharpe_ci_upper": 3.660318248517923
      },
      "fng_contrarian": {
        "bootstrap_block_length": 14,
        "bootstrap_method": "circular",
        "bootstrap_n": 1000,
        "coverage": 0.3580705009276438,
        "hit_rate": 0.49222797927461137,
        "hit_rate_ci_lower": 0.35751295336787564,
        "hit_rate_ci_upper": 0.616580310880829,
        "max_drawdown": -1.986407151839906,
        "sharpe": -1.464010862181469,
        "sharpe_ci_lower": -6.9109497614743844,
        "sharpe_ci_upper": 4.296616623781949
      },
      "vol_regime": {
        "bootstrap_block_length": 14,
        "bootstrap_method": "circular",
        "bootstrap_n": 1000,
        "coverage": 0.9795918367346939,
        "hit_rate": 0.5511363636363636,
        "hit_rate_ci_lower": 0.4791666666666667,
        "hit_rate_ci_upper": 0.6306818181818182,
        "max_drawdown": -1.7628092562602267,
        "sharpe": 2.5491049470160925,
        "sharpe_ci_lower": -1.046641226693325,
        "sharpe_ci_upper": 5.9568066648404585
      },
      "vol_regime_v2": {
        "bootstrap_block_length": 14,
        "bootstrap_method": "circular",
        "bootstrap_n": 1000,
        "coverage": 0.5027829313543599,
        "hit_rate": 0.6383763837638377,
        "hit_rate_ci_lower": 0.5461254612546126,
        "hit_rate_ci_upper": 0.7232472324723247,
        "max_drawdown": -0.6447224743662084,
        "sharpe": 6.69645065242314,
        "sharpe_ci_lower": 2.146435915882689,
        "sharpe_ci_upper": 10.756557365837104
      }
    }
  },
  "composite_metrics": {
    "7": [
      {
        "auc": 0.5185496636327662,
        "avg_strategy_return": 0.00347093535458779,
        "balanced_accuracy": 0.512218045112782,
        "decision": "research_only",
        "feature_count": 17,
        "features": [
          "news_sentiment_mean_lag1",
          "fng_value_lag1",
          "sentiment_momentum_lag1",
          "sentiment_accel_lag1",
          "fng_change_1d_lag1",
          "fng_change_5d_lag1",
          "btc_bear_regime_lag1",
          "sentiment_momentum_x_bear_lag1",
          "fng_change_1d_x_bear_lag1",
          "funding_rate_x_bear_lag1",
          "vix_lag1",
          "vix_regime_score_lag1",
          "full_hybrid_index_score_lag1",
          "core_hybrid_index_score_lag1",
          "etf_net_inflow_usd_log1p_lag1",
          "usdkrw_gap_flag_lag1",
          "btc_taker_imbalance_zscore_30d_lag1"
        ],
        "folds": [
          {
            "auc": 0.46558704453441296,
            "feature_count": 17,
            "fold": 0,
            "hit_rate": 0.4222222222222222,
            "long_ratio": 0.08888888888888889,
            "n_test": 45,
            "strategy_sharpe": 0.21092545493666365,
            "test_end": "2025-09-11",
            "test_start": "2025-07-29",
            "train_end": "2025-07-21",
            "train_start": "2024-11-24"
          },
          {
            "auc": 0.522,
            "feature_count": 17,
            "fold": 1,
            "hit_rate": 0.4,
            "long_ratio": 0.044444444444444446,
            "n_test": 45,
            "strategy_sharpe": -0.6254389689805158,
            "test_end": "2025-10-11",
            "test_start": "2025-08-28",
            "train_end": "2025-08-20",
            "train_start": "2024-12-24"
          },
          {
            "auc": 0.5069124423963134,
            "feature_count": 17,
            "fold": 2,
            "hit_rate": 0.5777777777777777,
            "long_ratio": 0.24444444444444444,
            "n_test": 45,
            "strategy_sharpe": 0.6842769366863956,
            "test_end": "2025-11-10",
            "test_start": "2025-09-27",
            "train_end": "2025-09-19",
            "train_start": "2025-01-23"
          },
          {
            "auc": 0.7534562211981567,
            "feature_count": 17,
            "fold": 3,
            "hit_rate": 0.5777777777777777,
            "long_ratio": 0.7333333333333333,
            "n_test": 45,
            "strategy_sharpe": -0.14645867948397692,
            "test_end": "2025-12-10",
            "test_start": "2025-10-27",
            "train_end": "2025-10-19",
            "train_start": "2025-02-22"
          },
          {
            "auc": 0.45748987854251016,
            "feature_count": 17,
            "fold": 4,
            "hit_rate": 0.4444444444444444,
            "long_ratio": 0.022222222222222223,
            "n_test": 45,
            "strategy_sharpe": -1.002972630568592,
            "test_end": "2026-01-09",
            "test_start": "2025-11-26",
            "train_end": "2025-11-18",
            "train_start": "2025-03-24"
          },
          {
            "auc": 0.32921810699588483,
            "feature_count": 17,
            "fold": 5,
            "hit_rate": 0.4444444444444444,
            "long_ratio": 0.24444444444444444,
            "n_test": 45,
            "strategy_sharpe": 0.5002701940999891,
            "test_end": "2026-02-08",
            "test_start": "2025-12-26",
            "train_end": "2025-12-18",
            "train_start": "2025-04-23"
          },
          {
            "auc": 0.24485596707818932,
            "feature_count": 17,
            "fold": 6,
            "hit_rate": 0.24444444444444444,
            "long_ratio": 0.7555555555555555,
            "n_test": 45,
            "strategy_sharpe": -4.6236087479174435,
            "test_end": "2026-03-10",
            "test_start": "2026-01-25",
            "train_end": "2026-01-17",
            "train_start": "2025-05-23"
          },
          {
            "auc": 0.5672268907563025,
            "feature_count": 17,
            "fold": 7,
            "hit_rate": 0.5111111111111111,
            "long_ratio": 0.5777777777777777,
            "n_test": 45,
            "strategy_sharpe": -0.07905174028830962,
            "test_end": "2026-04-09",
            "test_start": "2026-02-24",
            "train_end": "2026-02-16",
            "train_start": "2025-06-22"
          },
          {
            "auc": 0.6994949494949495,
            "feature_count": 17,
            "fold": 8,
            "hit_rate": 0.7333333333333333,
            "long_ratio": 0.7333333333333333,
            "n_test": 45,
            "strategy_sharpe": 5.202033606813679,
            "test_end": "2026-05-11",
            "test_start": "2026-03-26",
            "train_end": "2026-03-18",
            "train_start": "2025-07-22"
          }
        ],
        "hit_rate": 0.519298245614035,
        "hit_rate_delta_vs_old_alpha": 0,
        "long_ratio": 0.3929824561403509,
        "n_oos": 285,
        "name": "old_alpha_set",
        "promotion_candidate": false,
        "promotion_checks": {
          "auc_ok": false,
          "hit_rate_delta_ok": false,
          "n_oos_ok": true,
          "sharpe_delta_ok": false,
          "top_sign_stability_ok": true
        },
        "sharpe_delta_vs_old_alpha": 0,
        "strategy_sharpe": 0.440310669972441,
        "top_sign_stability": 0.9259259259259259,
        "unstable_weight_features": [
          "sentiment_momentum_lag1",
          "news_sentiment_mean_lag1",
          "fng_change_5d_lag1",
          "sentiment_momentum_x_bear_lag1",
          "usdkrw_gap_flag_lag1"
        ],
        "weights": [
          {
            "abs_mean_coef": 0.601067228655079,
            "feature": "vix_lag1",
            "fold_count": 9,
            "mean_coef": 0.5929270279825921,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.5320128443332679,
            "feature": "fng_value_lag1",
            "fold_count": 9,
            "mean_coef": 0.5068813172851603,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.4628810605241914,
            "feature": "full_hybrid_index_score_lag1",
            "fold_count": 9,
            "mean_coef": -0.4628810605241914,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.4604347813076583,
            "feature": "core_hybrid_index_score_lag1",
            "fold_count": 9,
            "mean_coef": -0.39380048435733833,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.4132786577817521,
            "feature": "vix_regime_score_lag1",
            "fold_count": 9,
            "mean_coef": 0.4120259400799489,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.28154934895974065,
            "feature": "btc_bear_regime_lag1",
            "fold_count": 9,
            "mean_coef": -0.28154934895974065,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.24855049442452723,
            "feature": "fng_change_1d_x_bear_lag1",
            "fold_count": 9,
            "mean_coef": 0.24855049442452723,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.21625925132838633,
            "feature": "funding_rate_x_bear_lag1",
            "fold_count": 9,
            "mean_coef": 0.0791130917593447,
            "sign_stability": 0.7777777777777778
          },
          {
            "abs_mean_coef": 0.21158631377027928,
            "feature": "sentiment_momentum_lag1",
            "fold_count": 9,
            "mean_coef": 0.07600448884581831,
            "sign_stability": 0.5555555555555556
          },
          {
            "abs_mean_coef": 0.2094456471673442,
            "feature": "news_sentiment_mean_lag1",
            "fold_count": 9,
            "mean_coef": -0.09429731226427969,
            "sign_stability": 0.6666666666666666
          },
          {
            "abs_mean_coef": 0.2062884521437528,
            "feature": "sentiment_accel_lag1",
            "fold_count": 9,
            "mean_coef": -0.2062884521437528,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.1565589862478474,
            "feature": "btc_taker_imbalance_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": -0.1565589862478474,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.12784436528015847,
            "feature": "fng_change_1d_lag1",
            "fold_count": 9,
            "mean_coef": -0.12092526178528956,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.1270897145688307,
            "feature": "etf_net_inflow_usd_log1p_lag1",
            "fold_count": 9,
            "mean_coef": 0.1049939829644377,
            "sign_stability": 0.7777777777777778
          },
          {
            "abs_mean_coef": 0.09439038479052377,
            "feature": "fng_change_5d_lag1",
            "fold_count": 9,
            "mean_coef": 0.04643076428623635,
            "sign_stability": 0.5555555555555556
          },
          {
            "abs_mean_coef": 0.09319269257376844,
            "feature": "sentiment_momentum_x_bear_lag1",
            "fold_count": 9,
            "mean_coef": -0.000055283005516009056,
            "sign_stability": 0.5555555555555556
          },
          {
            "abs_mean_coef": 0,
            "feature": "usdkrw_gap_flag_lag1",
            "fold_count": 9,
            "mean_coef": 0,
            "sign_stability": 0
          }
        ]
      },
      {
        "auc": 0.5335377918480412,
        "avg_strategy_return": 0.005373170283821015,
        "balanced_accuracy": 0.5404135338345865,
        "decision": "research_only",
        "feature_count": 9,
        "features": [
          "funding_rate_zscore_30d_lag1",
          "long_short_ratio_zscore_30d_lag1",
          "binance_top10_up_ratio_7d_lag1",
          "binance_top10_ew_return_7d_lag1",
          "usdt_usdc_supply_change_7d_lag1",
          "usd_broad_index_change_7d_lag1",
          "usd_broad_index_zscore_30d_lag1",
          "us10y_change_7d_lag1",
          "nasdaq_return_7d_lag1"
        ],
        "folds": [
          {
            "auc": 0.4716599190283401,
            "feature_count": 9,
            "fold": 0,
            "hit_rate": 0.4888888888888889,
            "long_ratio": 0.6,
            "n_test": 45,
            "strategy_sharpe": -0.5349329656314528,
            "test_end": "2025-09-11",
            "test_start": "2025-07-29",
            "train_end": "2025-07-21",
            "train_start": "2024-11-24"
          },
          {
            "auc": 0.5900000000000001,
            "feature_count": 9,
            "fold": 1,
            "hit_rate": 0.6444444444444445,
            "long_ratio": 0.4666666666666667,
            "n_test": 45,
            "strategy_sharpe": 4.032847665243731,
            "test_end": "2025-10-11",
            "test_start": "2025-08-28",
            "train_end": "2025-08-20",
            "train_start": "2024-12-24"
          },
          {
            "auc": 0.40092165898617516,
            "feature_count": 9,
            "fold": 2,
            "hit_rate": 0.5777777777777777,
            "long_ratio": 0.3333333333333333,
            "n_test": 45,
            "strategy_sharpe": 2.259983208387666,
            "test_end": "2025-11-10",
            "test_start": "2025-09-27",
            "train_end": "2025-09-19",
            "train_start": "2025-01-23"
          },
          {
            "auc": 0.5138248847926268,
            "feature_count": 9,
            "fold": 3,
            "hit_rate": 0.5777777777777777,
            "long_ratio": 0.4222222222222222,
            "n_test": 45,
            "strategy_sharpe": 2.338809538848363,
            "test_end": "2025-12-10",
            "test_start": "2025-10-27",
            "train_end": "2025-10-19",
            "train_start": "2025-02-22"
          },
          {
            "auc": 0.5708502024291497,
            "feature_count": 9,
            "fold": 4,
            "hit_rate": 0.5555555555555556,
            "long_ratio": 0.6222222222222222,
            "n_test": 45,
            "strategy_sharpe": 2.6263681641858625,
            "test_end": "2026-01-09",
            "test_start": "2025-11-26",
            "train_end": "2025-11-18",
            "train_start": "2025-03-24"
          },
          {
            "auc": 0.7736625514403292,
            "feature_count": 9,
            "fold": 5,
            "hit_rate": 0.6888888888888889,
            "long_ratio": 0.6222222222222222,
            "n_test": 45,
            "strategy_sharpe": 0.27895058822088314,
            "test_end": "2026-02-08",
            "test_start": "2025-12-26",
            "train_end": "2025-12-18",
            "train_start": "2025-04-23"
          },
          {
            "auc": 0.4218106995884774,
            "feature_count": 9,
            "fold": 6,
            "hit_rate": 0.4222222222222222,
            "long_ratio": 0.6222222222222222,
            "n_test": 45,
            "strategy_sharpe": -1.898614861406718,
            "test_end": "2026-03-10",
            "test_start": "2026-01-25",
            "train_end": "2026-01-17",
            "train_start": "2025-05-23"
          },
          {
            "auc": 0.8340336134453781,
            "feature_count": 9,
            "fold": 7,
            "hit_rate": 0.5333333333333333,
            "long_ratio": 0.15555555555555556,
            "n_test": 45,
            "strategy_sharpe": -0.33404504813156016,
            "test_end": "2026-04-09",
            "test_start": "2026-02-24",
            "train_end": "2026-02-16",
            "train_start": "2025-06-22"
          },
          {
            "auc": 0.38383838383838387,
            "feature_count": 9,
            "fold": 8,
            "hit_rate": 0.35555555555555557,
            "long_ratio": 0.4,
            "n_test": 45,
            "strategy_sharpe": -1.6703657437690769,
            "test_end": "2026-05-11",
            "test_start": "2026-03-26",
            "train_end": "2026-03-18",
            "train_start": "2025-07-22"
          }
        ],
        "hit_rate": 0.5403508771929825,
        "hit_rate_delta_vs_old_alpha": 0.021052631578947434,
        "long_ratio": 0.4982456140350877,
        "n_oos": 285,
        "name": "new_features_only",
        "promotion_candidate": true,
        "promotion_checks": {
          "auc_ok": true,
          "hit_rate_delta_ok": true,
          "n_oos_ok": true,
          "sharpe_delta_ok": true,
          "top_sign_stability_ok": true
        },
        "sharpe_delta_vs_old_alpha": 0.24309358965525502,
        "strategy_sharpe": 0.683404259627696,
        "top_sign_stability": 1,
        "unstable_weight_features": [
          "usdt_usdc_supply_change_7d_lag1",
          "binance_top10_ew_return_7d_lag1",
          "funding_rate_zscore_30d_lag1"
        ],
        "weights": [
          {
            "abs_mean_coef": 0.9057830306279026,
            "feature": "usd_broad_index_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": 0.9057830306279026,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.6525992510437145,
            "feature": "usd_broad_index_change_7d_lag1",
            "fold_count": 9,
            "mean_coef": -0.6525992510437145,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.4567482664885849,
            "feature": "nasdaq_return_7d_lag1",
            "fold_count": 9,
            "mean_coef": 0.4567482664885849,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.26694746995498086,
            "feature": "binance_top10_up_ratio_7d_lag1",
            "fold_count": 9,
            "mean_coef": -0.2668418955246269,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.26521797233890093,
            "feature": "us10y_change_7d_lag1",
            "fold_count": 9,
            "mean_coef": -0.26521797233890093,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.227681829966916,
            "feature": "usdt_usdc_supply_change_7d_lag1",
            "fold_count": 9,
            "mean_coef": -0.11545295732798058,
            "sign_stability": 0.6666666666666666
          },
          {
            "abs_mean_coef": 0.17552558092047807,
            "feature": "binance_top10_ew_return_7d_lag1",
            "fold_count": 9,
            "mean_coef": -0.009452324720794845,
            "sign_stability": 0.4444444444444444
          },
          {
            "abs_mean_coef": 0.1258772047657047,
            "feature": "long_short_ratio_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": 0.08865255348485229,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.107442571755451,
            "feature": "funding_rate_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": -0.01169346999854742,
            "sign_stability": 0.5555555555555556
          }
        ]
      },
      {
        "auc": 0.5532746339533042,
        "avg_strategy_return": 0.008164482406426725,
        "balanced_accuracy": 0.5507518796992481,
        "decision": "research_only",
        "feature_count": 26,
        "features": [
          "news_sentiment_mean_lag1",
          "fng_value_lag1",
          "sentiment_momentum_lag1",
          "sentiment_accel_lag1",
          "fng_change_1d_lag1",
          "fng_change_5d_lag1",
          "btc_bear_regime_lag1",
          "sentiment_momentum_x_bear_lag1",
          "fng_change_1d_x_bear_lag1",
          "funding_rate_x_bear_lag1",
          "vix_lag1",
          "vix_regime_score_lag1",
          "full_hybrid_index_score_lag1",
          "core_hybrid_index_score_lag1",
          "etf_net_inflow_usd_log1p_lag1",
          "usdkrw_gap_flag_lag1",
          "btc_taker_imbalance_zscore_30d_lag1",
          "funding_rate_zscore_30d_lag1",
          "long_short_ratio_zscore_30d_lag1",
          "binance_top10_up_ratio_7d_lag1",
          "binance_top10_ew_return_7d_lag1",
          "usdt_usdc_supply_change_7d_lag1",
          "usd_broad_index_change_7d_lag1",
          "usd_broad_index_zscore_30d_lag1",
          "us10y_change_7d_lag1",
          "nasdaq_return_7d_lag1"
        ],
        "folds": [
          {
            "auc": 0.5991902834008097,
            "feature_count": 26,
            "fold": 0,
            "hit_rate": 0.6,
            "long_ratio": 0.4888888888888889,
            "n_test": 45,
            "strategy_sharpe": 0.968848105631034,
            "test_end": "2025-09-11",
            "test_start": "2025-07-29",
            "train_end": "2025-07-21",
            "train_start": "2024-11-24"
          },
          {
            "auc": 0.392,
            "feature_count": 26,
            "fold": 1,
            "hit_rate": 0.4666666666666667,
            "long_ratio": 0.06666666666666667,
            "n_test": 45,
            "strategy_sharpe": -0.0870665145035143,
            "test_end": "2025-10-11",
            "test_start": "2025-08-28",
            "train_end": "2025-08-20",
            "train_start": "2024-12-24"
          },
          {
            "auc": 0.467741935483871,
            "feature_count": 26,
            "fold": 2,
            "hit_rate": 0.4888888888888889,
            "long_ratio": 0.4222222222222222,
            "n_test": 45,
            "strategy_sharpe": 0.3192540568050804,
            "test_end": "2025-11-10",
            "test_start": "2025-09-27",
            "train_end": "2025-09-19",
            "train_start": "2025-01-23"
          },
          {
            "auc": 0.6221198156682028,
            "feature_count": 26,
            "fold": 3,
            "hit_rate": 0.5111111111111111,
            "long_ratio": 0.5333333333333333,
            "n_test": 45,
            "strategy_sharpe": 1.3007107329736258,
            "test_end": "2025-12-10",
            "test_start": "2025-10-27",
            "train_end": "2025-10-19",
            "train_start": "2025-02-22"
          },
          {
            "auc": 0.52834008097166,
            "feature_count": 26,
            "fold": 4,
            "hit_rate": 0.4666666666666667,
            "long_ratio": 0.044444444444444446,
            "n_test": 45,
            "strategy_sharpe": -0.41971698792330064,
            "test_end": "2026-01-09",
            "test_start": "2025-11-26",
            "train_end": "2025-11-18",
            "train_start": "2025-03-24"
          },
          {
            "auc": 0.6275720164609053,
            "feature_count": 26,
            "fold": 5,
            "hit_rate": 0.6666666666666666,
            "long_ratio": 0.37777777777777777,
            "n_test": 45,
            "strategy_sharpe": 2.2232706430947404,
            "test_end": "2026-02-08",
            "test_start": "2025-12-26",
            "train_end": "2025-12-18",
            "train_start": "2025-04-23"
          },
          {
            "auc": 0.36419753086419754,
            "feature_count": 26,
            "fold": 6,
            "hit_rate": 0.4222222222222222,
            "long_ratio": 0.7111111111111111,
            "n_test": 45,
            "strategy_sharpe": 0.18543486274380924,
            "test_end": "2026-03-10",
            "test_start": "2026-01-25",
            "train_end": "2026-01-17",
            "train_start": "2025-05-23"
          },
          {
            "auc": 0.8445378151260504,
            "feature_count": 26,
            "fold": 7,
            "hit_rate": 0.5555555555555556,
            "long_ratio": 0.2222222222222222,
            "n_test": 45,
            "strategy_sharpe": 0.3976101908476659,
            "test_end": "2026-04-09",
            "test_start": "2026-02-24",
            "train_end": "2026-02-16",
            "train_start": "2025-06-22"
          },
          {
            "auc": 0.4823232323232323,
            "feature_count": 26,
            "fold": 8,
            "hit_rate": 0.5111111111111111,
            "long_ratio": 0.4222222222222222,
            "n_test": 45,
            "strategy_sharpe": 0.7216027660740949,
            "test_end": "2026-05-11",
            "test_start": "2026-03-26",
            "train_end": "2026-03-18",
            "train_start": "2025-07-22"
          }
        ],
        "hit_rate": 0.5578947368421052,
        "hit_rate_delta_vs_old_alpha": 0.038596491228070184,
        "long_ratio": 0.3894736842105263,
        "n_oos": 285,
        "name": "old_plus_new",
        "promotion_candidate": true,
        "promotion_checks": {
          "auc_ok": true,
          "hit_rate_delta_ok": true,
          "n_oos_ok": true,
          "sharpe_delta_ok": true,
          "top_sign_stability_ok": true
        },
        "sharpe_delta_vs_old_alpha": 0.604278536284599,
        "strategy_sharpe": 1.04458920625704,
        "top_sign_stability": 1,
        "unstable_weight_features": [
          "vix_regime_score_lag1",
          "sentiment_momentum_lag1",
          "usdt_usdc_supply_change_7d_lag1",
          "news_sentiment_mean_lag1",
          "funding_rate_zscore_30d_lag1",
          "fng_change_5d_lag1",
          "etf_net_inflow_usd_log1p_lag1",
          "fng_change_1d_lag1",
          "usdkrw_gap_flag_lag1"
        ],
        "weights": [
          {
            "abs_mean_coef": 0.8653297131623456,
            "feature": "usd_broad_index_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": 0.8653297131623456,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.7213554577447004,
            "feature": "nasdaq_return_7d_lag1",
            "fold_count": 9,
            "mean_coef": 0.7213554577447004,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.5255444893685337,
            "feature": "vix_lag1",
            "fold_count": 9,
            "mean_coef": 0.5255444893685337,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.5118397840724522,
            "feature": "fng_value_lag1",
            "fold_count": 9,
            "mean_coef": 0.46314915889380626,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.48809489993407723,
            "feature": "usd_broad_index_change_7d_lag1",
            "fold_count": 9,
            "mean_coef": -0.4393112356575307,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.4065694789988006,
            "feature": "core_hybrid_index_score_lag1",
            "fold_count": 9,
            "mean_coef": -0.3612344079524017,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.40300519367327997,
            "feature": "us10y_change_7d_lag1",
            "fold_count": 9,
            "mean_coef": -0.40300519367327997,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.40264953805528,
            "feature": "full_hybrid_index_score_lag1",
            "fold_count": 9,
            "mean_coef": -0.40264953805528,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.3842996379606027,
            "feature": "vix_regime_score_lag1",
            "fold_count": 9,
            "mean_coef": 0.05750162711419767,
            "sign_stability": 0.4444444444444444
          },
          {
            "abs_mean_coef": 0.28606341933824175,
            "feature": "sentiment_momentum_lag1",
            "fold_count": 9,
            "mean_coef": 0.21789219226473674,
            "sign_stability": 0.5555555555555556
          },
          {
            "abs_mean_coef": 0.2823401535429023,
            "feature": "funding_rate_x_bear_lag1",
            "fold_count": 9,
            "mean_coef": 0.18633142235628253,
            "sign_stability": 0.7777777777777778
          },
          {
            "abs_mean_coef": 0.26728723082578904,
            "feature": "fng_change_1d_x_bear_lag1",
            "fold_count": 9,
            "mean_coef": 0.26728723082578904,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.24130451167342296,
            "feature": "long_short_ratio_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": 0.24130451167342296,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.2379958890890047,
            "feature": "usdt_usdc_supply_change_7d_lag1",
            "fold_count": 9,
            "mean_coef": 0.031649718301009426,
            "sign_stability": 0.4444444444444444
          },
          {
            "abs_mean_coef": 0.23440886938964992,
            "feature": "sentiment_accel_lag1",
            "fold_count": 9,
            "mean_coef": -0.23440886938964992,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.21927419810453264,
            "feature": "binance_top10_up_ratio_7d_lag1",
            "fold_count": 9,
            "mean_coef": -0.16542872465193714,
            "sign_stability": 0.7777777777777778
          },
          {
            "abs_mean_coef": 0.20652629597205904,
            "feature": "btc_taker_imbalance_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": -0.20652629597205904,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.20461524654449978,
            "feature": "binance_top10_ew_return_7d_lag1",
            "fold_count": 9,
            "mean_coef": 0.09720380803082951,
            "sign_stability": 0.7777777777777778
          },
          {
            "abs_mean_coef": 0.20205804764742682,
            "feature": "news_sentiment_mean_lag1",
            "fold_count": 9,
            "mean_coef": -0.07739073538576265,
            "sign_stability": 0.5555555555555556
          },
          {
            "abs_mean_coef": 0.1657718369738361,
            "feature": "btc_bear_regime_lag1",
            "fold_count": 9,
            "mean_coef": -0.16247475925943883,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.15188135520209814,
            "feature": "funding_rate_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": 0.026044776325053445,
            "sign_stability": 0.6666666666666666
          },
          {
            "abs_mean_coef": 0.127502689579171,
            "feature": "sentiment_momentum_x_bear_lag1",
            "fold_count": 9,
            "mean_coef": -0.12747778461746628,
            "sign_stability": 0.8888888888888888
          },
          {
            "abs_mean_coef": 0.12267728893600117,
            "feature": "fng_change_5d_lag1",
            "fold_count": 9,
            "mean_coef": 0.03770267686558953,
            "sign_stability": 0.6666666666666666
          },
          {
            "abs_mean_coef": 0.11519949990548099,
            "feature": "etf_net_inflow_usd_log1p_lag1",
            "fold_count": 9,
            "mean_coef": 0.0862482398902931,
            "sign_stability": 0.5555555555555556
          },
          {
            "abs_mean_coef": 0.10833939252554042,
            "feature": "fng_change_1d_lag1",
            "fold_count": 9,
            "mean_coef": -0.03947563183756721,
            "sign_stability": 0.6666666666666666
          },
          {
            "abs_mean_coef": 0,
            "feature": "usdkrw_gap_flag_lag1",
            "fold_count": 9,
            "mean_coef": 0,
            "sign_stability": 0
          }
        ]
      },
      {
        "auc": 0.5252275425405619,
        "avg_strategy_return": 0.002008698427358158,
        "balanced_accuracy": 0.512687969924812,
        "decision": "research_only",
        "feature_count": 9,
        "features": [
          "nasdaq_return_7d_lag1",
          "us10y_change_7d_lag1",
          "usd_broad_index_zscore_30d_lag1",
          "usdt_usdc_supply_change_7d_lag1",
          "btc_taker_imbalance_zscore_30d_lag1",
          "binance_top10_ew_return_7d_lag1",
          "funding_rate_zscore_30d_lag1",
          "long_short_ratio_zscore_30d_lag1",
          "vix_regime_score_lag1"
        ],
        "folds": [
          {
            "auc": 0.6943319838056679,
            "feature_count": 9,
            "fold": 0,
            "hit_rate": 0.5777777777777777,
            "long_ratio": 0.6444444444444445,
            "n_test": 45,
            "strategy_sharpe": 0.922597742174915,
            "test_end": "2025-09-11",
            "test_start": "2025-07-29",
            "train_end": "2025-07-21",
            "train_start": "2024-11-24"
          },
          {
            "auc": 0.458,
            "feature_count": 9,
            "fold": 1,
            "hit_rate": 0.4666666666666667,
            "long_ratio": 0.5111111111111111,
            "n_test": 45,
            "strategy_sharpe": 0.020944210233797316,
            "test_end": "2025-10-11",
            "test_start": "2025-08-28",
            "train_end": "2025-08-20",
            "train_start": "2024-12-24"
          },
          {
            "auc": 0.4930875576036866,
            "feature_count": 9,
            "fold": 2,
            "hit_rate": 0.4,
            "long_ratio": 0.8666666666666667,
            "n_test": 45,
            "strategy_sharpe": -1.0352431686148371,
            "test_end": "2025-11-10",
            "test_start": "2025-09-27",
            "train_end": "2025-09-19",
            "train_start": "2025-01-23"
          },
          {
            "auc": 0.4907834101382489,
            "feature_count": 9,
            "fold": 3,
            "hit_rate": 0.4222222222222222,
            "long_ratio": 0.6222222222222222,
            "n_test": 45,
            "strategy_sharpe": -0.42590659261207237,
            "test_end": "2025-12-10",
            "test_start": "2025-10-27",
            "train_end": "2025-10-19",
            "train_start": "2025-02-22"
          },
          {
            "auc": 0.6093117408906882,
            "feature_count": 9,
            "fold": 4,
            "hit_rate": 0.5333333333333333,
            "long_ratio": 0.24444444444444444,
            "n_test": 45,
            "strategy_sharpe": 0.6580969927108694,
            "test_end": "2026-01-09",
            "test_start": "2025-11-26",
            "train_end": "2025-11-18",
            "train_start": "2025-03-24"
          },
          {
            "auc": 0.7139917695473251,
            "feature_count": 9,
            "fold": 5,
            "hit_rate": 0.6222222222222222,
            "long_ratio": 0.5555555555555556,
            "n_test": 45,
            "strategy_sharpe": 0.790769985635293,
            "test_end": "2026-02-08",
            "test_start": "2025-12-26",
            "train_end": "2025-12-18",
            "train_start": "2025-04-23"
          },
          {
            "auc": 0.4156378600823046,
            "feature_count": 9,
            "fold": 6,
            "hit_rate": 0.4888888888888889,
            "long_ratio": 0.3333333333333333,
            "n_test": 45,
            "strategy_sharpe": 0.857374108472942,
            "test_end": "2026-03-10",
            "test_start": "2026-01-25",
            "train_end": "2026-01-17",
            "train_start": "2025-05-23"
          },
          {
            "auc": 0.7836134453781513,
            "feature_count": 9,
            "fold": 7,
            "hit_rate": 0.4888888888888889,
            "long_ratio": 0.1111111111111111,
            "n_test": 45,
            "strategy_sharpe": -0.2870594974338541,
            "test_end": "2026-04-09",
            "test_start": "2026-02-24",
            "train_end": "2026-02-16",
            "train_start": "2025-06-22"
          },
          {
            "auc": 0.2904040404040404,
            "feature_count": 9,
            "fold": 8,
            "hit_rate": 0.4,
            "long_ratio": 0.5333333333333333,
            "n_test": 45,
            "strategy_sharpe": -1.1170025327475472,
            "test_end": "2026-05-11",
            "test_start": "2026-03-26",
            "train_end": "2026-03-18",
            "train_start": "2025-07-22"
          }
        ],
        "hit_rate": 0.512280701754386,
        "hit_rate_delta_vs_old_alpha": -0.007017543859649034,
        "long_ratio": 0.5052631578947369,
        "n_oos": 285,
        "name": "macro_liquidity_risk",
        "promotion_candidate": false,
        "promotion_checks": {
          "auc_ok": false,
          "hit_rate_delta_ok": false,
          "n_oos_ok": true,
          "sharpe_delta_ok": false,
          "top_sign_stability_ok": true
        },
        "sharpe_delta_vs_old_alpha": -0.18580982658560385,
        "strategy_sharpe": 0.25450084338683715,
        "top_sign_stability": 0.8518518518518517,
        "unstable_weight_features": [
          "vix_regime_score_lag1",
          "funding_rate_zscore_30d_lag1"
        ],
        "weights": [
          {
            "abs_mean_coef": 0.6952900516692164,
            "feature": "nasdaq_return_7d_lag1",
            "fold_count": 9,
            "mean_coef": 0.6952900516692164,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.5070663683817858,
            "feature": "vix_regime_score_lag1",
            "fold_count": 9,
            "mean_coef": -0.3425710751683486,
            "sign_stability": 0.5555555555555556
          },
          {
            "abs_mean_coef": 0.44516712276601467,
            "feature": "usd_broad_index_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": 0.44516712276601467,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.35036765621134963,
            "feature": "us10y_change_7d_lag1",
            "fold_count": 9,
            "mean_coef": -0.35036765621134963,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.22196519288952848,
            "feature": "btc_taker_imbalance_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": -0.22196519288952848,
            "sign_stability": 1
          },
          {
            "abs_mean_coef": 0.20735766197874408,
            "feature": "usdt_usdc_supply_change_7d_lag1",
            "fold_count": 9,
            "mean_coef": -0.11691522191128073,
            "sign_stability": 0.7777777777777778
          },
          {
            "abs_mean_coef": 0.18341414669177014,
            "feature": "binance_top10_ew_return_7d_lag1",
            "fold_count": 9,
            "mean_coef": -0.15279078835467977,
            "sign_stability": 0.7777777777777778
          },
          {
            "abs_mean_coef": 0.14171049737528663,
            "feature": "funding_rate_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": -0.0035156831564195756,
            "sign_stability": 0.5555555555555556
          },
          {
            "abs_mean_coef": 0.1389923190966683,
            "feature": "long_short_ratio_zscore_30d_lag1",
            "fold_count": 9,
            "mean_coef": 0.11807497091218787,
            "sign_stability": 0.8888888888888888
          }
        ]
      }
    ]
  },
  "correlations": [
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "btc_log_return",
      "differenced": true,
      "n_valid": 538,
      "pearson_pvalue": 0.00047690037253613924,
      "pearson_r": -0.1502451600547133,
      "spearman_pvalue": 0.9688733099867232,
      "spearman_rho": 0.0016862538007320319
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "btc_log_return",
      "differenced": true,
      "n_valid": 538,
      "pearson_pvalue": 0.6172494403050405,
      "pearson_r": -0.021613753232064045,
      "spearman_pvalue": 0.7738946695437228,
      "spearman_rho": -0.012414100929968292
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.870034548596258,
      "pearson_r": 0.007090170850486105,
      "spearman_pvalue": 0.5425260672515633,
      "spearman_rho": 0.026386392097059588
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 0.03269058173274849,
      "pearson_r": 0.0921877664967204,
      "spearman_pvalue": 0.12011905507206157,
      "spearman_rho": 0.06715263271604842
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 0.6581708454290257,
      "pearson_r": -0.019135537109806068,
      "spearman_pvalue": 0.6512435075298966,
      "spearman_rho": -0.01955045857447995
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 0.23098517041807162,
      "pearson_r": -0.05197050524426718,
      "spearman_pvalue": 0.3120673654094909,
      "spearman_rho": -0.043868572658499756
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 538,
      "pearson_pvalue": 0.7996041768182859,
      "pearson_r": 0.010969841670416761,
      "spearman_pvalue": 0.9609935392129629,
      "spearman_rho": 0.002113436825088841
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.9592341082775612,
      "pearson_r": 0.0022150601918045285,
      "spearman_pvalue": 0.7171964750741142,
      "spearman_rho": 0.015695371016115456
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 0.8986431295663492,
      "pearson_r": 0.005509459399486828,
      "spearman_pvalue": 0.6607803148592017,
      "spearman_rho": 0.018979696095352643
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 538,
      "pearson_pvalue": 0.24033545402158427,
      "pearson_r": -0.050706517185777636,
      "spearman_pvalue": 0.7178508562982003,
      "spearman_rho": -0.0156135188000276
    },
    {
      "col_a": "vix_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.1661282445148569,
      "pearson_r": 0.059954426187269615,
      "spearman_pvalue": 0.7069204694920176,
      "spearman_rho": 0.016292718811850727
    },
    {
      "col_a": "vix_regime_score_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 0.816081242460956,
      "pearson_r": -0.010165245944415821,
      "spearman_pvalue": 0.5152849296845886,
      "spearman_rho": 0.028430747776860613
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.5398237740572386,
      "pearson_r": -0.026816088895708926,
      "spearman_pvalue": 0.6304984029071,
      "spearman_rho": -0.021041501673086733
    },
    {
      "col_a": "core_hybrid_index_score_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 536,
      "pearson_pvalue": 0.573505125570276,
      "pearson_r": -0.024366717070405275,
      "spearman_pvalue": 0.5077732685784649,
      "spearman_rho": -0.028668436650351337
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.5398237740572386,
      "pearson_r": -0.026816088895708926,
      "spearman_pvalue": 0.6304984029071,
      "spearman_rho": -0.021041501673086733
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "btc_log_return",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.00470766597585517,
      "pearson_r": -0.12202375560610526,
      "spearman_pvalue": 0.05684965615299501,
      "spearman_rho": -0.08231288952110857
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "btc_log_return",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.00470766597585517,
      "pearson_r": -0.12202375560610526,
      "spearman_pvalue": 0.05684965615299501,
      "spearman_rho": -0.08231288952110857
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "btc_log_return",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.00470766597585517,
      "pearson_r": -0.12202375560610526,
      "spearman_pvalue": 0.05684965615299501,
      "spearman_rho": -0.08231288952110857
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "btc_log_return",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.00470766597585517,
      "pearson_r": -0.12202375560610526,
      "spearman_pvalue": 0.05684965615299501,
      "spearman_rho": -0.08231288952110857
    },
    {
      "col_a": "usdkrw_gap_flag_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 538,
      "pearson_pvalue": 0.9064725979595321,
      "pearson_r": 0.0050770846070283026,
      "spearman_pvalue": 0.8734472720027241,
      "spearman_rho": 0.0068830313757109185
    },
    {
      "col_a": "btc_taker_imbalance_zscore_30d_lag1",
      "col_b": "btc_log_return",
      "differenced": false,
      "n_valid": 519,
      "pearson_pvalue": 0.4659017232201804,
      "pearson_r": 0.03207582366363003,
      "spearman_pvalue": 0.3704434864852525,
      "spearman_rho": 0.03939408505882495
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "fng_value_lag1",
      "differenced": true,
      "n_valid": 538,
      "pearson_pvalue": 6.126442639333417e-18,
      "pearson_r": 0.36065285298007654,
      "spearman_pvalue": 1.2074884332375212e-110,
      "spearman_rho": 0.7787995779381839
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "sentiment_momentum_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0,
      "pearson_r": 0.9755914984295528,
      "spearman_pvalue": 7.908317465920914e-42,
      "spearman_rho": 0.5400292171668674
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "sentiment_accel_lag1",
      "differenced": true,
      "n_valid": 537,
      "pearson_pvalue": 1.0679995592781955e-106,
      "pearson_r": 0.7709370585215242,
      "spearman_pvalue": 9.152007459396254e-13,
      "spearman_rho": 0.30172100666453294
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "fng_change_1d_lag1",
      "differenced": true,
      "n_valid": 537,
      "pearson_pvalue": 1.0172099594808074e-14,
      "pearson_r": 0.3257913218997017,
      "spearman_pvalue": 5.6192646915874e-9,
      "spearman_rho": 0.24811943832237132
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "fng_change_5d_lag1",
      "differenced": true,
      "n_valid": 533,
      "pearson_pvalue": 2.8382903967423976e-9,
      "pearson_r": 0.2539254182644397,
      "spearman_pvalue": 8.294035071011564e-19,
      "spearman_rho": 0.3707136216033914
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "btc_bear_regime_lag1",
      "differenced": true,
      "n_valid": 538,
      "pearson_pvalue": 0.01675895265578566,
      "pearson_r": -0.1031852183208734,
      "spearman_pvalue": 1.2908356611491527e-60,
      "spearman_rho": -0.6290554255202461
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "sentiment_momentum_x_bear_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 3.2423548648208574e-82,
      "pearson_r": 0.7074231853470029,
      "spearman_pvalue": 3.6685335305686697e-13,
      "spearman_rho": 0.30727688686860416
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "fng_change_1d_x_bear_lag1",
      "differenced": true,
      "n_valid": 537,
      "pearson_pvalue": 3.9224150643048574e-7,
      "pearson_r": 0.21699715642771936,
      "spearman_pvalue": 0.00521779821870933,
      "spearman_rho": 0.12038042723438973
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "funding_rate_x_bear_lag1",
      "differenced": true,
      "n_valid": 538,
      "pearson_pvalue": 0.18826817180342234,
      "pearson_r": 0.0568640505455359,
      "spearman_pvalue": 2.413327432241863e-10,
      "spearman_rho": -0.268602268124833
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "vix_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0.006552888903283831,
      "pearson_r": -0.11751932832294912,
      "spearman_pvalue": 3.371817718157735e-14,
      "spearman_rho": -0.31994142864278113
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "vix_regime_score_lag1",
      "differenced": true,
      "n_valid": 526,
      "pearson_pvalue": 0.002179958454745284,
      "pearson_r": 0.13346731712983118,
      "spearman_pvalue": 1.446694285256706e-16,
      "spearman_rho": 0.34959353414779076
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.0026199085650302494,
      "pearson_r": -0.13119943499616324,
      "spearman_pvalue": 2.958418378347631e-91,
      "spearman_rho": 0.7376239833484124
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.00005491058289278419,
      "pearson_r": -0.17347295481215122,
      "spearman_pvalue": 4.2816047081270786e-95,
      "spearman_rho": 0.7427747327446996
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.0026199085650302494,
      "pearson_r": -0.13119943499616324,
      "spearman_pvalue": 2.958418378347631e-91,
      "spearman_rho": 0.7376239833484124
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.011718673282615753,
      "pearson_r": 0.10890136870726246,
      "spearman_pvalue": 1.3294075465679774e-26,
      "spearman_rho": 0.43855768207153445
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.011718673282615753,
      "pearson_r": 0.10890136870726246,
      "spearman_pvalue": 1.3294075465679774e-26,
      "spearman_rho": 0.43855768207153445
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.011718673282615753,
      "pearson_r": 0.10890136870726246,
      "spearman_pvalue": 1.3294075465679774e-26,
      "spearman_rho": 0.43855768207153445
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.011718673282615753,
      "pearson_r": 0.10890136870726246,
      "spearman_pvalue": 1.3294075465679774e-26,
      "spearman_rho": 0.43855768207153445
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": true,
      "n_valid": 538,
      "pearson_pvalue": 0.2198245728573207,
      "pearson_r": 0.053035046449552176,
      "spearman_pvalue": 0.9202498959929006,
      "spearman_rho": 0.004326476948083483
    },
    {
      "col_a": "news_sentiment_mean_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": true,
      "n_valid": 519,
      "pearson_pvalue": 0.9652596246655342,
      "pearson_r": 0.0019183016443196303,
      "spearman_pvalue": 0.024671723666183382,
      "spearman_rho": 0.09860792052168879
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "sentiment_momentum_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 8.549137991288077e-14,
      "pearson_r": 0.31535768886319093,
      "spearman_pvalue": 0.26769911332914853,
      "spearman_rho": 0.04800395903372511
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "sentiment_accel_lag1",
      "differenced": true,
      "n_valid": 537,
      "pearson_pvalue": 0.0017973730405476058,
      "pearson_r": 0.13454258605878308,
      "spearman_pvalue": 0.6676640817938381,
      "spearman_rho": -0.01856975853691129
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "fng_change_1d_lag1",
      "differenced": true,
      "n_valid": 537,
      "pearson_pvalue": 1.903852870404474e-111,
      "pearson_r": 0.7814103939445202,
      "spearman_pvalue": 0.004354173208349386,
      "spearman_rho": 0.12286223466704034
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "fng_change_5d_lag1",
      "differenced": true,
      "n_valid": 533,
      "pearson_pvalue": 1.9194519250955507e-75,
      "pearson_r": 0.6867442898604241,
      "spearman_pvalue": 0.000006405904538738288,
      "spearman_rho": 0.19405391692829504
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "btc_bear_regime_lag1",
      "differenced": true,
      "n_valid": 538,
      "pearson_pvalue": 0.6988459881072446,
      "pearson_r": -0.01673287229220174,
      "spearman_pvalue": 1.1432749935461545e-111,
      "spearman_rho": -0.7810059825252033
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "sentiment_momentum_x_bear_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0.00010445827352194176,
      "pearson_r": 0.16711330801466137,
      "spearman_pvalue": 0.9576186843867951,
      "spearman_rho": 0.0023029169186607997
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "fng_change_1d_x_bear_lag1",
      "differenced": true,
      "n_valid": 537,
      "pearson_pvalue": 1.2955852873907085e-36,
      "pearson_r": 0.5086581564040358,
      "spearman_pvalue": 0.12232750146972927,
      "spearman_rho": 0.06675618594609861
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "funding_rate_x_bear_lag1",
      "differenced": true,
      "n_valid": 538,
      "pearson_pvalue": 0.04967403457454336,
      "pearson_r": -0.08474442015150119,
      "spearman_pvalue": 4.9020105967206315e-12,
      "spearman_rho": -0.2920052464964384
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "vix_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0.21487886090929487,
      "pearson_r": -0.05375850281342097,
      "spearman_pvalue": 5.385141903543127e-23,
      "spearman_rho": -0.4090378616308547
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "vix_regime_score_lag1",
      "differenced": true,
      "n_valid": 526,
      "pearson_pvalue": 0.1316297210414635,
      "pearson_r": 0.06588722719943327,
      "spearman_pvalue": 1.4296632544873037e-14,
      "spearman_rho": 0.32697366442381554
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.014607072707520048,
      "pearson_r": 0.10662862296524765,
      "spearman_pvalue": 5.393718319673365e-170,
      "spearman_rho": 0.8785970518338169
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.24006593401538281,
      "pearson_r": 0.05087808681994309,
      "spearman_pvalue": 1.4442521891391132e-228,
      "spearman_rho": 0.926330743628097
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.014607072707520048,
      "pearson_r": 0.10662862296524765,
      "spearman_pvalue": 5.393718319673365e-170,
      "spearman_rho": 0.8785970518338169
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.10311740495469665,
      "pearson_r": 0.07054497982338813,
      "spearman_pvalue": 3.1128831010480534e-18,
      "spearman_rho": 0.36396989846183386
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.10311740495469665,
      "pearson_r": 0.07054497982338813,
      "spearman_pvalue": 3.1128831010480534e-18,
      "spearman_rho": 0.36396989846183386
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.10311740495469665,
      "pearson_r": 0.07054497982338813,
      "spearman_pvalue": 3.1128831010480534e-18,
      "spearman_rho": 0.36396989846183386
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.10311740495469665,
      "pearson_r": 0.07054497982338813,
      "spearman_pvalue": 3.1128831010480534e-18,
      "spearman_rho": 0.36396989846183386
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": true,
      "n_valid": 538,
      "pearson_pvalue": 0.000018746749496794177,
      "pearson_r": 0.18352309926974092,
      "spearman_pvalue": 0.9130112610413048,
      "spearman_rho": 0.004720671919516847
    },
    {
      "col_a": "fng_value_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": true,
      "n_valid": 519,
      "pearson_pvalue": 3.1563584399649716e-10,
      "pearson_r": -0.2718409663065921,
      "spearman_pvalue": 0.06986447233069927,
      "spearman_rho": -0.07963817471939051
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "sentiment_accel_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 1.965968453767171e-60,
      "pearson_r": 0.6296615728875021,
      "spearman_pvalue": 7.2921979150356095e-53,
      "spearman_rho": 0.5965012436504864
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "fng_change_1d_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 1.1977104884150079e-26,
      "pearson_r": 0.4392838559480097,
      "spearman_pvalue": 1.1162419739760532e-20,
      "spearman_rho": 0.38812507071866476
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "fng_change_5d_lag1",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 1.826129917332762e-24,
      "pearson_r": 0.42229584914303026,
      "spearman_pvalue": 2.7209039629457126e-21,
      "spearman_rho": 0.39448655533984345
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "btc_bear_regime_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.5443927942588821,
      "pearson_r": -0.026264515999738138,
      "spearman_pvalue": 0.569363969477586,
      "spearman_rho": -0.0246534408313422
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "sentiment_momentum_x_bear_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 1.049198524586524e-80,
      "pearson_r": 0.7023103984292656,
      "spearman_pvalue": 2.5289595519660973e-64,
      "spearman_rho": 0.6452682946624506
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "fng_change_1d_x_bear_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 1.589349698863557e-12,
      "pearson_r": 0.299184211926144,
      "spearman_pvalue": 0.0000010794239742947466,
      "spearman_rho": 0.2089891353095485
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "funding_rate_x_bear_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.35190737807940836,
      "pearson_r": -0.04032408838472269,
      "spearman_pvalue": 0.8382314004746079,
      "spearman_rho": -0.008846964279408343
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "vix_lag1",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 0.28632863376036305,
      "pearson_r": -0.04626657859013505,
      "spearman_pvalue": 0.08009064722239932,
      "spearman_rho": -0.07587668714390793
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "vix_regime_score_lag1",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 0.015187546079203302,
      "pearson_r": 0.10581480443105973,
      "spearman_pvalue": 0.02044450439816717,
      "spearman_rho": 0.10105502291446788
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.788398961873746,
      "pearson_r": 0.011741091682007172,
      "spearman_pvalue": 0.7447770874524982,
      "spearman_rho": 0.014240683996002835
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.9167085446313944,
      "pearson_r": 0.004531994092474825,
      "spearman_pvalue": 0.7229046036981566,
      "spearman_rho": 0.015364843325115469
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.788398961873746,
      "pearson_r": 0.011741091682007172,
      "spearman_pvalue": 0.7447770874524982,
      "spearman_rho": 0.014240683996002835
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0.02620201634922475,
      "pearson_r": 0.09620964862966525,
      "spearman_pvalue": 0.00007062832677299087,
      "spearman_rho": 0.17095134645131124
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0.02620201634922475,
      "pearson_r": 0.09620964862966525,
      "spearman_pvalue": 0.00007062832677299087,
      "spearman_rho": 0.17095134645131124
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0.02620201634922475,
      "pearson_r": 0.09620964862966525,
      "spearman_pvalue": 0.00007062832677299087,
      "spearman_rho": 0.17095134645131124
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0.02620201634922475,
      "pearson_r": 0.09620964862966525,
      "spearman_pvalue": 0.00007062832677299087,
      "spearman_rho": 0.17095134645131124
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.9350431815708672,
      "pearson_r": 0.003531864336800051,
      "spearman_pvalue": 0.9744445851310685,
      "spearman_rho": 0.0013882159735952655
    },
    {
      "col_a": "sentiment_momentum_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 519,
      "pearson_pvalue": 4.967804886190262e-7,
      "pearson_r": 0.2185389320842515,
      "spearman_pvalue": 0.000004204294700391482,
      "spearman_rho": 0.20039331079793513
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "fng_change_1d_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 6.126442639333417e-18,
      "pearson_r": 0.36065285298007654,
      "spearman_pvalue": 2.1854172075916404e-14,
      "spearman_rho": 0.32160804205701976
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "fng_change_5d_lag1",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 0.7180866917665146,
      "pearson_r": 0.015673221092378484,
      "spearman_pvalue": 0.909684110924515,
      "spearman_rho": -0.004925034648421331
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "btc_bear_regime_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 0.7977848387368026,
      "pearson_r": -0.011081976861323228,
      "spearman_pvalue": 0.7853527952025761,
      "spearman_rho": -0.011779818724286814
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "sentiment_momentum_x_bear_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 1.119776325694297e-29,
      "pearson_r": 0.46224542216380277,
      "spearman_pvalue": 6.251623070358871e-21,
      "spearman_rho": 0.390471428831323
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "fng_change_1d_x_bear_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 7.090131339362871e-7,
      "pearson_r": 0.21204733136430642,
      "spearman_pvalue": 0.00035814354243466685,
      "spearman_rho": 0.15346443477361596
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "funding_rate_x_bear_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 0.8586348249052916,
      "pearson_r": 0.007703948753686675,
      "spearman_pvalue": 0.5534293699944968,
      "spearman_rho": 0.025629356794469826
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "vix_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.9956304003524266,
      "pearson_r": -0.00023732519658443594,
      "spearman_pvalue": 0.7517652338253549,
      "spearman_rho": -0.013706804334377976
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "vix_regime_score_lag1",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 0.6272287591015573,
      "pearson_r": 0.021222625451689594,
      "spearman_pvalue": 0.8793704840779359,
      "spearman_rho": 0.006633075673592021
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.0000020235354779575513,
      "pearson_r": -0.20562356420868955,
      "spearman_pvalue": 0.000004911533728676342,
      "spearman_rho": -0.19788374224098254
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 536,
      "pearson_pvalue": 0.0000013699961305407958,
      "pearson_r": -0.20681828479552844,
      "spearman_pvalue": 0.000003192987332112835,
      "spearman_rho": -0.19963226212175172
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.0000020235354779575513,
      "pearson_r": -0.20562356420868955,
      "spearman_pvalue": 0.000004911533728676342,
      "spearman_rho": -0.19788374224098254
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6377690102574314,
      "pearson_r": 0.020400938554570838,
      "spearman_pvalue": 0.39466510942202726,
      "spearman_rho": -0.03683923162435435
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6377690102574314,
      "pearson_r": 0.020400938554570838,
      "spearman_pvalue": 0.39466510942202726,
      "spearman_rho": -0.03683923162435435
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6377690102574314,
      "pearson_r": 0.020400938554570838,
      "spearman_pvalue": 0.39466510942202726,
      "spearman_rho": -0.03683923162435435
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6377690102574314,
      "pearson_r": 0.020400938554570838,
      "spearman_pvalue": 0.39466510942202726,
      "spearman_rho": -0.03683923162435435
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 0.7805985214453445,
      "pearson_r": 0.01204748858853226,
      "spearman_pvalue": 0.7358101606478427,
      "spearman_rho": 0.014593414608348615
    },
    {
      "col_a": "sentiment_accel_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 519,
      "pearson_pvalue": 0.0000391178799498727,
      "pearson_r": 0.17948905390017833,
      "spearman_pvalue": 0.00004826445159418444,
      "spearman_rho": 0.1773953588982491
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "fng_change_5d_lag1",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 1.0793826531279855e-21,
      "pearson_r": 0.3981536554936975,
      "spearman_pvalue": 1.585714340456426e-16,
      "spearman_rho": 0.34699369311358746
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "btc_bear_regime_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 0.7597573434705467,
      "pearson_r": -0.013226464149551802,
      "spearman_pvalue": 0.6655259929929126,
      "spearman_rho": -0.018696904829465313
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "sentiment_momentum_x_bear_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 1.9814994562186466e-10,
      "pearson_r": 0.27057185741569495,
      "spearman_pvalue": 2.1770943413208287e-7,
      "spearman_rho": 0.2218250513551274
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "fng_change_1d_x_bear_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 5.449394193467058e-62,
      "pearson_r": 0.6351072391745989,
      "spearman_pvalue": 1.4534744201240568e-56,
      "spearman_rho": 0.6123054452319054
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "funding_rate_x_bear_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 0.12592501792258032,
      "pearson_r": -0.06612215943125797,
      "spearman_pvalue": 0.49994289870966413,
      "spearman_rho": -0.029172040526160202
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "vix_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.6923670584481313,
      "pearson_r": -0.01714405990370134,
      "spearman_pvalue": 0.33128024135797535,
      "spearman_rho": -0.04208308930865186
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "vix_regime_score_lag1",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 0.15973843053028292,
      "pearson_r": 0.06139063070980945,
      "spearman_pvalue": 0.2224285785592905,
      "spearman_rho": 0.05328767299535274
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.1877496446471031,
      "pearson_r": -0.05757971990298618,
      "spearman_pvalue": 0.16144107706767505,
      "spearman_rho": -0.06120011983159198
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 536,
      "pearson_pvalue": 0.1652410286946894,
      "pearson_r": -0.06002380173130484,
      "spearman_pvalue": 0.2410898586698011,
      "spearman_rho": -0.05072004110806892
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.1877496446471031,
      "pearson_r": -0.05757971990298618,
      "spearman_pvalue": 0.16144107706767505,
      "spearman_rho": -0.06120011983159198
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6940766892963575,
      "pearson_r": 0.017043713993989865,
      "spearman_pvalue": 0.37382687899085876,
      "spearman_rho": 0.038488735976527695
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6940766892963575,
      "pearson_r": 0.017043713993989865,
      "spearman_pvalue": 0.37382687899085876,
      "spearman_rho": 0.038488735976527695
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6940766892963575,
      "pearson_r": 0.017043713993989865,
      "spearman_pvalue": 0.37382687899085876,
      "spearman_rho": 0.038488735976527695
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6940766892963575,
      "pearson_r": 0.017043713993989865,
      "spearman_pvalue": 0.37382687899085876,
      "spearman_rho": 0.038488735976527695
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 0.00010331780583235907,
      "pearson_r": 0.16676330484977075,
      "spearman_pvalue": 0.016926761864429558,
      "spearman_rho": 0.10302821331191545
    },
    {
      "col_a": "fng_change_1d_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 519,
      "pearson_pvalue": 0.3841382304877311,
      "pearson_r": 0.03828008523801312,
      "spearman_pvalue": 0.42086513211767074,
      "spearman_rho": 0.035406412032607984
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "btc_bear_regime_lag1",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 0.6491192724322414,
      "pearson_r": 0.01975208386623076,
      "spearman_pvalue": 0.6968501057876751,
      "spearman_rho": 0.01691290977467989
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "sentiment_momentum_x_bear_lag1",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 4.914141863459942e-7,
      "pearson_r": 0.2157923607250242,
      "spearman_pvalue": 0.00005855896095799622,
      "spearman_rho": 0.17315248832984545
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "fng_change_1d_x_bear_lag1",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 8.134155108970857e-7,
      "pearson_r": 0.2117047455885251,
      "spearman_pvalue": 0.00021322252771127298,
      "spearman_rho": 0.15973071562941416
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "funding_rate_x_bear_lag1",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 0.03555706094190976,
      "pearson_r": -0.0910703979907088,
      "spearman_pvalue": 0.12256323806370488,
      "spearman_rho": -0.06696467748852704
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "vix_lag1",
      "differenced": false,
      "n_valid": 531,
      "pearson_pvalue": 0.6560132804743958,
      "pearson_r": -0.01937360223377842,
      "spearman_pvalue": 0.0899297326816689,
      "spearman_rho": -0.07366367485162843
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "vix_regime_score_lag1",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 0.0016317464256088178,
      "pearson_r": 0.13703154017445726,
      "spearman_pvalue": 0.000014337325840007479,
      "spearman_rho": 0.18793224270296136
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 2.1012569683420622e-9,
      "pearson_r": 0.25760476705749524,
      "spearman_pvalue": 6.898338996476965e-9,
      "spearman_rho": 0.249431198397396
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 0.000014393232906787971,
      "pearson_r": 0.18667408636272517,
      "spearman_pvalue": 0.00010331765594209227,
      "spearman_rho": 0.16738198114891473
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 2.1012569683420622e-9,
      "pearson_r": 0.25760476705749524,
      "spearman_pvalue": 6.898338996476965e-9,
      "spearman_rho": 0.249431198397396
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 533,
      "pearson_pvalue": 0.043332331880076395,
      "pearson_r": 0.08763699345110837,
      "spearman_pvalue": 1.4845916021087952e-10,
      "spearman_rho": 0.27287281064096947
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 533,
      "pearson_pvalue": 0.043332331880076395,
      "pearson_r": 0.08763699345110837,
      "spearman_pvalue": 1.4845916021087952e-10,
      "spearman_rho": 0.27287281064096947
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 533,
      "pearson_pvalue": 0.043332331880076395,
      "pearson_r": 0.08763699345110837,
      "spearman_pvalue": 1.4845916021087952e-10,
      "spearman_rho": 0.27287281064096947
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 533,
      "pearson_pvalue": 0.043332331880076395,
      "pearson_r": 0.08763699345110837,
      "spearman_pvalue": 1.4845916021087952e-10,
      "spearman_rho": 0.27287281064096947
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 0.3492576243630551,
      "pearson_r": 0.04062260447085947,
      "spearman_pvalue": 0.30290673371845744,
      "spearman_rho": 0.04470642859980019
    },
    {
      "col_a": "fng_change_5d_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 519,
      "pearson_pvalue": 0.20660775118135746,
      "pearson_r": 0.05552838666686618,
      "spearman_pvalue": 0.058550568777216226,
      "spearman_rho": 0.0830866840550838
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "sentiment_momentum_x_bear_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.45193212486832507,
      "pearson_r": -0.032587930216895974,
      "spearman_pvalue": 0.9251735466436342,
      "spearman_rho": 0.004069972660993684
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "fng_change_1d_x_bear_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 0.5935259807371498,
      "pearson_r": -0.023083017360668836,
      "spearman_pvalue": 0.7734576975513865,
      "spearman_rho": 0.0124503931719364
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "funding_rate_x_bear_lag1",
      "differenced": false,
      "n_valid": 538,
      "pearson_pvalue": 3.922960358669158e-16,
      "pearson_r": 0.34118726149738277,
      "spearman_pvalue": 2.1598221391164087e-27,
      "spearman_rho": 0.44397053094286715
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "vix_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 2.5580887816896288e-14,
      "pearson_r": 0.3213687053458205,
      "spearman_pvalue": 3.9531930053125294e-13,
      "spearman_rho": 0.30687040072024047
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "vix_regime_score_lag1",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 0.0000012307493350084056,
      "pearson_r": -0.20964123029663972,
      "spearman_pvalue": 0.00021323502667112368,
      "spearman_rho": -0.16078061827350684
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 4.326149247856359e-64,
      "pearson_r": -0.6489765736621582,
      "spearman_pvalue": 1.0114741191854365e-69,
      "spearman_rho": -0.6701524015699053
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 536,
      "pearson_pvalue": 1.8988495821094237e-88,
      "pearson_r": -0.7247828126062003,
      "spearman_pvalue": 1.6135715583832134e-99,
      "spearman_rho": -0.7539698561969531
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 4.326149247856359e-64,
      "pearson_r": -0.6489765736621582,
      "spearman_pvalue": 1.0114741191854365e-69,
      "spearman_rho": -0.6701524015699053
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.4236919767772388,
      "pearson_r": -0.03465909426278626,
      "spearman_pvalue": 1.267319257811961e-9,
      "spearman_rho": -0.25838524877446767
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.4236919767772388,
      "pearson_r": -0.03465909426278626,
      "spearman_pvalue": 1.267319257811961e-9,
      "spearman_rho": -0.25838524877446767
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.4236919767772388,
      "pearson_r": -0.03465909426278626,
      "spearman_pvalue": 1.267319257811961e-9,
      "spearman_rho": -0.25838524877446767
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.4236919767772388,
      "pearson_r": -0.03465909426278626,
      "spearman_pvalue": 1.267319257811961e-9,
      "spearman_rho": -0.25838524877446767
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 538,
      "pearson_pvalue": 0.105391905589801,
      "pearson_r": 0.06988831376743565,
      "spearman_pvalue": 0.10539190558980202,
      "spearman_rho": 0.06988831376743557
    },
    {
      "col_a": "btc_bear_regime_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 519,
      "pearson_pvalue": 0.3902897606373369,
      "pearson_r": 0.037787595718895145,
      "spearman_pvalue": 0.2576870763604969,
      "spearman_rho": 0.04977300115266501
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "fng_change_1d_x_bear_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 5.415186430815703e-25,
      "pearson_r": 0.4259558309825851,
      "spearman_pvalue": 2.635385455790218e-12,
      "spearman_rho": 0.29633315370047175
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "funding_rate_x_bear_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.19763840306010177,
      "pearson_r": -0.055785557893842076,
      "spearman_pvalue": 0.616995467693748,
      "spearman_rho": -0.021669919364203167
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "vix_lag1",
      "differenced": false,
      "n_valid": 533,
      "pearson_pvalue": 0.40937373800708815,
      "pearson_r": -0.03580715883085371,
      "spearman_pvalue": 0.899164794991172,
      "spearman_rho": -0.00550157518713632
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "vix_regime_score_lag1",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 0.05420474041839818,
      "pearson_r": 0.08399401134982849,
      "spearman_pvalue": 0.26092318302481277,
      "spearman_rho": 0.04910521171646824
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.25992117626538513,
      "pearson_r": 0.049255427140461654,
      "spearman_pvalue": 0.9593453635866204,
      "spearman_rho": 0.0022300483714454977
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.7039940618010344,
      "pearson_r": 0.016463393375620854,
      "spearman_pvalue": 0.7088793680294111,
      "spearman_rho": -0.016178612366860558
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.25992117626538513,
      "pearson_r": 0.049255427140461654,
      "spearman_pvalue": 0.9593453635866204,
      "spearman_rho": 0.0022300483714454977
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0.007655217165137943,
      "pearson_r": 0.11529357743179645,
      "spearman_pvalue": 0.000011519395957093218,
      "spearman_rho": 0.18838458319052298
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0.007655217165137943,
      "pearson_r": 0.11529357743179645,
      "spearman_pvalue": 0.000011519395957093218,
      "spearman_rho": 0.18838458319052298
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0.007655217165137943,
      "pearson_r": 0.11529357743179645,
      "spearman_pvalue": 0.000011519395957093218,
      "spearman_rho": 0.18838458319052298
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 535,
      "pearson_pvalue": 0.007655217165137943,
      "pearson_r": 0.11529357743179645,
      "spearman_pvalue": 0.000011519395957093218,
      "spearman_rho": 0.18838458319052298
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.9014613525785776,
      "pearson_r": 0.005365522449884525,
      "spearman_pvalue": 0.983873213397147,
      "spearman_rho": 0.0008759460643164706
    },
    {
      "col_a": "sentiment_momentum_x_bear_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 519,
      "pearson_pvalue": 0.002110541323273326,
      "pearson_r": 0.1346528813314954,
      "spearman_pvalue": 0.0776619109352265,
      "spearman_rho": 0.07751961518021391
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "funding_rate_x_bear_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 0.01504163852523197,
      "pearson_r": -0.10487647616516606,
      "spearman_pvalue": 0.5563944371019071,
      "spearman_rho": -0.02543810558537878
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "vix_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.7928589861975969,
      "pearson_r": -0.011379431682768447,
      "spearman_pvalue": 0.6010509132869625,
      "spearman_rho": 0.02265659023948152
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "vix_regime_score_lag1",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 0.3548667443072674,
      "pearson_r": 0.04041990249164031,
      "spearman_pvalue": 0.817257046273204,
      "spearman_rho": 0.010099089266448159
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.7995914294367505,
      "pearson_r": -0.011106183483053391,
      "spearman_pvalue": 0.42288396364034914,
      "spearman_rho": -0.035049977448054014
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 536,
      "pearson_pvalue": 0.8375144669688748,
      "pearson_r": -0.008878391853016334,
      "spearman_pvalue": 0.5592455632377388,
      "spearman_rho": -0.025278320813533935
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.7995914294367505,
      "pearson_r": -0.011106183483053391,
      "spearman_pvalue": 0.42288396364034914,
      "spearman_rho": -0.035049977448054014
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.29889112971840104,
      "pearson_r": 0.04499434903105686,
      "spearman_pvalue": 0.0805407423411896,
      "spearman_rho": 0.07555144257250376
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.29889112971840104,
      "pearson_r": 0.04499434903105686,
      "spearman_pvalue": 0.0805407423411896,
      "spearman_rho": 0.07555144257250376
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.29889112971840104,
      "pearson_r": 0.04499434903105686,
      "spearman_pvalue": 0.0805407423411896,
      "spearman_rho": 0.07555144257250376
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.29889112971840104,
      "pearson_r": 0.04499434903105686,
      "spearman_pvalue": 0.0805407423411896,
      "spearman_rho": 0.07555144257250376
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 537,
      "pearson_pvalue": 6.61176216694443e-10,
      "pearson_r": 0.26240361083346914,
      "spearman_pvalue": 0.006454748276829624,
      "spearman_rho": 0.1174048610062129
    },
    {
      "col_a": "fng_change_1d_x_bear_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 519,
      "pearson_pvalue": 0.7138816847993896,
      "pearson_r": -0.016131905041338743,
      "spearman_pvalue": 0.4354555361182804,
      "spearman_rho": -0.034306017690882776
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "vix_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.06132729585634471,
      "pearson_r": 0.08095246812579783,
      "spearman_pvalue": 0.7713475309149068,
      "spearman_rho": -0.012593240413679634
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "vix_regime_score_lag1",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 0.00030459240336837685,
      "pearson_r": -0.15686027007217024,
      "spearman_pvalue": 0.012382310223241735,
      "spearman_rho": -0.10898556082269074
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 3.8748498738714504e-8,
      "pearson_r": -0.23702358281437158,
      "spearman_pvalue": 6.95515215037015e-13,
      "spearman_rho": -0.306530230673284
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 536,
      "pearson_pvalue": 0.007088601761938431,
      "pearson_r": -0.11618203397123629,
      "spearman_pvalue": 6.162125697004106e-7,
      "spearman_rho": -0.2133782116523172
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 3.8748498738714504e-8,
      "pearson_r": -0.23702358281437158,
      "spearman_pvalue": 6.95515215037015e-13,
      "spearman_rho": -0.306530230673284
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.7590420714510041,
      "pearson_r": 0.013291985357422148,
      "spearman_pvalue": 1.7963994607041832e-7,
      "spearman_rho": -0.22311076539089592
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.7590420714510041,
      "pearson_r": 0.013291985357422148,
      "spearman_pvalue": 1.7963994607041832e-7,
      "spearman_rho": -0.22311076539089592
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.7590420714510041,
      "pearson_r": 0.013291985357422148,
      "spearman_pvalue": 1.7963994607041832e-7,
      "spearman_rho": -0.22311076539089592
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.7590420714510041,
      "pearson_r": 0.013291985357422148,
      "spearman_pvalue": 1.7963994607041832e-7,
      "spearman_rho": -0.22311076539089592
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 538,
      "pearson_pvalue": 0.13317627072871127,
      "pearson_r": -0.06482527236074555,
      "spearman_pvalue": 0.4778754288379938,
      "spearman_rho": -0.03066248881638736
    },
    {
      "col_a": "funding_rate_x_bear_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 519,
      "pearson_pvalue": 0.9045990348443388,
      "pearson_r": 0.005273672956601717,
      "spearman_pvalue": 0.5988521502458787,
      "spearman_rho": 0.023143825542204167
    },
    {
      "col_a": "vix_lag1",
      "col_b": "vix_regime_score_lag1",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 2.7083592959883224e-120,
      "pearson_r": -0.8038236876940678,
      "spearman_pvalue": 4.4722436941570435e-48,
      "spearman_rho": -0.5773126403694264
    },
    {
      "col_a": "vix_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 523,
      "pearson_pvalue": 2.636031616337357e-35,
      "pearson_r": -0.5057097385329163,
      "spearman_pvalue": 2.9485993575997036e-28,
      "spearman_rho": -0.4562946429938954
    },
    {
      "col_a": "vix_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 534,
      "pearson_pvalue": 5.582524611200618e-18,
      "pearson_r": -0.3620145402081233,
      "spearman_pvalue": 6.840104738240668e-27,
      "spearman_rho": -0.44156540576395875
    },
    {
      "col_a": "vix_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 523,
      "pearson_pvalue": 2.636031616337357e-35,
      "pearson_r": -0.5057097385329163,
      "spearman_pvalue": 2.9485993575997036e-28,
      "spearman_rho": -0.4562946429938954
    },
    {
      "col_a": "vix_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 534,
      "pearson_pvalue": 0.45338260197091773,
      "pearson_r": 0.032544711985203374,
      "spearman_pvalue": 0.02809437590443219,
      "spearman_rho": -0.09503627248086512
    },
    {
      "col_a": "vix_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 534,
      "pearson_pvalue": 0.45338260197091773,
      "pearson_r": 0.032544711985203374,
      "spearman_pvalue": 0.02809437590443219,
      "spearman_rho": -0.09503627248086512
    },
    {
      "col_a": "vix_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 534,
      "pearson_pvalue": 0.45338260197091773,
      "pearson_r": 0.032544711985203374,
      "spearman_pvalue": 0.02809437590443219,
      "spearman_rho": -0.09503627248086512
    },
    {
      "col_a": "vix_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 534,
      "pearson_pvalue": 0.45338260197091773,
      "pearson_r": 0.032544711985203374,
      "spearman_pvalue": 0.02809437590443219,
      "spearman_rho": -0.09503627248086512
    },
    {
      "col_a": "vix_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 535,
      "pearson_pvalue": 0.6853794255531629,
      "pearson_r": -0.017555157177307355,
      "spearman_pvalue": 0.9853950562760085,
      "spearman_rho": 0.0007932756265047065
    },
    {
      "col_a": "vix_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 517,
      "pearson_pvalue": 0.7905930250506326,
      "pearson_r": 0.011706397988449635,
      "spearman_pvalue": 0.5762494619247245,
      "spearman_rho": -0.024635036240884492
    },
    {
      "col_a": "vix_regime_score_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 523,
      "pearson_pvalue": 7.260277683692044e-43,
      "pearson_r": 0.5510215156502644,
      "spearman_pvalue": 5.072475000245645e-39,
      "spearman_rho": 0.528836032119612
    },
    {
      "col_a": "vix_regime_score_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 6.622204762000731e-11,
      "pearson_r": 0.2796431423350559,
      "spearman_pvalue": 2.673891061117625e-12,
      "spearman_rho": 0.2986704700169266
    },
    {
      "col_a": "vix_regime_score_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 523,
      "pearson_pvalue": 7.260277683692044e-43,
      "pearson_r": 0.5510215156502644,
      "spearman_pvalue": 5.072475000245645e-39,
      "spearman_rho": 0.528836032119612
    },
    {
      "col_a": "vix_regime_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 526,
      "pearson_pvalue": 0.4653435659934626,
      "pearson_r": -0.0319311249528452,
      "spearman_pvalue": 0.0000011501268278344467,
      "spearman_rho": 0.21020823206169006
    },
    {
      "col_a": "vix_regime_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 526,
      "pearson_pvalue": 0.4653435659934626,
      "pearson_r": -0.0319311249528452,
      "spearman_pvalue": 0.0000011501268278344467,
      "spearman_rho": 0.21020823206169006
    },
    {
      "col_a": "vix_regime_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 526,
      "pearson_pvalue": 0.4653435659934626,
      "pearson_r": -0.0319311249528452,
      "spearman_pvalue": 0.0000011501268278344467,
      "spearman_rho": 0.21020823206169006
    },
    {
      "col_a": "vix_regime_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 526,
      "pearson_pvalue": 0.4653435659934626,
      "pearson_r": -0.0319311249528452,
      "spearman_pvalue": 0.0000011501268278344467,
      "spearman_rho": 0.21020823206169006
    },
    {
      "col_a": "vix_regime_score_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 526,
      "pearson_pvalue": 0.05572868544910798,
      "pearson_r": 0.0834703213665944,
      "spearman_pvalue": 0.018315869287180736,
      "spearman_rho": 0.10283650124671098
    },
    {
      "col_a": "vix_regime_score_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 517,
      "pearson_pvalue": 0.710907837639784,
      "pearson_r": 0.016339061815186077,
      "spearman_pvalue": 0.5314392569733066,
      "spearman_rho": 0.02758464410287289
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "core_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 1.5773196882808552e-184,
      "pearson_r": 0.8940448196333902,
      "spearman_pvalue": 3.2692558800672003e-202,
      "spearman_rho": 0.9100776627372279
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0,
      "pearson_r": 1,
      "spearman_pvalue": 0,
      "spearman_rho": 1
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.7793638963016536,
      "pearson_r": 0.0122671607483075,
      "spearman_pvalue": 5.3906053776245944e-30,
      "spearman_rho": 0.4684554346368571
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.7793638963016536,
      "pearson_r": 0.0122671607483075,
      "spearman_pvalue": 5.3906053776245944e-30,
      "spearman_rho": 0.4684554346368571
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.7793638963016536,
      "pearson_r": 0.0122671607483075,
      "spearman_pvalue": 5.3906053776245944e-30,
      "spearman_rho": 0.4684554346368571
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.7793638963016536,
      "pearson_r": 0.0122671607483075,
      "spearman_pvalue": 5.3906053776245944e-30,
      "spearman_rho": 0.4684554346368571
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.9488106742609945,
      "pearson_r": 0.002808623336450719,
      "spearman_pvalue": 0.9776774235334924,
      "spearman_rho": -0.0012241017408710305
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 517,
      "pearson_pvalue": 0.20228847826987845,
      "pearson_r": -0.056168694116444436,
      "spearman_pvalue": 0.08007647231316427,
      "spearman_rho": -0.07704761638457829
    },
    {
      "col_a": "core_hybrid_index_score_lag1",
      "col_b": "full_hybrid_index_score_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 1.5773196882808552e-184,
      "pearson_r": 0.8940448196333902,
      "spearman_pvalue": 3.2692558800672003e-202,
      "spearman_rho": 0.9100776627372279
    },
    {
      "col_a": "core_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.370340516556577,
      "pearson_r": 0.03880653193644483,
      "spearman_pvalue": 1.0633498663904147e-18,
      "spearman_rho": 0.36866876778101576
    },
    {
      "col_a": "core_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.370340516556577,
      "pearson_r": 0.03880653193644483,
      "spearman_pvalue": 1.0633498663904147e-18,
      "spearman_rho": 0.36866876778101576
    },
    {
      "col_a": "core_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.370340516556577,
      "pearson_r": 0.03880653193644483,
      "spearman_pvalue": 1.0633498663904147e-18,
      "spearman_rho": 0.36866876778101576
    },
    {
      "col_a": "core_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.370340516556577,
      "pearson_r": 0.03880653193644483,
      "spearman_pvalue": 1.0633498663904147e-18,
      "spearman_rho": 0.36866876778101576
    },
    {
      "col_a": "core_hybrid_index_score_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 536,
      "pearson_pvalue": 0.2430945403870625,
      "pearson_r": -0.05050484134169586,
      "spearman_pvalue": 0.16878075401206827,
      "spearman_rho": -0.05952610394836156
    },
    {
      "col_a": "core_hybrid_index_score_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 519,
      "pearson_pvalue": 0.4118846922542458,
      "pearson_r": -0.03609482167068892,
      "spearman_pvalue": 0.20701473211506172,
      "spearman_rho": -0.055478711259058094
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.7793638963016536,
      "pearson_r": 0.0122671607483075,
      "spearman_pvalue": 5.3906053776245944e-30,
      "spearman_rho": 0.4684554346368571
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.7793638963016536,
      "pearson_r": 0.0122671607483075,
      "spearman_pvalue": 5.3906053776245944e-30,
      "spearman_rho": 0.4684554346368571
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.7793638963016536,
      "pearson_r": 0.0122671607483075,
      "spearman_pvalue": 5.3906053776245944e-30,
      "spearman_rho": 0.4684554346368571
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 525,
      "pearson_pvalue": 0.7793638963016536,
      "pearson_r": 0.0122671607483075,
      "spearman_pvalue": 5.3906053776245944e-30,
      "spearman_rho": 0.4684554346368571
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": false,
      "n_valid": 525,
      "pearson_pvalue": 0.9488106742609945,
      "pearson_r": 0.002808623336450719,
      "spearman_pvalue": 0.9776774235334924,
      "spearman_rho": -0.0012241017408710305
    },
    {
      "col_a": "full_hybrid_index_score_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 517,
      "pearson_pvalue": 0.20228847826987845,
      "pearson_r": -0.056168694116444436,
      "spearman_pvalue": 0.08007647231316427,
      "spearman_rho": -0.07704761638457829
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0,
      "pearson_r": 1,
      "spearman_pvalue": 0,
      "spearman_rho": 1
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0,
      "pearson_r": 1,
      "spearman_pvalue": 0,
      "spearman_rho": 1
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0,
      "pearson_r": 1,
      "spearman_pvalue": 0,
      "spearman_rho": 1
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6502985086419558,
      "pearson_r": 0.019643978356871997,
      "spearman_pvalue": 0.8834501298997424,
      "spearman_rho": 0.006346778922410084
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": true,
      "n_valid": 519,
      "pearson_pvalue": 0.9014661274459382,
      "pearson_r": 0.005453009138090181,
      "spearman_pvalue": 0.7626687257596549,
      "spearman_rho": -0.01328682062228021
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0,
      "pearson_r": 1,
      "spearman_pvalue": 0,
      "spearman_rho": 1
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0,
      "pearson_r": 1,
      "spearman_pvalue": 0,
      "spearman_rho": 1
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6502985086419558,
      "pearson_r": 0.019643978356871997,
      "spearman_pvalue": 0.8834501298997424,
      "spearman_rho": 0.006346778922410084
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": true,
      "n_valid": 519,
      "pearson_pvalue": 0.9014661274459382,
      "pearson_r": 0.005453009138090181,
      "spearman_pvalue": 0.7626687257596549,
      "spearman_rho": -0.01328682062228021
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "etf_net_inflow_usd_log1p_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0,
      "pearson_r": 1,
      "spearman_pvalue": 0,
      "spearman_rho": 1
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6502985086419558,
      "pearson_r": 0.019643978356871997,
      "spearman_pvalue": 0.8834501298997424,
      "spearman_rho": 0.006346778922410084
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": true,
      "n_valid": 519,
      "pearson_pvalue": 0.9014661274459382,
      "pearson_r": 0.005453009138090181,
      "spearman_pvalue": 0.7626687257596549,
      "spearman_rho": -0.01328682062228021
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "usdkrw_gap_flag_lag1",
      "differenced": true,
      "n_valid": 536,
      "pearson_pvalue": 0.6502985086419558,
      "pearson_r": 0.019643978356871997,
      "spearman_pvalue": 0.8834501298997424,
      "spearman_rho": 0.006346778922410084
    },
    {
      "col_a": "etf_net_inflow_usd_log1p_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": true,
      "n_valid": 519,
      "pearson_pvalue": 0.9014661274459382,
      "pearson_r": 0.005453009138090181,
      "spearman_pvalue": 0.7626687257596549,
      "spearman_rho": -0.01328682062228021
    },
    {
      "col_a": "usdkrw_gap_flag_lag1",
      "col_b": "btc_taker_imbalance_zscore_30d_lag1",
      "differenced": false,
      "n_valid": 519,
      "pearson_pvalue": 0.09122940181705606,
      "pearson_r": -0.0742132670651009,
      "spearman_pvalue": 0.07035565691781807,
      "spearman_rho": -0.0794991666014824
    }
  ],
  "exclusion_counts": {
    "insufficient_article_count": 0,
    "invalid_contract": 0,
    "missing_backfill_marker": 0,
    "no_sentiment": 0,
    "skipped_sentiment": 2
  },
  "feature_group_summary": {
    "7": {
      "hybrid": {
        "avg_hit_rate": 0.4902978136791937,
        "avg_payoff_ratio": 5.066428692658913,
        "avg_sharpe": -0.7333088579411647,
        "avg_vol_regime_hit_rate_lift": -0.06083854995717,
        "avg_vol_regime_sharpe_lift": -3.225319344433986,
        "best_hit_rate": 0.525,
        "best_payoff_predictor": "full_hybrid_index_score_lag1",
        "best_predictor": "vol_regime_filtered_full_hybrid_score_lag1",
        "candidate_count_after_quality_gate": 1,
        "decision_promote_count": 0,
        "decision_strict_promote_count": 0,
        "min_fdr_q": 1,
        "positive_payoff_count": 4,
        "predictor_count": 4
      },
      "level": {
        "avg_hit_rate": 0.5009274402445143,
        "avg_payoff_ratio": 1.064212493031579,
        "avg_sharpe": -0.5964490764779604,
        "avg_vol_regime_hit_rate_lift": -0.05020892339184935,
        "avg_vol_regime_sharpe_lift": -3.145554023494053,
        "best_hit_rate": 0.5472061657032755,
        "best_payoff_predictor": "fng_value_lag1",
        "best_predictor": "vix_regime_score_lag1",
        "candidate_count_after_quality_gate": 1,
        "decision_promote_count": 0,
        "decision_strict_promote_count": 0,
        "min_fdr_q": 1,
        "positive_payoff_count": 2,
        "predictor_count": 4
      },
      "other": {
        "avg_hit_rate": 0.49743554493044356,
        "avg_payoff_ratio": 1.1305162568824902,
        "avg_sharpe": -0.27753135300324644,
        "avg_vol_regime_hit_rate_lift": -0.05370081870592011,
        "avg_vol_regime_sharpe_lift": -3.0170197062926896,
        "best_hit_rate": 0.5179584120982986,
        "best_payoff_predictor": "etf_net_inflow_usd_log1p_lag1",
        "best_predictor": "etf_net_inflow_usd_log1p_lag1",
        "candidate_count_after_quality_gate": 3,
        "decision_promote_count": 0,
        "decision_strict_promote_count": 0,
        "min_fdr_q": 1,
        "positive_payoff_count": 4,
        "predictor_count": 6
      },
      "regime": {
        "avg_hit_rate": 0.49577519882224874,
        "avg_payoff_ratio": 1.0832705975431989,
        "avg_sharpe": -0.8635398624062295,
        "avg_vol_regime_hit_rate_lift": -0.05536116481411492,
        "avg_vol_regime_sharpe_lift": -3.4126448094223214,
        "best_hit_rate": 0.509469696969697,
        "best_payoff_predictor": "funding_rate_x_bear_lag1",
        "best_predictor": "sentiment_momentum_x_bear_lag1",
        "candidate_count_after_quality_gate": 1,
        "decision_promote_count": 0,
        "decision_strict_promote_count": 0,
        "min_fdr_q": 1,
        "positive_payoff_count": 3,
        "predictor_count": 4
      },
      "research_sparse": {
        "avg_hit_rate": 0.5819803553437934,
        "avg_payoff_ratio": 1.06133807345718,
        "avg_sharpe": 3.066043406623862,
        "avg_vol_regime_hit_rate_lift": 0.03084399170742974,
        "avg_vol_regime_sharpe_lift": 0.5169384596077697,
        "best_hit_rate": 0.6383763837638377,
        "best_payoff_predictor": "vol_regime_v2_vix_realized_vol_2of2",
        "best_predictor": "vol_regime_v2_vix_realized_vol_2of2",
        "candidate_count_after_quality_gate": 3,
        "decision_promote_count": 0,
        "decision_strict_promote_count": 0,
        "min_fdr_q": 1,
        "positive_payoff_count": 3,
        "predictor_count": 4
      },
      "stationary": {
        "avg_hit_rate": 0.5042667781915575,
        "avg_payoff_ratio": 9.66764994350654,
        "avg_sharpe": -1.337798404372525,
        "avg_vol_regime_hit_rate_lift": -0.04686958544480607,
        "avg_vol_regime_sharpe_lift": -3.886903351388617,
        "best_hit_rate": 0.5150943396226415,
        "best_payoff_predictor": "sentiment_momentum_lag1",
        "best_predictor": "sentiment_accel_lag1",
        "candidate_count_after_quality_gate": 2,
        "decision_promote_count": 0,
        "decision_strict_promote_count": 0,
        "min_fdr_q": 1,
        "positive_payoff_count": 3,
        "predictor_count": 4
      }
    }
  },
  "ffill_breakdown": {
    "btc": {
      "end_date": "2026-05-18",
      "filled_days": 0,
      "max_periods": 2,
      "start_date": "2024-04-18"
    },
    "macro": {
      "end_date": "2026-05-18",
      "filled_days": 495,
      "start_date": "2024-11-23"
    },
    "usdkrw": {
      "end_date": "2026-05-18",
      "filled_days": 172,
      "max_periods": 3,
      "start_date": "2024-11-23"
    },
    "vix": {
      "end_date": "2026-05-18",
      "filled_days": 158,
      "max_periods": 2,
      "start_date": "2024-11-23"
    }
  },
  "generated_at_utc": "2026-05-18T23:46:45.855476+00:00",
  "granger_correction": {
    "bonferroni_threshold": 0.0006666667,
    "correction_method": "fdr_bh",
    "granger_method": "pairwise_granger",
    "n_tests": 75
  },
  "granger_eligible_rows": 539,
  "granger_executed": true,
  "granger_results": [
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 1,
      "df_num": 534,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 8.799692451288124,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 0.0031476952088675203,
      "pvalue_adjusted": 0.0107307791,
      "pvalue_raw": 0.0031476952088675203,
      "significant": true,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 2,
      "df_num": 531,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 6.972607331939564,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 0.0010254522967105568,
      "pvalue_adjusted": 0.0038454461,
      "pvalue_raw": 0.0010254522967105568,
      "significant": true,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 3,
      "df_num": 528,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 4.3054423156472215,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 0.0051543149678380164,
      "pvalue_adjusted": 0.0158498779,
      "pvalue_raw": 0.0051543149678380164,
      "significant": true,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 1,
      "df_num": 534,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 0.1741680801911576,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.6766014930741955,
      "pvalue_adjusted": 0.820975491,
      "pvalue_raw": 0.6766014930741955,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 2,
      "df_num": 531,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 0.35165231522552826,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.7036883957236268,
      "pvalue_adjusted": 0.820975491,
      "pvalue_raw": 0.7036883957236268,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 3,
      "df_num": 528,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 0.15443338865767342,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.9268263493616082,
      "pvalue_adjusted": 0.9431508422,
      "pvalue_raw": 0.9268263493616082,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 1,
      "df_num": 515,
      "direction": "forward",
      "effective_rows": 519,
      "f_statistic": 0.07800829744570296,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "funding_rate_zscore_30d",
      "pvalue": 0.780126998775896,
      "pvalue_adjusted": 0.8684214458,
      "pvalue_raw": 0.780126998775896,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 2,
      "df_num": 512,
      "direction": "forward",
      "effective_rows": 519,
      "f_statistic": 0.12560220904731134,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "funding_rate_zscore_30d",
      "pvalue": 0.8819927819066345,
      "pvalue_adjusted": 0.9411221633,
      "pvalue_raw": 0.8819927819066345,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 3,
      "df_num": 509,
      "direction": "forward",
      "effective_rows": 519,
      "f_statistic": 0.10160665724908337,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "funding_rate_zscore_30d",
      "pvalue": 0.9590801268626432,
      "pvalue_adjusted": 0.9590801269,
      "pvalue_raw": 0.9590801268626432,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 1,
      "df_num": 515,
      "direction": "forward",
      "effective_rows": 519,
      "f_statistic": 0.031651572456040736,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 2,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "long_short_ratio_zscore_30d",
      "pvalue": 0.8588644861187491,
      "pvalue_adjusted": 0.9335483545,
      "pvalue_raw": 0.8588644861187491,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 2,
      "df_num": 512,
      "direction": "forward",
      "effective_rows": 519,
      "f_statistic": 1.626527662345656,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 2,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "long_short_ratio_zscore_30d",
      "pvalue": 0.19762533801138726,
      "pvalue_adjusted": 0.3215417787,
      "pvalue_raw": 0.19762533801138726,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 3,
      "df_num": 509,
      "direction": "forward",
      "effective_rows": 519,
      "f_statistic": 1.8476862787045116,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 2,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "long_short_ratio_zscore_30d",
      "pvalue": 0.13753627464540935,
      "pvalue_adjusted": 0.2456004904,
      "pvalue_raw": 0.13753627464540935,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 1,
      "df_num": 534,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 1.335124006111097,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "oi_change_pct",
      "pvalue": 0.248412434653415,
      "pvalue_adjusted": 0.3802231143,
      "pvalue_raw": 0.248412434653415,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 2,
      "df_num": 531,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 0.505058255533548,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "oi_change_pct",
      "pvalue": 0.6037600187178609,
      "pvalue_adjusted": 0.7674915492,
      "pvalue_raw": 0.6037600187178609,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 3,
      "df_num": 528,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 1.4793333138524434,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "oi_change_pct",
      "pvalue": 0.21920419435858646,
      "pvalue_adjusted": 0.3425065537,
      "pvalue_raw": 0.21920419435858646,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 1,
      "df_num": 533,
      "direction": "forward",
      "effective_rows": 537,
      "f_statistic": 1.8084014126955283,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "etf_net_inflow_usd",
      "pvalue": 0.17927206982139207,
      "pvalue_adjusted": 0.298786783,
      "pvalue_raw": 0.17927206982139207,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 2,
      "df_num": 530,
      "direction": "forward",
      "effective_rows": 537,
      "f_statistic": 0.9374782021279741,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "etf_net_inflow_usd",
      "pvalue": 0.3922625605594853,
      "pvalue_adjusted": 0.5768567067,
      "pvalue_raw": 0.3922625605594853,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 3,
      "df_num": 527,
      "direction": "forward",
      "effective_rows": 537,
      "f_statistic": 0.7304775016137496,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "etf_net_inflow_usd",
      "pvalue": 0.5341259317797846,
      "pvalue_adjusted": 0.7027972787,
      "pvalue_raw": 0.5341259317797846,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 1,
      "df_num": 532,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 0.49660022678604365,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "etf_net_inflow_usd_log1p",
      "pvalue": 0.48130615453845255,
      "pvalue_adjusted": 0.644606457,
      "pvalue_raw": 0.48130615453845255,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 2,
      "df_num": 529,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 3.3466080535566856,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "etf_net_inflow_usd_log1p",
      "pvalue": 0.03595046204400099,
      "pvalue_adjusted": 0.0962958805,
      "pvalue_raw": 0.03595046204400099,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 3,
      "df_num": 526,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 1.9427544409266988,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "etf_net_inflow_usd_log1p",
      "pvalue": 0.12166622207814463,
      "pvalue_adjusted": 0.23579816,
      "pvalue_raw": 0.12166622207814463,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 1,
      "df_num": 519,
      "direction": "forward",
      "effective_rows": 523,
      "f_statistic": 0.07416217276649854,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 6,
      "optimal_lag": 1,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "usdkrw_log_return",
      "pvalue": 0.785478653994491,
      "pvalue_adjusted": 0.8684214458,
      "pvalue_raw": 0.785478653994491,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 2,
      "df_num": 516,
      "direction": "forward",
      "effective_rows": 523,
      "f_statistic": 0.8675757115311452,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 6,
      "optimal_lag": 1,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "usdkrw_log_return",
      "pvalue": 0.420580122591061,
      "pvalue_adjusted": 0.5849553353,
      "pvalue_raw": 0.420580122591061,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 3,
      "df_num": 513,
      "direction": "forward",
      "effective_rows": 523,
      "f_statistic": 0.6524909413475499,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 6,
      "optimal_lag": 1,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "usdkrw_log_return",
      "pvalue": 0.5816625931468056,
      "pvalue_adjusted": 0.7521499049,
      "pvalue_raw": 0.5816625931468056,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 1,
      "df_num": 534,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 0.13691698895360016,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "volume_change_pct",
      "pvalue": 0.7115120922168795,
      "pvalue_adjusted": 0.820975491,
      "pvalue_raw": 0.7115120922168795,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 2,
      "df_num": 531,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 2.866834815538744,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "volume_change_pct",
      "pvalue": 0.05775949757417794,
      "pvalue_adjusted": 0.1312715854,
      "pvalue_raw": 0.05775949757417794,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 3,
      "df_num": 528,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 1.8021807842405264,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "volume_change_pct",
      "pvalue": 0.145735239828927,
      "pvalue_adjusted": 0.2541893718,
      "pvalue_raw": 0.145735239828927,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 1,
      "df_num": 534,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 0.1741680801911576,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "fng_change_1d",
      "pvalue": 0.6766014930741955,
      "pvalue_adjusted": 0.820975491,
      "pvalue_raw": 0.6766014930741955,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 2,
      "df_num": 531,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 0.35165231522552826,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "fng_change_1d",
      "pvalue": 0.7036883957236268,
      "pvalue_adjusted": 0.820975491,
      "pvalue_raw": 0.7036883957236268,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 3,
      "df_num": 528,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 0.15443338865767342,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "fng_change_1d",
      "pvalue": 0.9268263493616082,
      "pvalue_adjusted": 0.9431508422,
      "pvalue_raw": 0.9268263493616082,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 1,
      "df_num": 532,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 0.6480569852637557,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "sentiment_momentum",
      "pvalue": 0.4211678414120484,
      "pvalue_adjusted": 0.5849553353,
      "pvalue_raw": 0.4211678414120484,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 2,
      "df_num": 529,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 5.295519121668735,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "sentiment_momentum",
      "pvalue": 0.005283292647784605,
      "pvalue_adjusted": 0.0158498779,
      "pvalue_raw": 0.005283292647784605,
      "significant": true,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 3,
      "df_num": 526,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 3.9099899383307313,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "sentiment_momentum",
      "pvalue": 0.008837291794780454,
      "pvalue_adjusted": 0.0254921879,
      "pvalue_raw": 0.008837291794780454,
      "significant": true,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 521,
      "df_denom": 1,
      "df_num": 516,
      "direction": "forward",
      "effective_rows": 520,
      "f_statistic": 4.005861361346163,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 1,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_taker_imbalance_zscore_30d",
      "pvalue": 0.045865435607355606,
      "pvalue_adjusted": 0.1109647636,
      "pvalue_raw": 0.045865435607355606,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 521,
      "df_denom": 2,
      "df_num": 513,
      "direction": "forward",
      "effective_rows": 520,
      "f_statistic": 2.006429361466795,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 1,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_taker_imbalance_zscore_30d",
      "pvalue": 0.13552182742443297,
      "pvalue_adjusted": 0.2456004904,
      "pvalue_raw": 0.13552182742443297,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 521,
      "df_denom": 3,
      "df_num": 510,
      "direction": "forward",
      "effective_rows": 520,
      "f_statistic": 1.896408104248083,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 1,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_taker_imbalance_zscore_30d",
      "pvalue": 0.1291933189751273,
      "pvalue_adjusted": 0.2422374731,
      "pvalue_raw": 0.1291933189751273,
      "significant": false,
      "target": "btc_log_return",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 1,
      "df_num": 534,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 37.52702247296689,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 1.7504872995211912e-9,
      "pvalue_adjusted": 1.09e-8,
      "pvalue_raw": 1.7504872995211912e-9,
      "significant": true,
      "target": "fng_value",
      "tgt_differenced": true,
      "tgt_stationarity": "non_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 2,
      "df_num": 531,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 33.118196614505216,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 2.7910154560127002e-14,
      "pvalue_adjusted": 0,
      "pvalue_raw": 2.7910154560127002e-14,
      "significant": true,
      "target": "fng_value",
      "tgt_differenced": true,
      "tgt_stationarity": "non_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 3,
      "df_num": 528,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 22.103768997697788,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 1.6970913918210355e-13,
      "pvalue_adjusted": 0,
      "pvalue_raw": 1.6970913918210355e-13,
      "significant": true,
      "target": "fng_value",
      "tgt_differenced": true,
      "tgt_stationarity": "non_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 1,
      "df_num": 534,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 4.1866663897133165,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.04123237208022691,
      "pvalue_adjusted": 0.1030809302,
      "pvalue_raw": 0.04123237208022691,
      "significant": false,
      "target": "news_sentiment_mean",
      "tgt_differenced": true,
      "tgt_stationarity": "trend_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 2,
      "df_num": 531,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 6.238464701341211,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.00209898745319529,
      "pvalue_adjusted": 0.0074963838,
      "pvalue_raw": 0.00209898745319529,
      "significant": true,
      "target": "news_sentiment_mean",
      "tgt_differenced": true,
      "tgt_stationarity": "trend_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 3,
      "df_num": 528,
      "direction": "forward",
      "effective_rows": 538,
      "f_statistic": 1.5466072267804358,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.20149951464319726,
      "pvalue_adjusted": 0.3215417787,
      "pvalue_raw": 0.20149951464319726,
      "significant": false,
      "target": "news_sentiment_mean",
      "tgt_differenced": true,
      "tgt_stationarity": "trend_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 519,
      "df_denom": 1,
      "df_num": 514,
      "direction": "forward",
      "effective_rows": 518,
      "f_statistic": 0.9285451450074831,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 0.3356943717557938,
      "pvalue_adjusted": 0.5035415576,
      "pvalue_raw": 0.3356943717557938,
      "significant": false,
      "target": "funding_rate_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 519,
      "df_denom": 2,
      "df_num": 511,
      "direction": "forward",
      "effective_rows": 518,
      "f_statistic": 0.2391704262725798,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 0.7873687775684054,
      "pvalue_adjusted": 0.8684214458,
      "pvalue_raw": 0.7873687775684054,
      "significant": false,
      "target": "funding_rate_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 519,
      "df_denom": 3,
      "df_num": 508,
      "direction": "forward",
      "effective_rows": 518,
      "f_statistic": 0.148599543954241,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 0.9305754976336462,
      "pvalue_adjusted": 0.9431508422,
      "pvalue_raw": 0.9305754976336462,
      "significant": false,
      "target": "funding_rate_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 1,
      "df_num": 532,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 4.292711769849107,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 0.038757349459375444,
      "pvalue_adjusted": 0.1002345245,
      "pvalue_raw": 0.038757349459375444,
      "significant": false,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 2,
      "df_num": 529,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 5.611409533304249,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 0.0038769180593801237,
      "pvalue_adjusted": 0.0126421241,
      "pvalue_raw": 0.0038769180593801237,
      "significant": true,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 3,
      "df_num": 526,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 8.781024946183221,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "trend_stationary",
      "predictor": "news_sentiment_mean",
      "pvalue": 0.000010868458029931196,
      "pvalue_adjusted": 0.0000543423,
      "pvalue_raw": 0.000010868458029931196,
      "significant": true,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 519,
      "df_denom": 1,
      "df_num": 514,
      "direction": "forward",
      "effective_rows": 518,
      "f_statistic": 0.6975715041325108,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.40398895178469074,
      "pvalue_adjusted": 0.5826763728,
      "pvalue_raw": 0.40398895178469074,
      "significant": false,
      "target": "long_short_ratio_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 519,
      "df_denom": 2,
      "df_num": 511,
      "direction": "forward",
      "effective_rows": 518,
      "f_statistic": 2.6982123268123326,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.06828503899229722,
      "pvalue_adjusted": 0.1463250836,
      "pvalue_raw": 0.06828503899229722,
      "significant": false,
      "target": "long_short_ratio_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 519,
      "df_denom": 3,
      "df_num": 508,
      "direction": "forward",
      "effective_rows": 518,
      "f_statistic": 1.9370417677359004,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.12261504321574695,
      "pvalue_adjusted": 0.23579816,
      "pvalue_raw": 0.12261504321574695,
      "significant": false,
      "target": "long_short_ratio_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 1,
      "df_num": 532,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 13.182826782729048,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.00030984283792049417,
      "pvalue_adjusted": 0.0013669537,
      "pvalue_raw": 0.00030984283792049417,
      "significant": true,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 2,
      "df_num": 529,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 7.640170507076011,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.0005357162244610167,
      "pvalue_adjusted": 0.0021146693,
      "pvalue_raw": 0.0005357162244610167,
      "significant": true,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 537,
      "df_denom": 3,
      "df_num": 526,
      "direction": "forward",
      "effective_rows": 536,
      "f_statistic": 7.587159194282968,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": true,
      "pred_stationarity": "non_stationary",
      "predictor": "fng_value",
      "pvalue": 0.00005639160772090512,
      "pvalue_adjusted": 0.0002643357,
      "pvalue_raw": 0.00005639160772090512,
      "significant": true,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 1,
      "df_num": 519,
      "direction": "forward",
      "effective_rows": 523,
      "f_statistic": 0.018822776140935818,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 6,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "usdkrw_log_return",
      "pvalue": 0.8909289812869853,
      "pvalue_adjusted": 0.9411221633,
      "pvalue_raw": 0.8909289812869853,
      "significant": false,
      "target": "volume_change_pct",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 2,
      "df_num": 516,
      "direction": "forward",
      "effective_rows": 523,
      "f_statistic": 0.35437232636202,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 6,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "usdkrw_log_return",
      "pvalue": 0.7017843068378287,
      "pvalue_adjusted": 0.820975491,
      "pvalue_raw": 0.7017843068378287,
      "significant": false,
      "target": "volume_change_pct",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 3,
      "df_num": 513,
      "direction": "forward",
      "effective_rows": 523,
      "f_statistic": 2.3171624014892034,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 6,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "usdkrw_log_return",
      "pvalue": 0.07477182549178021,
      "pvalue_adjusted": 0.1557746364,
      "pvalue_raw": 0.07477182549178021,
      "significant": false,
      "target": "volume_change_pct",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 1,
      "df_num": 515,
      "direction": "forward",
      "effective_rows": 519,
      "f_statistic": 0.616245033181432,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "funding_rate_zscore_30d",
      "pvalue": 0.43280705307370887,
      "pvalue_adjusted": 0.590191436,
      "pvalue_raw": 0.43280705307370887,
      "significant": false,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 2,
      "df_num": 512,
      "direction": "forward",
      "effective_rows": 519,
      "f_statistic": 2.3029479068483645,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "funding_rate_zscore_30d",
      "pvalue": 0.1009983518894149,
      "pvalue_adjusted": 0.204726389,
      "pvalue_raw": 0.1009983518894149,
      "significant": false,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 3,
      "df_num": 509,
      "direction": "forward",
      "effective_rows": 519,
      "f_statistic": 1.7372893645009913,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "funding_rate_zscore_30d",
      "pvalue": 0.15837092558210344,
      "pvalue_adjusted": 0.2699504413,
      "pvalue_raw": 0.15837092558210344,
      "significant": false,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 1,
      "df_num": 534,
      "direction": "reverse",
      "effective_rows": 538,
      "f_statistic": 108.34816962045213,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 3.1573975865132445e-23,
      "pvalue_adjusted": 0,
      "pvalue_raw": 3.1573975865132445e-23,
      "significant": true,
      "target": "news_sentiment_mean",
      "tgt_differenced": true,
      "tgt_stationarity": "trend_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 2,
      "df_num": 531,
      "direction": "reverse",
      "effective_rows": 538,
      "f_statistic": 67.65638419479912,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 6.699622586487872e-27,
      "pvalue_adjusted": 0,
      "pvalue_raw": 6.699622586487872e-27,
      "significant": true,
      "target": "news_sentiment_mean",
      "tgt_differenced": true,
      "tgt_stationarity": "trend_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 3,
      "df_num": 528,
      "direction": "reverse",
      "effective_rows": 538,
      "f_statistic": 46.73007276579588,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 8.502791283035452e-27,
      "pvalue_adjusted": 0,
      "pvalue_raw": 8.502791283035452e-27,
      "significant": true,
      "target": "news_sentiment_mean",
      "tgt_differenced": true,
      "tgt_stationarity": "trend_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 1,
      "df_num": 515,
      "direction": "reverse",
      "effective_rows": 519,
      "f_statistic": 3.7048942886043137,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 0.05480361374309897,
      "pvalue_adjusted": 0.1284459697,
      "pvalue_raw": 0.05480361374309897,
      "significant": false,
      "target": "funding_rate_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 2,
      "df_num": 512,
      "direction": "reverse",
      "effective_rows": 519,
      "f_statistic": 2.7686835892666934,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 0.0636842004373021,
      "pvalue_adjusted": 0.1404798539,
      "pvalue_raw": 0.0636842004373021,
      "significant": false,
      "target": "funding_rate_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 3,
      "df_num": 509,
      "direction": "reverse",
      "effective_rows": 519,
      "f_statistic": 3.217050232995926,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 0.022596543239743697,
      "pvalue_adjusted": 0.0627681757,
      "pvalue_raw": 0.022596543239743697,
      "significant": false,
      "target": "funding_rate_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 1,
      "df_num": 534,
      "direction": "reverse",
      "effective_rows": 538,
      "f_statistic": 418.2051179294266,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 4.4471035829026115e-69,
      "pvalue_adjusted": 0,
      "pvalue_raw": 4.4471035829026115e-69,
      "significant": true,
      "target": "fng_value",
      "tgt_differenced": true,
      "tgt_stationarity": "non_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 2,
      "df_num": 531,
      "direction": "reverse",
      "effective_rows": 538,
      "f_statistic": 223.63636211334588,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 3.5113973749002736e-71,
      "pvalue_adjusted": 0,
      "pvalue_raw": 3.5113973749002736e-71,
      "significant": true,
      "target": "fng_value",
      "tgt_differenced": true,
      "tgt_stationarity": "non_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 539,
      "df_denom": 3,
      "df_num": 528,
      "direction": "reverse",
      "effective_rows": 538,
      "f_statistic": 152.3767216874706,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 3.900588936494595e-71,
      "pvalue_adjusted": 0,
      "pvalue_raw": 3.900588936494595e-71,
      "significant": true,
      "target": "fng_value",
      "tgt_differenced": true,
      "tgt_stationarity": "non_stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 1,
      "df_num": 515,
      "direction": "reverse",
      "effective_rows": 519,
      "f_statistic": 493.01678095429645,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 2,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 3.9597546788115305e-77,
      "pvalue_adjusted": 0,
      "pvalue_raw": 3.9597546788115305e-77,
      "significant": true,
      "target": "long_short_ratio_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 2,
      "df_num": 512,
      "direction": "reverse",
      "effective_rows": 519,
      "f_statistic": 256.30859151757164,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 2,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 7.40170035212346e-78,
      "pvalue_adjusted": 0,
      "pvalue_raw": 7.40170035212346e-78,
      "significant": true,
      "target": "long_short_ratio_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 520,
      "df_denom": 3,
      "df_num": 509,
      "direction": "reverse",
      "effective_rows": 519,
      "f_statistic": 171.08983110844426,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 2,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 1.077580125449473e-76,
      "pvalue_adjusted": 0,
      "pvalue_raw": 1.077580125449473e-76,
      "significant": true,
      "target": "long_short_ratio_zscore_30d",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 1,
      "df_num": 533,
      "direction": "reverse",
      "effective_rows": 537,
      "f_statistic": 12.408455795918721,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 1,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 0.0004640771066063594,
      "pvalue_adjusted": 0.0019336546,
      "pvalue_raw": 0.0004640771066063594,
      "significant": true,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 2,
      "df_num": 530,
      "direction": "reverse",
      "effective_rows": 537,
      "f_statistic": 16.67156460280732,
      "granger_primary": false,
      "inference": "ssr_ftest_ols",
      "lag": 2,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 9.511739764197959e-8,
      "pvalue_adjusted": 5.096e-7,
      "pvalue_raw": 9.511739764197959e-8,
      "significant": true,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    },
    {
      "bonferroni_threshold": 0.0006666667,
      "calendar_span_days": 538,
      "df_denom": 3,
      "df_num": 527,
      "direction": "reverse",
      "effective_rows": 537,
      "f_statistic": 13.560245341574433,
      "granger_primary": true,
      "inference": "ssr_ftest_ols",
      "lag": 3,
      "max_consecutive_gap_days": 2,
      "optimal_lag": 3,
      "pred_differenced": false,
      "pred_stationarity": "stationary",
      "predictor": "btc_log_return",
      "pvalue": 1.5560628750004215e-8,
      "pvalue_adjusted": 8.98e-8,
      "pvalue_raw": 1.5560628750004215e-8,
      "significant": true,
      "target": "etf_net_inflow_usd",
      "tgt_differenced": false,
      "tgt_stationarity": "stationary",
      "warning": "non_contiguous_dates"
    }
  ],
  "granger_skip_summary": {},
  "granger_skips": [],
  "hit_rates": [
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.5283018867924528,
      "fn": 112,
      "fp": 163,
      "granger_significant": true,
      "hit_rate": 0.4888475836431227,
      "hit_rate_ci_lower": 0.45353159851301117,
      "hit_rate_ci_upper": 0.5297397769516728,
      "inverted": false,
      "n_valid": 538,
      "precision": 0.48580441640378547,
      "predictor": "news_sentiment_mean_lag1",
      "recall": 0.5789473684210527,
      "threshold": 0,
      "tn": 109,
      "tp": 154
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.4439834024896265,
      "fn": 159,
      "fp": 109,
      "granger_significant": true,
      "hit_rate": 0.5018587360594795,
      "hit_rate_ci_lower": 0.4684014869888476,
      "hit_rate_ci_upper": 0.5390334572490706,
      "inverted": false,
      "n_valid": 538,
      "precision": 0.49537037037037035,
      "predictor": "fng_value_lag1",
      "recall": 0.40225563909774437,
      "threshold": 50,
      "tn": 163,
      "tp": 107
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.5194805194805195,
      "fn": 125,
      "fp": 134,
      "granger_significant": true,
      "hit_rate": 0.5158878504672897,
      "hit_rate_ci_lower": 0.4747663551401869,
      "hit_rate_ci_upper": 0.5532710280373832,
      "inverted": false,
      "n_valid": 535,
      "precision": 0.5109489051094891,
      "predictor": "sentiment_momentum_lag1",
      "recall": 0.5283018867924528,
      "threshold": 0,
      "tn": 136,
      "tp": 140
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.49814126394052044,
      "fn": 132,
      "fp": 138,
      "granger_significant": null,
      "hit_rate": 0.4972067039106145,
      "hit_rate_ci_lower": 0.4618249534450652,
      "hit_rate_ci_upper": 0.5344506517690876,
      "inverted": false,
      "n_valid": 537,
      "precision": 0.49264705882352944,
      "predictor": "sentiment_accel_lag1",
      "recall": 0.5037593984962406,
      "threshold": 0,
      "tn": 133,
      "tp": 134
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.47656249999999994,
      "fn": 144,
      "fp": 124,
      "granger_significant": false,
      "hit_rate": 0.5009310986964618,
      "hit_rate_ci_lower": 0.45623836126629425,
      "hit_rate_ci_upper": 0.5437616387337058,
      "inverted": false,
      "n_valid": 537,
      "precision": 0.4959349593495935,
      "predictor": "fng_change_1d_lag1",
      "recall": 0.45864661654135336,
      "threshold": 0,
      "tn": 147,
      "tp": 122
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.4678362573099415,
      "fn": 144,
      "fp": 129,
      "granger_significant": null,
      "hit_rate": 0.4878048780487805,
      "hit_rate_ci_lower": 0.44840525328330205,
      "hit_rate_ci_upper": 0.525328330206379,
      "inverted": false,
      "n_valid": 533,
      "precision": 0.4819277108433735,
      "predictor": "fng_change_5d_lag1",
      "recall": 0.45454545454545453,
      "threshold": 0,
      "tn": 140,
      "tp": 120
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.5288966725043782,
      "fn": 115,
      "fp": 154,
      "granger_significant": null,
      "hit_rate": 0.5,
      "hit_rate_ci_lower": 0.4628252788104089,
      "hit_rate_ci_upper": 0.5371747211895911,
      "inverted": true,
      "n_valid": 538,
      "precision": 0.49508196721311476,
      "predictor": "btc_bear_regime_lag1",
      "recall": 0.5676691729323309,
      "threshold": 0.5,
      "tn": 118,
      "tp": 151
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.3089005235602094,
      "fn": 206,
      "fp": 58,
      "granger_significant": null,
      "hit_rate": 0.5065420560747663,
      "hit_rate_ci_lower": 0.4691121495327103,
      "hit_rate_ci_upper": 0.5421028037383177,
      "inverted": false,
      "n_valid": 535,
      "precision": 0.5042735042735043,
      "predictor": "sentiment_momentum_x_bear_lag1",
      "recall": 0.22264150943396227,
      "threshold": 0,
      "tn": 212,
      "tp": 59
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.2978723404255319,
      "fn": 210,
      "fp": 54,
      "granger_significant": null,
      "hit_rate": 0.5083798882681564,
      "hit_rate_ci_lower": 0.4692737430167598,
      "hit_rate_ci_upper": 0.5475325884543761,
      "inverted": false,
      "n_valid": 537,
      "precision": 0.509090909090909,
      "predictor": "fng_change_1d_x_bear_lag1",
      "recall": 0.21052631578947367,
      "threshold": 0,
      "tn": 217,
      "tp": 56
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.3890160183066362,
      "fn": 181,
      "fp": 86,
      "granger_significant": null,
      "hit_rate": 0.5037174721189591,
      "hit_rate_ci_lower": 0.4684014869888476,
      "hit_rate_ci_upper": 0.5390334572490706,
      "inverted": false,
      "n_valid": 538,
      "precision": 0.49707602339181284,
      "predictor": "funding_rate_x_bear_lag1",
      "recall": 0.31954887218045114,
      "threshold": 0,
      "tn": 186,
      "tp": 85
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.6239782016348774,
      "fn": 36,
      "fp": 240,
      "granger_significant": null,
      "hit_rate": 0.48411214953271026,
      "hit_rate_ci_lower": 0.44672897196261685,
      "hit_rate_ci_upper": 0.5214953271028038,
      "inverted": true,
      "n_valid": 535,
      "precision": 0.488272921108742,
      "predictor": "vix_lag1",
      "recall": 0.8641509433962264,
      "threshold": 24,
      "tn": 30,
      "tp": 229
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.4779116465863454,
      "fn": 141,
      "fp": 119,
      "granger_significant": null,
      "hit_rate": 0.5057034220532319,
      "hit_rate_ci_lower": 0.47143536121673,
      "hit_rate_ci_upper": 0.5418250950570342,
      "inverted": false,
      "n_valid": 526,
      "precision": 0.5,
      "predictor": "vix_regime_score_lag1",
      "recall": 0.4576923076923077,
      "threshold": 0,
      "tn": 147,
      "tp": 119
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.4868913857677902,
      "fn": 129,
      "fp": 145,
      "granger_significant": null,
      "hit_rate": 0.4780952380952381,
      "hit_rate_ci_lower": 0.43238095238095237,
      "hit_rate_ci_upper": 0.5219047619047619,
      "inverted": false,
      "n_valid": 525,
      "precision": 0.4727272727272727,
      "predictor": "full_hybrid_index_score_lag1",
      "recall": 0.5019305019305019,
      "threshold": 50,
      "tn": 121,
      "tp": 130
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.2741935483870968,
      "fn": 215,
      "fp": 55,
      "granger_significant": null,
      "hit_rate": 0.4962686567164179,
      "hit_rate_ci_lower": 0.458955223880597,
      "hit_rate_ci_upper": 0.5335820895522388,
      "inverted": false,
      "n_valid": 536,
      "precision": 0.4811320754716981,
      "predictor": "core_hybrid_index_score_lag1",
      "recall": 0.19172932330827067,
      "threshold": 50,
      "tn": 215,
      "tp": 51
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.3374083129584352,
      "fn": 190,
      "fp": 81,
      "granger_significant": null,
      "hit_rate": 0.4838095238095238,
      "hit_rate_ci_lower": 0.4419047619047619,
      "hit_rate_ci_upper": 0.5238095238095238,
      "inverted": false,
      "n_valid": 525,
      "precision": 0.46,
      "predictor": "sovereign_gauge_60_long",
      "recall": 0.26640926640926643,
      "threshold": 60,
      "tn": 185,
      "tp": 69
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.4041237113402062,
      "fn": 168,
      "fp": 121,
      "granger_significant": null,
      "hit_rate": 0.4608208955223881,
      "hit_rate_ci_lower": 0.4197761194029851,
      "hit_rate_ci_upper": 0.5018656716417911,
      "inverted": false,
      "n_valid": 536,
      "precision": 0.4474885844748858,
      "predictor": "etf_net_inflow_usd_log1p_lag1",
      "recall": 0.3684210526315789,
      "threshold": 0,
      "tn": 149,
      "tp": 98
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.5763293310463122,
      "fn": 98,
      "fp": 149,
      "granger_significant": null,
      "hit_rate": 0.539179104477612,
      "hit_rate_ci_lower": 0.498134328358209,
      "hit_rate_ci_upper": 0.5802238805970149,
      "inverted": true,
      "n_valid": 536,
      "precision": 0.5299684542586751,
      "predictor": "etf_net_inflow_usd_log1p_lag1_inverted",
      "recall": 0.631578947368421,
      "threshold": 0,
      "tn": 121,
      "tp": 168
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.29949238578680204,
      "fn": 207,
      "fp": 69,
      "granger_significant": null,
      "hit_rate": 0.48507462686567165,
      "hit_rate_ci_lower": 0.4458955223880597,
      "hit_rate_ci_upper": 0.5223880597014925,
      "inverted": false,
      "n_valid": 536,
      "precision": 0.4609375,
      "predictor": "etf_net_inflow_usd_log1p_lag1_q75",
      "recall": 0.22180451127819548,
      "threshold": 0,
      "tn": 201,
      "tp": 59
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.2554347826086956,
      "fn": 219,
      "fp": 55,
      "granger_significant": null,
      "hit_rate": 0.48880597014925375,
      "hit_rate_ci_lower": 0.45149253731343286,
      "hit_rate_ci_upper": 0.5261194029850746,
      "inverted": false,
      "n_valid": 536,
      "precision": 0.46078431372549017,
      "predictor": "etf_net_inflow_usd_log1p_lag1_q80",
      "recall": 0.17669172932330826,
      "threshold": 0,
      "tn": 215,
      "tp": 47
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.007462686567164178,
      "fn": 265,
      "fp": 1,
      "granger_significant": null,
      "hit_rate": 0.5055762081784386,
      "hit_rate_ci_lower": 0.47026022304832715,
      "hit_rate_ci_upper": 0.5408921933085502,
      "inverted": false,
      "n_valid": 538,
      "precision": 0.5,
      "predictor": "usdkrw_gap_flag_lag1",
      "recall": 0.0037593984962406013,
      "threshold": 0.5,
      "tn": 271,
      "tp": 1
    },
    {
      "bootstrap_block_length": 14,
      "bootstrap_method": "circular",
      "bootstrap_n": 1000,
      "f1": 0.5239005736137666,
      "fn": 119,
      "fp": 130,
      "granger_significant": null,
      "hit_rate": 0.5202312138728323,
      "hit_rate_ci_lower": 0.4816955684007707,
      "hit_rate_ci_upper": 0.558766859344894,
      "inverted": false,
      "n_valid": 519,
      "precision": 0.5131086142322098,
      "predictor": "btc_taker_imbalance_zscore_30d_lag1",
      "recall": 0.53515625,
      "threshold": 0,
      "tn": 133,
      "tp": 137
    }
  ],
  "horizon_metrics": {
    "7": {
      "backtest": [
        {
          "alpha": 0.5158486786080587,
          "bnh_cumulative_return": -1.4540950378320026,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -4.291752319821118,
          "cumulative_return_ci_upper": 2.554871827700312,
          "granger_significant": true,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -2.174795778374797,
          "n_trades": 100,
          "n_valid": 531,
          "predictor": "news_sentiment_mean_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.35592347423499,
          "sharpe_ci_upper": 2.5535943580181466,
          "sharpe_ratio": -0.9161017492626374,
          "strategy_cumulative_return": -0.9382463592239438,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 1.218782692612812,
          "bnh_cumulative_return": -1.4540950378320026,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -2.9776744276394695,
          "cumulative_return_ci_upper": 2.8099580252200393,
          "granger_significant": true,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -1.5573421706860686,
          "n_trades": 35,
          "n_valid": 531,
          "predictor": "fng_value_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.629955811488231,
          "sharpe_ci_upper": 3.236570071889144,
          "sharpe_ratio": -0.2840702374764789,
          "strategy_cumulative_return": -0.23531234521919053,
          "threshold": 50,
          "transaction_cost_bps": 10
        },
        {
          "alpha": -0.16747454675629547,
          "bnh_cumulative_return": -1.5534673616981423,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -4.471974022400795,
          "cumulative_return_ci_upper": 1.054201190052582,
          "granger_significant": true,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -2.45966477338377,
          "n_trades": 168,
          "n_valid": 528,
          "predictor": "sentiment_momentum_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.128165123437198,
          "sharpe_ci_upper": 1.2041837920210858,
          "sharpe_ratio": -1.7208586481641754,
          "strategy_cumulative_return": -1.7209419084544377,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 0.20501551187338696,
          "bnh_cumulative_return": -1.4840745195237182,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -4.665844042478961,
          "cumulative_return_ci_upper": 1.945507367502129,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -2.266106253944035,
          "n_trades": 299,
          "n_valid": 530,
          "predictor": "sentiment_accel_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.8348981586781594,
          "sharpe_ci_upper": 1.8973213889346896,
          "sharpe_ratio": -1.148574599523997,
          "strategy_cumulative_return": -1.2790590076503312,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": -0.01315660964704457,
          "bnh_cumulative_return": -1.4840745195237182,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -4.257345953623757,
          "cumulative_return_ci_upper": 1.27163306299538,
          "granger_significant": false,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -2.1992504160472555,
          "n_trades": 308,
          "n_valid": 530,
          "predictor": "fng_change_1d_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.135645477442821,
          "sharpe_ci_upper": 1.3981530283950194,
          "sharpe_ratio": -1.5226667590620302,
          "strategy_cumulative_return": -1.4972311291707627,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 0.6492190183308497,
          "bnh_cumulative_return": -1.5901180960426191,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -3.833587539760291,
          "cumulative_return_ci_upper": 2.0624960196838225,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -2.01336113897659,
          "n_trades": 148,
          "n_valid": 526,
          "predictor": "fng_change_5d_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.6380357894604476,
          "sharpe_ci_upper": 2.324202921912707,
          "sharpe_ratio": -0.959093610739897,
          "strategy_cumulative_return": -0.9408990777117694,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 0.9582132909940606,
          "bnh_cumulative_return": -1.4540950378320026,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -4.045686657293329,
          "cumulative_return_ci_upper": 3.1816738205092974,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": true,
          "max_drawdown": -1.7184542621121701,
          "n_trades": 17,
          "n_valid": 531,
          "predictor": "btc_bear_regime_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.9924425047156005,
          "sharpe_ci_upper": 3.0857224787019106,
          "sharpe_ratio": -0.48068772383559855,
          "strategy_cumulative_return": -0.49588174683794195,
          "threshold": 0.5,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 1.1252989000026736,
          "bnh_cumulative_return": -1.5534673616981423,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -2.601276429674139,
          "cumulative_return_ci_upper": 1.471724761968399,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -1.3167494692451185,
          "n_trades": 87,
          "n_valid": 528,
          "predictor": "sentiment_momentum_x_bear_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.052195658334736,
          "sharpe_ci_upper": 2.5575820387781407,
          "sharpe_ratio": -0.5910991862338583,
          "strategy_cumulative_return": -0.4281684616954685,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 1.0052427127335681,
          "bnh_cumulative_return": -1.4840745195237182,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -2.646364334706122,
          "cumulative_return_ci_upper": 1.3911256725342955,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -1.438157237718354,
          "n_trades": 145,
          "n_valid": 530,
          "predictor": "fng_change_1d_x_bear_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.356703786087972,
          "sharpe_ci_upper": 2.16202195300622,
          "sharpe_ratio": -0.6837005357423365,
          "strategy_cumulative_return": -0.47883180679015,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": -0.23643666837238975,
          "bnh_cumulative_return": -1.4540950378320026,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -6.305947705732006,
          "cumulative_return_ci_upper": 1.9847499699870867,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -2.9304957552345563,
          "n_trades": 55,
          "n_valid": 531,
          "predictor": "funding_rate_x_bear_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -5.178711930238004,
          "sharpe_ci_upper": 2.502792135538677,
          "sharpe_ratio": -1.6986720038131247,
          "strategy_cumulative_return": -1.6905317062043923,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": -1.6309457019378029,
          "bnh_cumulative_return": -1.6439591574150156,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -8.691723884032282,
          "cumulative_return_ci_upper": 1.5858986382334395,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": true,
          "max_drawdown": -4.754213723661517,
          "n_trades": 22,
          "n_valid": 528,
          "predictor": "vix_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -5.7317585418762675,
          "sharpe_ci_upper": 1.2796203822830325,
          "sharpe_ratio": -2.36266848810999,
          "strategy_cumulative_return": -3.2749048593528185,
          "threshold": 24,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 2.7613253452815854,
          "bnh_cumulative_return": -1.8724993614668206,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -1.4609112372962654,
          "cumulative_return_ci_upper": 3.275659788347203,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -0.8533343049122094,
          "n_trades": 42,
          "n_valid": 519,
          "predictor": "vix_regime_score_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -1.9662548461941718,
          "sharpe_ci_upper": 4.416611533210371,
          "sharpe_ratio": 1.1770441689372644,
          "strategy_cumulative_return": 0.8888259838147649,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 1.099892470096685,
          "bnh_cumulative_return": -1.7825773224072026,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -3.7534381689157175,
          "cumulative_return_ci_upper": 2.2038518261491657,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -1.3649088928005542,
          "n_trades": 50,
          "n_valid": 518,
          "predictor": "full_hybrid_index_score_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.9814952945724813,
          "sharpe_ci_upper": 2.560651911892162,
          "sharpe_ratio": -0.7377145957809207,
          "strategy_cumulative_return": -0.6826848523105176,
          "threshold": 50,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 0.5414842409160664,
          "bnh_cumulative_return": -1.525445945116446,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -2.5968270895217485,
          "cumulative_return_ci_upper": 0.463509830340748,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -1.4479782610829377,
          "n_trades": 35,
          "n_valid": 529,
          "predictor": "core_hybrid_index_score_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.204989563337996,
          "sharpe_ci_upper": 0.9343208228103816,
          "sharpe_ratio": -1.7705123830164948,
          "strategy_cumulative_return": -0.9839617042003795,
          "threshold": 50,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 1.1529010675737443,
          "bnh_cumulative_return": -1.7825773224072026,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -2.770356396766859,
          "cumulative_return_ci_upper": 1.4278095975444074,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -1.3949105220058924,
          "n_trades": 51,
          "n_valid": 518,
          "predictor": "full_hybrid_index_score_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.236836797003087,
          "sharpe_ci_upper": 2.2566545625598278,
          "sharpe_ratio": -0.9660924378740031,
          "strategy_cumulative_return": -0.6296762548334582,
          "threshold": 60,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 1.3392639535732165,
          "bnh_cumulative_return": -1.525445945116446,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -2.4630220502675177,
          "cumulative_return_ci_upper": 2.1987990538232967,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -1.4484296021586012,
          "n_trades": 177,
          "n_valid": 529,
          "predictor": "etf_net_inflow_usd_log1p_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.90482633335259,
          "sharpe_ci_upper": 2.619839121505668,
          "sharpe_ratio": -0.2237312558727261,
          "strategy_cumulative_return": -0.18618199154322945,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": -0.16799512654534254,
          "bnh_cumulative_return": -1.525445945116446,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -6.230743990716981,
          "cumulative_return_ci_upper": 2.2573523161346056,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": true,
          "max_drawdown": -3.0039233665971805,
          "n_trades": 177,
          "n_valid": 529,
          "predictor": "etf_net_inflow_usd_log1p_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.5685756017094725,
          "sharpe_ci_upper": 2.0593639013601996,
          "sharpe_ratio": -1.366031693512828,
          "strategy_cumulative_return": -1.6934410716617885,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 1.3392639535732165,
          "bnh_cumulative_return": -1.525445945116446,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -2.4630220502675177,
          "cumulative_return_ci_upper": 2.1987990538232967,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -1.4484296021586012,
          "n_trades": 177,
          "n_valid": 529,
          "predictor": "etf_net_inflow_usd_log1p_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.90482633335259,
          "sharpe_ci_upper": 2.619839121505668,
          "sharpe_ratio": -0.2237312558727261,
          "strategy_cumulative_return": -0.18618199154322945,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 1.3392639535732165,
          "bnh_cumulative_return": -1.525445945116446,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -2.4630220502675177,
          "cumulative_return_ci_upper": 2.1987990538232967,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -1.4484296021586012,
          "n_trades": 177,
          "n_valid": 529,
          "predictor": "etf_net_inflow_usd_log1p_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.90482633335259,
          "sharpe_ci_upper": 2.619839121505668,
          "sharpe_ratio": -0.2237312558727261,
          "strategy_cumulative_return": -0.18618199154322945,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 1.5323287771324579,
          "bnh_cumulative_return": -1.4540950378320026,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": 0,
          "cumulative_return_ci_upper": 0.2357017182349495,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -0.0010005003335835372,
          "n_trades": 4,
          "n_valid": 531,
          "predictor": "usdkrw_gap_flag_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -0.8290852173038598,
          "sharpe_ci_upper": 1.8710404412653185,
          "sharpe_ratio": 1.0453914431024103,
          "strategy_cumulative_return": 0.07823373930045532,
          "threshold": 0.5,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 0.05272713111985805,
          "bnh_cumulative_return": -1.918229356125583,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -4.931668273597177,
          "cumulative_return_ci_upper": 1.190583645005363,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -2.474983356880289,
          "n_trades": 239,
          "n_valid": 512,
          "predictor": "btc_taker_imbalance_zscore_30d_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.724234095714642,
          "sharpe_ci_upper": 1.1961969975832587,
          "sharpe_ratio": -1.8156545376309845,
          "strategy_cumulative_return": -1.865502225005725,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 2.239935128301079,
          "bnh_cumulative_return": -1.743677502751488,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": -1.43901004188789,
          "cumulative_return_ci_upper": 2.4234496219642923,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -0.68455074890995,
          "n_trades": 49,
          "n_valid": 520,
          "predictor": "vol_regime_filtered_full_hybrid_score_lag1",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.3811890812117142,
          "sharpe_ci_upper": 3.709882221467305,
          "sharpe_ratio": 0.769461826999842,
          "strategy_cumulative_return": 0.49625762554959124,
          "threshold": 50,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 2.349249248723759,
          "bnh_cumulative_return": -1.4614237652425774,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": null,
          "cumulative_return_ci_upper": null,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -0.8533343049122093,
          "n_trades": 43,
          "n_valid": 231,
          "predictor": "vix_low_long_only",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.4866340060856427,
          "sharpe_ci_upper": 6.566080219372227,
          "sharpe_ratio": 1.7639066230431488,
          "strategy_cumulative_return": 0.8878254834811815,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 2.5063487856558258,
          "bnh_cumulative_return": -1.4614237652425774,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": null,
          "cumulative_return_ci_upper": null,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -1.2809539237464913,
          "n_trades": 162,
          "n_valid": 185,
          "predictor": "vote_vol_sent_fng5_2of3",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.65348232841557,
          "sharpe_ci_upper": 6.473655897387213,
          "sharpe_ratio": 1.9444534673709293,
          "strategy_cumulative_return": 1.0449250204132483,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 2.442825638538416,
          "bnh_cumulative_return": -1.4614237652425774,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": null,
          "cumulative_return_ci_upper": null,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -1.2341140069717782,
          "n_trades": 156,
          "n_valid": 181,
          "predictor": "vote_vol_vix_sent_fng5_3of4",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.749029000863133,
          "sharpe_ci_upper": 6.457030025918956,
          "sharpe_ratio": 1.8593628836582305,
          "strategy_cumulative_return": 0.9814018732958387,
          "threshold": 0,
          "transaction_cost_bps": 10
        },
        {
          "alpha": 6.793724395478373,
          "bnh_cumulative_return": -1.4614237652425774,
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "cumulative_return_ci_lower": null,
          "cumulative_return_ci_upper": null,
          "granger_significant": null,
          "horizon_days": 7,
          "inverted": false,
          "max_drawdown": -0.6447224743662084,
          "n_trades": 80,
          "n_valid": 271,
          "predictor": "vol_regime_v2_vix_realized_vol_2of2",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": 2.146435915882689,
          "sharpe_ci_upper": 10.756557365837104,
          "sharpe_ratio": 6.69645065242314,
          "strategy_cumulative_return": 5.332300630235795,
          "threshold": 0,
          "transaction_cost_bps": 10
        }
      ],
      "composite_scores": [
        {
          "auc": 0.5185496636327662,
          "avg_strategy_return": 0.00347093535458779,
          "balanced_accuracy": 0.512218045112782,
          "decision": "research_only",
          "feature_count": 17,
          "features": [
            "news_sentiment_mean_lag1",
            "fng_value_lag1",
            "sentiment_momentum_lag1",
            "sentiment_accel_lag1",
            "fng_change_1d_lag1",
            "fng_change_5d_lag1",
            "btc_bear_regime_lag1",
            "sentiment_momentum_x_bear_lag1",
            "fng_change_1d_x_bear_lag1",
            "funding_rate_x_bear_lag1",
            "vix_lag1",
            "vix_regime_score_lag1",
            "full_hybrid_index_score_lag1",
            "core_hybrid_index_score_lag1",
            "etf_net_inflow_usd_log1p_lag1",
            "usdkrw_gap_flag_lag1",
            "btc_taker_imbalance_zscore_30d_lag1"
          ],
          "folds": [
            {
              "auc": 0.46558704453441296,
              "feature_count": 17,
              "fold": 0,
              "hit_rate": 0.4222222222222222,
              "long_ratio": 0.08888888888888889,
              "n_test": 45,
              "strategy_sharpe": 0.21092545493666365,
              "test_end": "2025-09-11",
              "test_start": "2025-07-29",
              "train_end": "2025-07-21",
              "train_start": "2024-11-24"
            },
            {
              "auc": 0.522,
              "feature_count": 17,
              "fold": 1,
              "hit_rate": 0.4,
              "long_ratio": 0.044444444444444446,
              "n_test": 45,
              "strategy_sharpe": -0.6254389689805158,
              "test_end": "2025-10-11",
              "test_start": "2025-08-28",
              "train_end": "2025-08-20",
              "train_start": "2024-12-24"
            },
            {
              "auc": 0.5069124423963134,
              "feature_count": 17,
              "fold": 2,
              "hit_rate": 0.5777777777777777,
              "long_ratio": 0.24444444444444444,
              "n_test": 45,
              "strategy_sharpe": 0.6842769366863956,
              "test_end": "2025-11-10",
              "test_start": "2025-09-27",
              "train_end": "2025-09-19",
              "train_start": "2025-01-23"
            },
            {
              "auc": 0.7534562211981567,
              "feature_count": 17,
              "fold": 3,
              "hit_rate": 0.5777777777777777,
              "long_ratio": 0.7333333333333333,
              "n_test": 45,
              "strategy_sharpe": -0.14645867948397692,
              "test_end": "2025-12-10",
              "test_start": "2025-10-27",
              "train_end": "2025-10-19",
              "train_start": "2025-02-22"
            },
            {
              "auc": 0.45748987854251016,
              "feature_count": 17,
              "fold": 4,
              "hit_rate": 0.4444444444444444,
              "long_ratio": 0.022222222222222223,
              "n_test": 45,
              "strategy_sharpe": -1.002972630568592,
              "test_end": "2026-01-09",
              "test_start": "2025-11-26",
              "train_end": "2025-11-18",
              "train_start": "2025-03-24"
            },
            {
              "auc": 0.32921810699588483,
              "feature_count": 17,
              "fold": 5,
              "hit_rate": 0.4444444444444444,
              "long_ratio": 0.24444444444444444,
              "n_test": 45,
              "strategy_sharpe": 0.5002701940999891,
              "test_end": "2026-02-08",
              "test_start": "2025-12-26",
              "train_end": "2025-12-18",
              "train_start": "2025-04-23"
            },
            {
              "auc": 0.24485596707818932,
              "feature_count": 17,
              "fold": 6,
              "hit_rate": 0.24444444444444444,
              "long_ratio": 0.7555555555555555,
              "n_test": 45,
              "strategy_sharpe": -4.6236087479174435,
              "test_end": "2026-03-10",
              "test_start": "2026-01-25",
              "train_end": "2026-01-17",
              "train_start": "2025-05-23"
            },
            {
              "auc": 0.5672268907563025,
              "feature_count": 17,
              "fold": 7,
              "hit_rate": 0.5111111111111111,
              "long_ratio": 0.5777777777777777,
              "n_test": 45,
              "strategy_sharpe": -0.07905174028830962,
              "test_end": "2026-04-09",
              "test_start": "2026-02-24",
              "train_end": "2026-02-16",
              "train_start": "2025-06-22"
            },
            {
              "auc": 0.6994949494949495,
              "feature_count": 17,
              "fold": 8,
              "hit_rate": 0.7333333333333333,
              "long_ratio": 0.7333333333333333,
              "n_test": 45,
              "strategy_sharpe": 5.202033606813679,
              "test_end": "2026-05-11",
              "test_start": "2026-03-26",
              "train_end": "2026-03-18",
              "train_start": "2025-07-22"
            }
          ],
          "hit_rate": 0.519298245614035,
          "hit_rate_delta_vs_old_alpha": 0,
          "long_ratio": 0.3929824561403509,
          "n_oos": 285,
          "name": "old_alpha_set",
          "promotion_candidate": false,
          "promotion_checks": {
            "auc_ok": false,
            "hit_rate_delta_ok": false,
            "n_oos_ok": true,
            "sharpe_delta_ok": false,
            "top_sign_stability_ok": true
          },
          "sharpe_delta_vs_old_alpha": 0,
          "strategy_sharpe": 0.440310669972441,
          "top_sign_stability": 0.9259259259259259,
          "unstable_weight_features": [
            "sentiment_momentum_lag1",
            "news_sentiment_mean_lag1",
            "fng_change_5d_lag1",
            "sentiment_momentum_x_bear_lag1",
            "usdkrw_gap_flag_lag1"
          ],
          "weights": [
            {
              "abs_mean_coef": 0.601067228655079,
              "feature": "vix_lag1",
              "fold_count": 9,
              "mean_coef": 0.5929270279825921,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.5320128443332679,
              "feature": "fng_value_lag1",
              "fold_count": 9,
              "mean_coef": 0.5068813172851603,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.4628810605241914,
              "feature": "full_hybrid_index_score_lag1",
              "fold_count": 9,
              "mean_coef": -0.4628810605241914,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.4604347813076583,
              "feature": "core_hybrid_index_score_lag1",
              "fold_count": 9,
              "mean_coef": -0.39380048435733833,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.4132786577817521,
              "feature": "vix_regime_score_lag1",
              "fold_count": 9,
              "mean_coef": 0.4120259400799489,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.28154934895974065,
              "feature": "btc_bear_regime_lag1",
              "fold_count": 9,
              "mean_coef": -0.28154934895974065,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.24855049442452723,
              "feature": "fng_change_1d_x_bear_lag1",
              "fold_count": 9,
              "mean_coef": 0.24855049442452723,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.21625925132838633,
              "feature": "funding_rate_x_bear_lag1",
              "fold_count": 9,
              "mean_coef": 0.0791130917593447,
              "sign_stability": 0.7777777777777778
            },
            {
              "abs_mean_coef": 0.21158631377027928,
              "feature": "sentiment_momentum_lag1",
              "fold_count": 9,
              "mean_coef": 0.07600448884581831,
              "sign_stability": 0.5555555555555556
            },
            {
              "abs_mean_coef": 0.2094456471673442,
              "feature": "news_sentiment_mean_lag1",
              "fold_count": 9,
              "mean_coef": -0.09429731226427969,
              "sign_stability": 0.6666666666666666
            },
            {
              "abs_mean_coef": 0.2062884521437528,
              "feature": "sentiment_accel_lag1",
              "fold_count": 9,
              "mean_coef": -0.2062884521437528,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.1565589862478474,
              "feature": "btc_taker_imbalance_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": -0.1565589862478474,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.12784436528015847,
              "feature": "fng_change_1d_lag1",
              "fold_count": 9,
              "mean_coef": -0.12092526178528956,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.1270897145688307,
              "feature": "etf_net_inflow_usd_log1p_lag1",
              "fold_count": 9,
              "mean_coef": 0.1049939829644377,
              "sign_stability": 0.7777777777777778
            },
            {
              "abs_mean_coef": 0.09439038479052377,
              "feature": "fng_change_5d_lag1",
              "fold_count": 9,
              "mean_coef": 0.04643076428623635,
              "sign_stability": 0.5555555555555556
            },
            {
              "abs_mean_coef": 0.09319269257376844,
              "feature": "sentiment_momentum_x_bear_lag1",
              "fold_count": 9,
              "mean_coef": -0.000055283005516009056,
              "sign_stability": 0.5555555555555556
            },
            {
              "abs_mean_coef": 0,
              "feature": "usdkrw_gap_flag_lag1",
              "fold_count": 9,
              "mean_coef": 0,
              "sign_stability": 0
            }
          ]
        },
        {
          "auc": 0.5335377918480412,
          "avg_strategy_return": 0.005373170283821015,
          "balanced_accuracy": 0.5404135338345865,
          "decision": "research_only",
          "feature_count": 9,
          "features": [
            "funding_rate_zscore_30d_lag1",
            "long_short_ratio_zscore_30d_lag1",
            "binance_top10_up_ratio_7d_lag1",
            "binance_top10_ew_return_7d_lag1",
            "usdt_usdc_supply_change_7d_lag1",
            "usd_broad_index_change_7d_lag1",
            "usd_broad_index_zscore_30d_lag1",
            "us10y_change_7d_lag1",
            "nasdaq_return_7d_lag1"
          ],
          "folds": [
            {
              "auc": 0.4716599190283401,
              "feature_count": 9,
              "fold": 0,
              "hit_rate": 0.4888888888888889,
              "long_ratio": 0.6,
              "n_test": 45,
              "strategy_sharpe": -0.5349329656314528,
              "test_end": "2025-09-11",
              "test_start": "2025-07-29",
              "train_end": "2025-07-21",
              "train_start": "2024-11-24"
            },
            {
              "auc": 0.5900000000000001,
              "feature_count": 9,
              "fold": 1,
              "hit_rate": 0.6444444444444445,
              "long_ratio": 0.4666666666666667,
              "n_test": 45,
              "strategy_sharpe": 4.032847665243731,
              "test_end": "2025-10-11",
              "test_start": "2025-08-28",
              "train_end": "2025-08-20",
              "train_start": "2024-12-24"
            },
            {
              "auc": 0.40092165898617516,
              "feature_count": 9,
              "fold": 2,
              "hit_rate": 0.5777777777777777,
              "long_ratio": 0.3333333333333333,
              "n_test": 45,
              "strategy_sharpe": 2.259983208387666,
              "test_end": "2025-11-10",
              "test_start": "2025-09-27",
              "train_end": "2025-09-19",
              "train_start": "2025-01-23"
            },
            {
              "auc": 0.5138248847926268,
              "feature_count": 9,
              "fold": 3,
              "hit_rate": 0.5777777777777777,
              "long_ratio": 0.4222222222222222,
              "n_test": 45,
              "strategy_sharpe": 2.338809538848363,
              "test_end": "2025-12-10",
              "test_start": "2025-10-27",
              "train_end": "2025-10-19",
              "train_start": "2025-02-22"
            },
            {
              "auc": 0.5708502024291497,
              "feature_count": 9,
              "fold": 4,
              "hit_rate": 0.5555555555555556,
              "long_ratio": 0.6222222222222222,
              "n_test": 45,
              "strategy_sharpe": 2.6263681641858625,
              "test_end": "2026-01-09",
              "test_start": "2025-11-26",
              "train_end": "2025-11-18",
              "train_start": "2025-03-24"
            },
            {
              "auc": 0.7736625514403292,
              "feature_count": 9,
              "fold": 5,
              "hit_rate": 0.6888888888888889,
              "long_ratio": 0.6222222222222222,
              "n_test": 45,
              "strategy_sharpe": 0.27895058822088314,
              "test_end": "2026-02-08",
              "test_start": "2025-12-26",
              "train_end": "2025-12-18",
              "train_start": "2025-04-23"
            },
            {
              "auc": 0.4218106995884774,
              "feature_count": 9,
              "fold": 6,
              "hit_rate": 0.4222222222222222,
              "long_ratio": 0.6222222222222222,
              "n_test": 45,
              "strategy_sharpe": -1.898614861406718,
              "test_end": "2026-03-10",
              "test_start": "2026-01-25",
              "train_end": "2026-01-17",
              "train_start": "2025-05-23"
            },
            {
              "auc": 0.8340336134453781,
              "feature_count": 9,
              "fold": 7,
              "hit_rate": 0.5333333333333333,
              "long_ratio": 0.15555555555555556,
              "n_test": 45,
              "strategy_sharpe": -0.33404504813156016,
              "test_end": "2026-04-09",
              "test_start": "2026-02-24",
              "train_end": "2026-02-16",
              "train_start": "2025-06-22"
            },
            {
              "auc": 0.38383838383838387,
              "feature_count": 9,
              "fold": 8,
              "hit_rate": 0.35555555555555557,
              "long_ratio": 0.4,
              "n_test": 45,
              "strategy_sharpe": -1.6703657437690769,
              "test_end": "2026-05-11",
              "test_start": "2026-03-26",
              "train_end": "2026-03-18",
              "train_start": "2025-07-22"
            }
          ],
          "hit_rate": 0.5403508771929825,
          "hit_rate_delta_vs_old_alpha": 0.021052631578947434,
          "long_ratio": 0.4982456140350877,
          "n_oos": 285,
          "name": "new_features_only",
          "promotion_candidate": true,
          "promotion_checks": {
            "auc_ok": true,
            "hit_rate_delta_ok": true,
            "n_oos_ok": true,
            "sharpe_delta_ok": true,
            "top_sign_stability_ok": true
          },
          "sharpe_delta_vs_old_alpha": 0.24309358965525502,
          "strategy_sharpe": 0.683404259627696,
          "top_sign_stability": 1,
          "unstable_weight_features": [
            "usdt_usdc_supply_change_7d_lag1",
            "binance_top10_ew_return_7d_lag1",
            "funding_rate_zscore_30d_lag1"
          ],
          "weights": [
            {
              "abs_mean_coef": 0.9057830306279026,
              "feature": "usd_broad_index_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": 0.9057830306279026,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.6525992510437145,
              "feature": "usd_broad_index_change_7d_lag1",
              "fold_count": 9,
              "mean_coef": -0.6525992510437145,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.4567482664885849,
              "feature": "nasdaq_return_7d_lag1",
              "fold_count": 9,
              "mean_coef": 0.4567482664885849,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.26694746995498086,
              "feature": "binance_top10_up_ratio_7d_lag1",
              "fold_count": 9,
              "mean_coef": -0.2668418955246269,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.26521797233890093,
              "feature": "us10y_change_7d_lag1",
              "fold_count": 9,
              "mean_coef": -0.26521797233890093,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.227681829966916,
              "feature": "usdt_usdc_supply_change_7d_lag1",
              "fold_count": 9,
              "mean_coef": -0.11545295732798058,
              "sign_stability": 0.6666666666666666
            },
            {
              "abs_mean_coef": 0.17552558092047807,
              "feature": "binance_top10_ew_return_7d_lag1",
              "fold_count": 9,
              "mean_coef": -0.009452324720794845,
              "sign_stability": 0.4444444444444444
            },
            {
              "abs_mean_coef": 0.1258772047657047,
              "feature": "long_short_ratio_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": 0.08865255348485229,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.107442571755451,
              "feature": "funding_rate_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": -0.01169346999854742,
              "sign_stability": 0.5555555555555556
            }
          ]
        },
        {
          "auc": 0.5532746339533042,
          "avg_strategy_return": 0.008164482406426725,
          "balanced_accuracy": 0.5507518796992481,
          "decision": "research_only",
          "feature_count": 26,
          "features": [
            "news_sentiment_mean_lag1",
            "fng_value_lag1",
            "sentiment_momentum_lag1",
            "sentiment_accel_lag1",
            "fng_change_1d_lag1",
            "fng_change_5d_lag1",
            "btc_bear_regime_lag1",
            "sentiment_momentum_x_bear_lag1",
            "fng_change_1d_x_bear_lag1",
            "funding_rate_x_bear_lag1",
            "vix_lag1",
            "vix_regime_score_lag1",
            "full_hybrid_index_score_lag1",
            "core_hybrid_index_score_lag1",
            "etf_net_inflow_usd_log1p_lag1",
            "usdkrw_gap_flag_lag1",
            "btc_taker_imbalance_zscore_30d_lag1",
            "funding_rate_zscore_30d_lag1",
            "long_short_ratio_zscore_30d_lag1",
            "binance_top10_up_ratio_7d_lag1",
            "binance_top10_ew_return_7d_lag1",
            "usdt_usdc_supply_change_7d_lag1",
            "usd_broad_index_change_7d_lag1",
            "usd_broad_index_zscore_30d_lag1",
            "us10y_change_7d_lag1",
            "nasdaq_return_7d_lag1"
          ],
          "folds": [
            {
              "auc": 0.5991902834008097,
              "feature_count": 26,
              "fold": 0,
              "hit_rate": 0.6,
              "long_ratio": 0.4888888888888889,
              "n_test": 45,
              "strategy_sharpe": 0.968848105631034,
              "test_end": "2025-09-11",
              "test_start": "2025-07-29",
              "train_end": "2025-07-21",
              "train_start": "2024-11-24"
            },
            {
              "auc": 0.392,
              "feature_count": 26,
              "fold": 1,
              "hit_rate": 0.4666666666666667,
              "long_ratio": 0.06666666666666667,
              "n_test": 45,
              "strategy_sharpe": -0.0870665145035143,
              "test_end": "2025-10-11",
              "test_start": "2025-08-28",
              "train_end": "2025-08-20",
              "train_start": "2024-12-24"
            },
            {
              "auc": 0.467741935483871,
              "feature_count": 26,
              "fold": 2,
              "hit_rate": 0.4888888888888889,
              "long_ratio": 0.4222222222222222,
              "n_test": 45,
              "strategy_sharpe": 0.3192540568050804,
              "test_end": "2025-11-10",
              "test_start": "2025-09-27",
              "train_end": "2025-09-19",
              "train_start": "2025-01-23"
            },
            {
              "auc": 0.6221198156682028,
              "feature_count": 26,
              "fold": 3,
              "hit_rate": 0.5111111111111111,
              "long_ratio": 0.5333333333333333,
              "n_test": 45,
              "strategy_sharpe": 1.3007107329736258,
              "test_end": "2025-12-10",
              "test_start": "2025-10-27",
              "train_end": "2025-10-19",
              "train_start": "2025-02-22"
            },
            {
              "auc": 0.52834008097166,
              "feature_count": 26,
              "fold": 4,
              "hit_rate": 0.4666666666666667,
              "long_ratio": 0.044444444444444446,
              "n_test": 45,
              "strategy_sharpe": -0.41971698792330064,
              "test_end": "2026-01-09",
              "test_start": "2025-11-26",
              "train_end": "2025-11-18",
              "train_start": "2025-03-24"
            },
            {
              "auc": 0.6275720164609053,
              "feature_count": 26,
              "fold": 5,
              "hit_rate": 0.6666666666666666,
              "long_ratio": 0.37777777777777777,
              "n_test": 45,
              "strategy_sharpe": 2.2232706430947404,
              "test_end": "2026-02-08",
              "test_start": "2025-12-26",
              "train_end": "2025-12-18",
              "train_start": "2025-04-23"
            },
            {
              "auc": 0.36419753086419754,
              "feature_count": 26,
              "fold": 6,
              "hit_rate": 0.4222222222222222,
              "long_ratio": 0.7111111111111111,
              "n_test": 45,
              "strategy_sharpe": 0.18543486274380924,
              "test_end": "2026-03-10",
              "test_start": "2026-01-25",
              "train_end": "2026-01-17",
              "train_start": "2025-05-23"
            },
            {
              "auc": 0.8445378151260504,
              "feature_count": 26,
              "fold": 7,
              "hit_rate": 0.5555555555555556,
              "long_ratio": 0.2222222222222222,
              "n_test": 45,
              "strategy_sharpe": 0.3976101908476659,
              "test_end": "2026-04-09",
              "test_start": "2026-02-24",
              "train_end": "2026-02-16",
              "train_start": "2025-06-22"
            },
            {
              "auc": 0.4823232323232323,
              "feature_count": 26,
              "fold": 8,
              "hit_rate": 0.5111111111111111,
              "long_ratio": 0.4222222222222222,
              "n_test": 45,
              "strategy_sharpe": 0.7216027660740949,
              "test_end": "2026-05-11",
              "test_start": "2026-03-26",
              "train_end": "2026-03-18",
              "train_start": "2025-07-22"
            }
          ],
          "hit_rate": 0.5578947368421052,
          "hit_rate_delta_vs_old_alpha": 0.038596491228070184,
          "long_ratio": 0.3894736842105263,
          "n_oos": 285,
          "name": "old_plus_new",
          "promotion_candidate": true,
          "promotion_checks": {
            "auc_ok": true,
            "hit_rate_delta_ok": true,
            "n_oos_ok": true,
            "sharpe_delta_ok": true,
            "top_sign_stability_ok": true
          },
          "sharpe_delta_vs_old_alpha": 0.604278536284599,
          "strategy_sharpe": 1.04458920625704,
          "top_sign_stability": 1,
          "unstable_weight_features": [
            "vix_regime_score_lag1",
            "sentiment_momentum_lag1",
            "usdt_usdc_supply_change_7d_lag1",
            "news_sentiment_mean_lag1",
            "funding_rate_zscore_30d_lag1",
            "fng_change_5d_lag1",
            "etf_net_inflow_usd_log1p_lag1",
            "fng_change_1d_lag1",
            "usdkrw_gap_flag_lag1"
          ],
          "weights": [
            {
              "abs_mean_coef": 0.8653297131623456,
              "feature": "usd_broad_index_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": 0.8653297131623456,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.7213554577447004,
              "feature": "nasdaq_return_7d_lag1",
              "fold_count": 9,
              "mean_coef": 0.7213554577447004,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.5255444893685337,
              "feature": "vix_lag1",
              "fold_count": 9,
              "mean_coef": 0.5255444893685337,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.5118397840724522,
              "feature": "fng_value_lag1",
              "fold_count": 9,
              "mean_coef": 0.46314915889380626,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.48809489993407723,
              "feature": "usd_broad_index_change_7d_lag1",
              "fold_count": 9,
              "mean_coef": -0.4393112356575307,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.4065694789988006,
              "feature": "core_hybrid_index_score_lag1",
              "fold_count": 9,
              "mean_coef": -0.3612344079524017,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.40300519367327997,
              "feature": "us10y_change_7d_lag1",
              "fold_count": 9,
              "mean_coef": -0.40300519367327997,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.40264953805528,
              "feature": "full_hybrid_index_score_lag1",
              "fold_count": 9,
              "mean_coef": -0.40264953805528,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.3842996379606027,
              "feature": "vix_regime_score_lag1",
              "fold_count": 9,
              "mean_coef": 0.05750162711419767,
              "sign_stability": 0.4444444444444444
            },
            {
              "abs_mean_coef": 0.28606341933824175,
              "feature": "sentiment_momentum_lag1",
              "fold_count": 9,
              "mean_coef": 0.21789219226473674,
              "sign_stability": 0.5555555555555556
            },
            {
              "abs_mean_coef": 0.2823401535429023,
              "feature": "funding_rate_x_bear_lag1",
              "fold_count": 9,
              "mean_coef": 0.18633142235628253,
              "sign_stability": 0.7777777777777778
            },
            {
              "abs_mean_coef": 0.26728723082578904,
              "feature": "fng_change_1d_x_bear_lag1",
              "fold_count": 9,
              "mean_coef": 0.26728723082578904,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.24130451167342296,
              "feature": "long_short_ratio_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": 0.24130451167342296,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.2379958890890047,
              "feature": "usdt_usdc_supply_change_7d_lag1",
              "fold_count": 9,
              "mean_coef": 0.031649718301009426,
              "sign_stability": 0.4444444444444444
            },
            {
              "abs_mean_coef": 0.23440886938964992,
              "feature": "sentiment_accel_lag1",
              "fold_count": 9,
              "mean_coef": -0.23440886938964992,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.21927419810453264,
              "feature": "binance_top10_up_ratio_7d_lag1",
              "fold_count": 9,
              "mean_coef": -0.16542872465193714,
              "sign_stability": 0.7777777777777778
            },
            {
              "abs_mean_coef": 0.20652629597205904,
              "feature": "btc_taker_imbalance_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": -0.20652629597205904,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.20461524654449978,
              "feature": "binance_top10_ew_return_7d_lag1",
              "fold_count": 9,
              "mean_coef": 0.09720380803082951,
              "sign_stability": 0.7777777777777778
            },
            {
              "abs_mean_coef": 0.20205804764742682,
              "feature": "news_sentiment_mean_lag1",
              "fold_count": 9,
              "mean_coef": -0.07739073538576265,
              "sign_stability": 0.5555555555555556
            },
            {
              "abs_mean_coef": 0.1657718369738361,
              "feature": "btc_bear_regime_lag1",
              "fold_count": 9,
              "mean_coef": -0.16247475925943883,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.15188135520209814,
              "feature": "funding_rate_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": 0.026044776325053445,
              "sign_stability": 0.6666666666666666
            },
            {
              "abs_mean_coef": 0.127502689579171,
              "feature": "sentiment_momentum_x_bear_lag1",
              "fold_count": 9,
              "mean_coef": -0.12747778461746628,
              "sign_stability": 0.8888888888888888
            },
            {
              "abs_mean_coef": 0.12267728893600117,
              "feature": "fng_change_5d_lag1",
              "fold_count": 9,
              "mean_coef": 0.03770267686558953,
              "sign_stability": 0.6666666666666666
            },
            {
              "abs_mean_coef": 0.11519949990548099,
              "feature": "etf_net_inflow_usd_log1p_lag1",
              "fold_count": 9,
              "mean_coef": 0.0862482398902931,
              "sign_stability": 0.5555555555555556
            },
            {
              "abs_mean_coef": 0.10833939252554042,
              "feature": "fng_change_1d_lag1",
              "fold_count": 9,
              "mean_coef": -0.03947563183756721,
              "sign_stability": 0.6666666666666666
            },
            {
              "abs_mean_coef": 0,
              "feature": "usdkrw_gap_flag_lag1",
              "fold_count": 9,
              "mean_coef": 0,
              "sign_stability": 0
            }
          ]
        },
        {
          "auc": 0.5252275425405619,
          "avg_strategy_return": 0.002008698427358158,
          "balanced_accuracy": 0.512687969924812,
          "decision": "research_only",
          "feature_count": 9,
          "features": [
            "nasdaq_return_7d_lag1",
            "us10y_change_7d_lag1",
            "usd_broad_index_zscore_30d_lag1",
            "usdt_usdc_supply_change_7d_lag1",
            "btc_taker_imbalance_zscore_30d_lag1",
            "binance_top10_ew_return_7d_lag1",
            "funding_rate_zscore_30d_lag1",
            "long_short_ratio_zscore_30d_lag1",
            "vix_regime_score_lag1"
          ],
          "folds": [
            {
              "auc": 0.6943319838056679,
              "feature_count": 9,
              "fold": 0,
              "hit_rate": 0.5777777777777777,
              "long_ratio": 0.6444444444444445,
              "n_test": 45,
              "strategy_sharpe": 0.922597742174915,
              "test_end": "2025-09-11",
              "test_start": "2025-07-29",
              "train_end": "2025-07-21",
              "train_start": "2024-11-24"
            },
            {
              "auc": 0.458,
              "feature_count": 9,
              "fold": 1,
              "hit_rate": 0.4666666666666667,
              "long_ratio": 0.5111111111111111,
              "n_test": 45,
              "strategy_sharpe": 0.020944210233797316,
              "test_end": "2025-10-11",
              "test_start": "2025-08-28",
              "train_end": "2025-08-20",
              "train_start": "2024-12-24"
            },
            {
              "auc": 0.4930875576036866,
              "feature_count": 9,
              "fold": 2,
              "hit_rate": 0.4,
              "long_ratio": 0.8666666666666667,
              "n_test": 45,
              "strategy_sharpe": -1.0352431686148371,
              "test_end": "2025-11-10",
              "test_start": "2025-09-27",
              "train_end": "2025-09-19",
              "train_start": "2025-01-23"
            },
            {
              "auc": 0.4907834101382489,
              "feature_count": 9,
              "fold": 3,
              "hit_rate": 0.4222222222222222,
              "long_ratio": 0.6222222222222222,
              "n_test": 45,
              "strategy_sharpe": -0.42590659261207237,
              "test_end": "2025-12-10",
              "test_start": "2025-10-27",
              "train_end": "2025-10-19",
              "train_start": "2025-02-22"
            },
            {
              "auc": 0.6093117408906882,
              "feature_count": 9,
              "fold": 4,
              "hit_rate": 0.5333333333333333,
              "long_ratio": 0.24444444444444444,
              "n_test": 45,
              "strategy_sharpe": 0.6580969927108694,
              "test_end": "2026-01-09",
              "test_start": "2025-11-26",
              "train_end": "2025-11-18",
              "train_start": "2025-03-24"
            },
            {
              "auc": 0.7139917695473251,
              "feature_count": 9,
              "fold": 5,
              "hit_rate": 0.6222222222222222,
              "long_ratio": 0.5555555555555556,
              "n_test": 45,
              "strategy_sharpe": 0.790769985635293,
              "test_end": "2026-02-08",
              "test_start": "2025-12-26",
              "train_end": "2025-12-18",
              "train_start": "2025-04-23"
            },
            {
              "auc": 0.4156378600823046,
              "feature_count": 9,
              "fold": 6,
              "hit_rate": 0.4888888888888889,
              "long_ratio": 0.3333333333333333,
              "n_test": 45,
              "strategy_sharpe": 0.857374108472942,
              "test_end": "2026-03-10",
              "test_start": "2026-01-25",
              "train_end": "2026-01-17",
              "train_start": "2025-05-23"
            },
            {
              "auc": 0.7836134453781513,
              "feature_count": 9,
              "fold": 7,
              "hit_rate": 0.4888888888888889,
              "long_ratio": 0.1111111111111111,
              "n_test": 45,
              "strategy_sharpe": -0.2870594974338541,
              "test_end": "2026-04-09",
              "test_start": "2026-02-24",
              "train_end": "2026-02-16",
              "train_start": "2025-06-22"
            },
            {
              "auc": 0.2904040404040404,
              "feature_count": 9,
              "fold": 8,
              "hit_rate": 0.4,
              "long_ratio": 0.5333333333333333,
              "n_test": 45,
              "strategy_sharpe": -1.1170025327475472,
              "test_end": "2026-05-11",
              "test_start": "2026-03-26",
              "train_end": "2026-03-18",
              "train_start": "2025-07-22"
            }
          ],
          "hit_rate": 0.512280701754386,
          "hit_rate_delta_vs_old_alpha": -0.007017543859649034,
          "long_ratio": 0.5052631578947369,
          "n_oos": 285,
          "name": "macro_liquidity_risk",
          "promotion_candidate": false,
          "promotion_checks": {
            "auc_ok": false,
            "hit_rate_delta_ok": false,
            "n_oos_ok": true,
            "sharpe_delta_ok": false,
            "top_sign_stability_ok": true
          },
          "sharpe_delta_vs_old_alpha": -0.18580982658560385,
          "strategy_sharpe": 0.25450084338683715,
          "top_sign_stability": 0.8518518518518517,
          "unstable_weight_features": [
            "vix_regime_score_lag1",
            "funding_rate_zscore_30d_lag1"
          ],
          "weights": [
            {
              "abs_mean_coef": 0.6952900516692164,
              "feature": "nasdaq_return_7d_lag1",
              "fold_count": 9,
              "mean_coef": 0.6952900516692164,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.5070663683817858,
              "feature": "vix_regime_score_lag1",
              "fold_count": 9,
              "mean_coef": -0.3425710751683486,
              "sign_stability": 0.5555555555555556
            },
            {
              "abs_mean_coef": 0.44516712276601467,
              "feature": "usd_broad_index_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": 0.44516712276601467,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.35036765621134963,
              "feature": "us10y_change_7d_lag1",
              "fold_count": 9,
              "mean_coef": -0.35036765621134963,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.22196519288952848,
              "feature": "btc_taker_imbalance_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": -0.22196519288952848,
              "sign_stability": 1
            },
            {
              "abs_mean_coef": 0.20735766197874408,
              "feature": "usdt_usdc_supply_change_7d_lag1",
              "fold_count": 9,
              "mean_coef": -0.11691522191128073,
              "sign_stability": 0.7777777777777778
            },
            {
              "abs_mean_coef": 0.18341414669177014,
              "feature": "binance_top10_ew_return_7d_lag1",
              "fold_count": 9,
              "mean_coef": -0.15279078835467977,
              "sign_stability": 0.7777777777777778
            },
            {
              "abs_mean_coef": 0.14171049737528663,
              "feature": "funding_rate_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": -0.0035156831564195756,
              "sign_stability": 0.5555555555555556
            },
            {
              "abs_mean_coef": 0.1389923190966683,
              "feature": "long_short_ratio_zscore_30d_lag1",
              "fold_count": 9,
              "mean_coef": 0.11807497091218787,
              "sign_stability": 0.8888888888888888
            }
          ]
        }
      ],
      "hit_rates": [
        {
          "adaptive_hit_rate": 0.498046875,
          "adaptive_sharpe": 0.05340181075300806,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9851576994434137,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.5432937181663836,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 114,
          "fp": 155,
          "granger_significant": true,
          "hit_rate": 0.4934086629001883,
          "hit_rate_ci_lower": 0.4256120527306968,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5669020715630885,
          "hit_rate_lift_vs_best_baseline": -0.14496772086364934,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "news_sentiment_mean"
          ],
          "n_valid": 531,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 1,
              "paired_rows": 531,
              "signal_rows": 531
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 19,
              "paired_rows": 512,
              "signal_rows": 531
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 193,
              "signal_rows": 531
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 3,
              "paired_rows": 528,
              "signal_rows": 531
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 260,
              "paired_rows": 271,
              "signal_rows": 531
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0027384087341468973,
            "avg_return_when_correct": 0.0008691499700451832,
            "avg_return_when_wrong": -0.006252090446036581,
            "avg_strategy_return": -0.0017669422960902897,
            "correct_count": 262,
            "exposure_ratio": 0.5932203389830508,
            "median_return_when_correct": 0.00823969199898314,
            "median_return_when_wrong": -0.007758351756881866,
            "payoff_ratio": 0.13901749783485104,
            "turnover_ratio": 0.18867924528301888,
            "wrong_count": 269
          },
          "precision": 0.5079365079365079,
          "predictor": "news_sentiment_mean_lag1",
          "pvalue_vs_baselines": 1,
          "recall": 0.583941605839416,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.35592347423499,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 2.5535943580181466,
          "sharpe_lift_vs_best_baseline": -7.612552401685777,
          "sharpe_ok": false,
          "stability": 0.929402690815586,
          "stability_ok": true,
          "strategy_sharpe": -0.9161017492626374,
          "threshold": 0,
          "tn": 102,
          "tp": 160,
          "vol_regime_hit_rate_lift": -0.057727700736175336,
          "vol_regime_sharpe_lift": -3.46520669627873
        },
        {
          "adaptive_hit_rate": 0.517578125,
          "adaptive_sharpe": 0.3816547883542763,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9851576994434137,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.4530612244897959,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 163,
          "fp": 105,
          "granger_significant": true,
          "hit_rate": 0.4952919020715631,
          "hit_rate_ci_lower": 0.4086629001883239,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5875706214689266,
          "hit_rate_lift_vs_best_baseline": -0.14308448169227456,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "fng_value"
          ],
          "n_valid": 531,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 1,
              "paired_rows": 531,
              "signal_rows": 531
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 19,
              "paired_rows": 512,
              "signal_rows": 531
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 193,
              "signal_rows": 531
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 3,
              "paired_rows": 528,
              "signal_rows": 531
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 260,
              "paired_rows": 271,
              "signal_rows": 531
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0027384087341468973,
            "avg_return_when_correct": -0.013454521400163908,
            "avg_return_when_wrong": 0.007777776456757858,
            "avg_strategy_return": -0.00044314942602484094,
            "correct_count": 263,
            "exposure_ratio": 0.4067796610169492,
            "median_return_when_correct": -0.005928578395241135,
            "median_return_when_wrong": 0.010577094904444403,
            "payoff_ratio": 1.7298673309739714,
            "turnover_ratio": 0.0660377358490566,
            "wrong_count": 268
          },
          "precision": 0.5138888888888888,
          "predictor": "fng_value_lag1",
          "pvalue_vs_baselines": 0.999000999000999,
          "recall": 0.4051094890510949,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.629955811488231,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 3.236570071889144,
          "sharpe_lift_vs_best_baseline": -6.980520889899619,
          "sharpe_ok": false,
          "stability": 0.8301135815724086,
          "stability_ok": true,
          "strategy_sharpe": -0.2840702374764789,
          "threshold": 50,
          "tn": 152,
          "tp": 111,
          "vol_regime_hit_rate_lift": -0.05584446156480055,
          "vol_regime_sharpe_lift": -2.833175184492571
        },
        {
          "adaptive_hit_rate": 0.4931237721021611,
          "adaptive_sharpe": -1.2974376297792511,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9795918367346939,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.5202952029520295,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 130,
          "fp": 130,
          "granger_significant": true,
          "hit_rate": 0.5075757575757576,
          "hit_rate_ci_lower": 0.4640151515151515,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5511363636363636,
          "hit_rate_lift_vs_best_baseline": -0.13080062618808008,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "news_sentiment_mean"
          ],
          "n_valid": 528,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 4,
              "paired_rows": 528,
              "signal_rows": 528
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 16,
              "paired_rows": 512,
              "signal_rows": 528
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 190,
              "signal_rows": 528
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 2,
              "paired_rows": 526,
              "signal_rows": 528
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 257,
              "paired_rows": 271,
              "signal_rows": 528
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.002942173033519209,
            "avg_return_when_correct": -0.0059996674484498755,
            "avg_return_when_wrong": 0.00020939813264009201,
            "avg_strategy_return": -0.0032593596751031018,
            "correct_count": 268,
            "exposure_ratio": 0.5132575757575758,
            "median_return_when_correct": 0.0016378543714665236,
            "median_return_when_wrong": -0.000026833762942241046,
            "payoff_ratio": 28.65196252137523,
            "turnover_ratio": 0.3187855787476281,
            "wrong_count": 260
          },
          "precision": 0.5202952029520295,
          "predictor": "sentiment_momentum_lag1",
          "pvalue_vs_baselines": 0.991008991008991,
          "recall": 0.5202952029520295,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.128165123437198,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 1.2041837920210858,
          "sharpe_lift_vs_best_baseline": -8.417309300587316,
          "sharpe_ok": false,
          "stability": 0.9557294316956166,
          "stability_ok": true,
          "strategy_sharpe": -1.7208586481641754,
          "threshold": 0,
          "tn": 127,
          "tp": 141,
          "vol_regime_hit_rate_lift": -0.04356060606060608,
          "vol_regime_sharpe_lift": -4.269963595180268
        },
        {
          "adaptive_hit_rate": 0.5264187866927593,
          "adaptive_sharpe": 0.3204297773357912,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9833024118738405,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.5267034990791898,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 130,
          "fp": 127,
          "granger_significant": null,
          "hit_rate": 0.5150943396226415,
          "hit_rate_ci_lower": 0.48297169811320756,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5471698113207547,
          "hit_rate_lift_vs_best_baseline": -0.12328204414119615,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "news_sentiment_mean"
          ],
          "n_valid": 530,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 2,
              "paired_rows": 530,
              "signal_rows": 530
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 18,
              "paired_rows": 512,
              "signal_rows": 530
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 192,
              "signal_rows": 530
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 2,
              "paired_rows": 528,
              "signal_rows": 530
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 259,
              "paired_rows": 271,
              "signal_rows": 530
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.00280014060287494,
            "avg_return_when_correct": -0.0004437044827657842,
            "avg_return_when_wrong": -0.005303280917232137,
            "avg_strategy_return": -0.0024133188823591157,
            "correct_count": 273,
            "exposure_ratio": 0.5094339622641509,
            "median_return_when_correct": 0.003373762238533501,
            "median_return_when_wrong": 0.0005944899225103217,
            "payoff_ratio": 0.08366603423251438,
            "turnover_ratio": 0.5652173913043478,
            "wrong_count": 257
          },
          "precision": 0.5296296296296297,
          "predictor": "sentiment_accel_lag1",
          "pvalue_vs_baselines": 0.987012987012987,
          "recall": 0.5238095238095238,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.8348981586781594,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 1.8973213889346896,
          "sharpe_lift_vs_best_baseline": -7.845025251947137,
          "sharpe_ok": false,
          "stability": 0.9548916681232292,
          "stability_ok": true,
          "strategy_sharpe": -1.148574599523997,
          "threshold": 0,
          "tn": 130,
          "tp": 143,
          "vol_regime_hit_rate_lift": -0.03604202401372214,
          "vol_regime_sharpe_lift": -3.6976795465400896
        },
        {
          "adaptive_hit_rate": 0.4755381604696673,
          "adaptive_sharpe": -1.2597301485488552,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9833024118738405,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.4728682170542636,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 151,
          "fp": 121,
          "granger_significant": false,
          "hit_rate": 0.4867924528301887,
          "hit_rate_ci_lower": 0.4509433962264151,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5207547169811321,
          "hit_rate_lift_vs_best_baseline": -0.15158393093364897,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "fng_value"
          ],
          "n_valid": 530,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 2,
              "paired_rows": 530,
              "signal_rows": 530
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 18,
              "paired_rows": 512,
              "signal_rows": 530
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 192,
              "signal_rows": 530
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 2,
              "paired_rows": 528,
              "signal_rows": 530
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 259,
              "paired_rows": 271,
              "signal_rows": 530
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.00280014060287494,
            "avg_return_when_correct": -0.00678300978864965,
            "avg_return_when_wrong": 0.000977727963043717,
            "avg_strategy_return": -0.0028249643946618164,
            "correct_count": 258,
            "exposure_ratio": 0.45849056603773586,
            "median_return_when_correct": -0.0024891840796944648,
            "median_return_when_wrong": 0.005648804669766493,
            "payoff_ratio": 6.93752254720607,
            "turnover_ratio": 0.5822306238185255,
            "wrong_count": 272
          },
          "precision": 0.5020576131687243,
          "predictor": "fng_change_1d_lag1",
          "pvalue_vs_baselines": 1,
          "recall": 0.4468864468864469,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.135645477442821,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 1.3981530283950194,
          "sharpe_lift_vs_best_baseline": -8.21911741148517,
          "sharpe_ok": false,
          "stability": 0.9320089633474474,
          "stability_ok": true,
          "strategy_sharpe": -1.5226667590620302,
          "threshold": 0,
          "tn": 136,
          "tp": 122,
          "vol_regime_hit_rate_lift": -0.06434391080617496,
          "vol_regime_sharpe_lift": -4.071771706078122
        },
        {
          "adaptive_hit_rate": 0.514792899408284,
          "adaptive_sharpe": 0.2287934064669688,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9758812615955473,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.49708737864077673,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 141,
          "fp": 118,
          "granger_significant": null,
          "hit_rate": 0.5076045627376425,
          "hit_rate_ci_lower": 0.45817490494296575,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5551330798479087,
          "hit_rate_lift_vs_best_baseline": -0.1307718210261951,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "fng_value"
          ],
          "n_valid": 526,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 6,
              "paired_rows": 526,
              "signal_rows": 526
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 14,
              "paired_rows": 512,
              "signal_rows": 526
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 188,
              "signal_rows": 526
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 4,
              "paired_rows": 524,
              "signal_rows": 526
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 255,
              "paired_rows": 271,
              "signal_rows": 526
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.003023038205404219,
            "avg_return_when_correct": -0.008804972995944212,
            "avg_return_when_wrong": 0.0029374891655385535,
            "avg_strategy_return": -0.0017887815165622992,
            "correct_count": 267,
            "exposure_ratio": 0.467680608365019,
            "median_return_when_correct": -0.0026316055668808014,
            "median_return_when_wrong": 0.004944002342739725,
            "payoff_ratio": 2.99744867121235,
            "turnover_ratio": 0.2819047619047619,
            "wrong_count": 259
          },
          "precision": 0.5203252032520326,
          "predictor": "fng_change_5d_lag1",
          "pvalue_vs_baselines": 0.98001998001998,
          "recall": 0.4758364312267658,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.6380357894604476,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 2.324202921912707,
          "sharpe_lift_vs_best_baseline": -7.655544263163037,
          "sharpe_ok": false,
          "stability": 0.9061583855226919,
          "stability_ok": true,
          "strategy_sharpe": -0.959093610739897,
          "threshold": 0,
          "tn": 139,
          "tp": 128,
          "vol_regime_hit_rate_lift": -0.04353180089872111,
          "vol_regime_sharpe_lift": -3.5081985577559895
        },
        {
          "adaptive_hit_rate": 0.5,
          "adaptive_sharpe": -0.8892807496659487,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9851576994434137,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.5423143350604491,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 117,
          "fp": 148,
          "granger_significant": null,
          "hit_rate": 0.5009416195856874,
          "hit_rate_ci_lower": 0.4199623352165725,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5876177024482109,
          "hit_rate_lift_vs_best_baseline": -0.13743476417815026,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": true,
          "masked_cells": 54,
          "masked_denominator": 54978,
          "masked_ratio": 0.0009822110662446796,
          "masked_ratio_ok": true,
          "masked_ratio_source": "global",
          "masked_source_columns": [],
          "n_valid": 531,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 1,
              "paired_rows": 531,
              "signal_rows": 531
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 19,
              "paired_rows": 512,
              "signal_rows": 531
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 193,
              "signal_rows": 531
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 3,
              "paired_rows": 528,
              "signal_rows": 531
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 260,
              "paired_rows": 271,
              "signal_rows": 531
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0027384087341468973,
            "avg_return_when_correct": 0.0001082707934859308,
            "avg_return_when_wrong": -0.005595830448676455,
            "avg_strategy_return": -0.0009338639300149566,
            "correct_count": 266,
            "exposure_ratio": 0.5743879472693032,
            "median_return_when_correct": 0.007755290879113886,
            "median_return_when_wrong": -0.005920493824102313,
            "payoff_ratio": 0.01934847641989213,
            "turnover_ratio": 0.03207547169811321,
            "wrong_count": 265
          },
          "precision": 0.5147540983606558,
          "predictor": "btc_bear_regime_lag1",
          "pvalue_vs_baselines": 1,
          "recall": 0.572992700729927,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.9924425047156005,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 3.0857224787019106,
          "sharpe_lift_vs_best_baseline": -7.177138376258738,
          "sharpe_ok": false,
          "stability": 0.9399931416814087,
          "stability_ok": true,
          "strategy_sharpe": -0.48068772383559855,
          "threshold": 0.5,
          "tn": 109,
          "tp": 157,
          "vol_regime_hit_rate_lift": -0.050194744050676254,
          "vol_regime_sharpe_lift": -3.029792670851691
        },
        {
          "adaptive_hit_rate": 0.5068762278978389,
          "adaptive_sharpe": 0.5138759318303956,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9795918367346939,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.32727272727272727,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 208,
          "fp": 51,
          "granger_significant": null,
          "hit_rate": 0.509469696969697,
          "hit_rate_ci_lower": 0.4337121212121212,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.579592803030303,
          "hit_rate_lift_vs_best_baseline": -0.12890668679414063,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "news_sentiment_mean"
          ],
          "n_valid": 528,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 4,
              "paired_rows": 528,
              "signal_rows": 528
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 16,
              "paired_rows": 512,
              "signal_rows": 528
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 190,
              "signal_rows": 528
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 2,
              "paired_rows": 526,
              "signal_rows": 528
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 257,
              "paired_rows": 271,
              "signal_rows": 528
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.002942173033519209,
            "avg_return_when_correct": -0.026299718080951582,
            "avg_return_when_wrong": 0.021317207730030246,
            "avg_strategy_return": -0.0008109251168474783,
            "correct_count": 269,
            "exposure_ratio": 0.2159090909090909,
            "median_return_when_correct": -0.02307274483424422,
            "median_return_when_wrong": 0.022555892815549053,
            "payoff_ratio": 1.2337318477176686,
            "turnover_ratio": 0.1650853889943074,
            "wrong_count": 259
          },
          "precision": 0.5526315789473685,
          "predictor": "sentiment_momentum_x_bear_lag1",
          "pvalue_vs_baselines": 0.9660339660339661,
          "recall": 0.23247232472324722,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.052195658334736,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 2.5575820387781407,
          "sharpe_lift_vs_best_baseline": -7.287549838656998,
          "sharpe_ok": false,
          "stability": 0.906074128901406,
          "stability_ok": true,
          "strategy_sharpe": -0.5910991862338583,
          "threshold": 0,
          "tn": 206,
          "tp": 63,
          "vol_regime_hit_rate_lift": -0.04166666666666663,
          "vol_regime_sharpe_lift": -3.140204133249951
        },
        {
          "adaptive_hit_rate": 0.5088062622309197,
          "adaptive_sharpe": 0.4459515652329753,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9833024118738405,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.3,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 216,
          "fp": 50,
          "granger_significant": null,
          "hit_rate": 0.4981132075471698,
          "hit_rate_ci_lower": 0.4263679245283019,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5679245283018868,
          "hit_rate_lift_vs_best_baseline": -0.14026317621666784,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "fng_value"
          ],
          "n_valid": 530,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 2,
              "paired_rows": 530,
              "signal_rows": 530
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 18,
              "paired_rows": 512,
              "signal_rows": 530
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 192,
              "signal_rows": 530
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 2,
              "paired_rows": 528,
              "signal_rows": 530
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 259,
              "paired_rows": 271,
              "signal_rows": 530
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.00280014060287494,
            "avg_return_when_correct": -0.02666322035975949,
            "avg_return_when_wrong": 0.020883517501702212,
            "avg_strategy_return": -0.0009034562392266982,
            "correct_count": 264,
            "exposure_ratio": 0.2018867924528302,
            "median_return_when_correct": -0.023612464113563582,
            "median_return_when_wrong": 0.02321415962211793,
            "payoff_ratio": 1.276759068848731,
            "turnover_ratio": 0.2741020793950851,
            "wrong_count": 266
          },
          "precision": 0.5327102803738317,
          "predictor": "fng_change_1d_x_bear_lag1",
          "pvalue_vs_baselines": 0.986013986013986,
          "recall": 0.2087912087912088,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.356703786087972,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 2.16202195300622,
          "sharpe_lift_vs_best_baseline": -7.380151188165477,
          "sharpe_ok": false,
          "stability": 0.9001810673131447,
          "stability_ok": true,
          "strategy_sharpe": -0.6837005357423365,
          "threshold": 0,
          "tn": 207,
          "tp": 57,
          "vol_regime_hit_rate_lift": -0.053023156089193835,
          "vol_regime_sharpe_lift": -3.2328054827584287
        },
        {
          "adaptive_hit_rate": 0.50390625,
          "adaptive_sharpe": -0.13962403557413217,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9851576994434137,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.3644646924829157,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 194,
          "fp": 85,
          "granger_significant": null,
          "hit_rate": 0.4745762711864407,
          "hit_rate_ci_lower": 0.3954802259887006,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5461393596986818,
          "hit_rate_lift_vs_best_baseline": -0.16380011257739696,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "funding_rate"
          ],
          "n_valid": 531,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 1,
              "paired_rows": 531,
              "signal_rows": 531
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 19,
              "paired_rows": 512,
              "signal_rows": 531
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 193,
              "signal_rows": 531
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 3,
              "paired_rows": 528,
              "signal_rows": 531
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 260,
              "paired_rows": 271,
              "signal_rows": 531
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0027384087341468973,
            "avg_return_when_correct": -0.014947714173378871,
            "avg_return_when_wrong": 0.008289351017417467,
            "avg_strategy_return": -0.0031836755295751268,
            "correct_count": 252,
            "exposure_ratio": 0.3107344632768362,
            "median_return_when_correct": -0.016766361749805767,
            "median_return_when_wrong": 0.01487052709148208,
            "payoff_ratio": 1.8032429971865043,
            "turnover_ratio": 0.10377358490566038,
            "wrong_count": 279
          },
          "precision": 0.48484848484848486,
          "predictor": "funding_rate_x_bear_lag1",
          "pvalue_vs_baselines": 0.989010989010989,
          "recall": 0.291970802919708,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -5.178711930238004,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 2.502792135538677,
          "sharpe_lift_vs_best_baseline": -8.395122656236264,
          "sharpe_ok": false,
          "stability": 0.8982469729765231,
          "stability_ok": true,
          "strategy_sharpe": -1.6986720038131247,
          "threshold": 0,
          "tn": 172,
          "tp": 80,
          "vol_regime_hit_rate_lift": -0.07656009244992296,
          "vol_regime_sharpe_lift": -4.247776950829217
        },
        {
          "adaptive_hit_rate": 0.5383104125736738,
          "adaptive_sharpe": 2.402097749032043,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9795918367346939,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.6166439290586629,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 45,
          "fp": 236,
          "granger_significant": null,
          "hit_rate": 0.4678030303030303,
          "hit_rate_ci_lower": 0.3956912878787879,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5435606060606061,
          "hit_rate_lift_vs_best_baseline": -0.17057335346080738,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": true,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "vix"
          ],
          "n_valid": 528,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 4,
              "paired_rows": 528,
              "signal_rows": 528
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 18,
              "paired_rows": 510,
              "signal_rows": 528
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 337,
              "paired_rows": 191,
              "signal_rows": 528
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 0,
              "paired_rows": 528,
              "signal_rows": 528
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 257,
              "paired_rows": 271,
              "signal_rows": 528
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0031135590102557113,
            "avg_return_when_correct": 0.029131473572034893,
            "avg_return_when_wrong": -0.031457057401094786,
            "avg_strategy_return": -0.006202471324531853,
            "correct_count": 247,
            "exposure_ratio": 0.875,
            "median_return_when_correct": 0.02522023646146221,
            "median_return_when_wrong": -0.026988363912817226,
            "payoff_ratio": 0.9260711579151406,
            "turnover_ratio": 0.04174573055028463,
            "wrong_count": 281
          },
          "precision": 0.48917748917748916,
          "predictor": "vix_lag1",
          "pvalue_vs_baselines": 1,
          "recall": 0.8339483394833949,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -5.7317585418762675,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 1.2796203822830325,
          "sharpe_lift_vs_best_baseline": -9.05911914053313,
          "sharpe_ok": false,
          "stability": 0.889495189765537,
          "stability_ok": true,
          "strategy_sharpe": -2.36266848810999,
          "threshold": 24,
          "tn": 21,
          "tp": 226,
          "vol_regime_hit_rate_lift": -0.08333333333333337,
          "vol_regime_sharpe_lift": -4.911773435126083
        },
        {
          "adaptive_hit_rate": 0.48,
          "adaptive_sharpe": 0.010131245395542969,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9628942486085343,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.5233265720081136,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 133,
          "fp": 102,
          "granger_significant": null,
          "hit_rate": 0.5472061657032755,
          "hit_rate_ci_lower": 0.4700385356454721,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.6185452793834296,
          "hit_rate_lift_vs_best_baseline": -0.09117021806056214,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "vix"
          ],
          "n_valid": 519,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 13,
              "paired_rows": 519,
              "signal_rows": 519
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 9,
              "paired_rows": 510,
              "signal_rows": 519
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 337,
              "paired_rows": 182,
              "signal_rows": 519
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 9,
              "paired_rows": 519,
              "signal_rows": 519
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 248,
              "paired_rows": 271,
              "signal_rows": 519
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0036078985770073616,
            "avg_return_when_correct": -0.015192738276747933,
            "avg_return_when_wrong": 0.01039250344310465,
            "avg_strategy_return": 0.0017125741499321096,
            "correct_count": 284,
            "exposure_ratio": 0.44508670520231214,
            "median_return_when_correct": -0.006139966817492196,
            "median_return_when_wrong": 0.007671104589059952,
            "payoff_ratio": 1.4618939854023532,
            "turnover_ratio": 0.08108108108108109,
            "wrong_count": 235
          },
          "precision": 0.5584415584415584,
          "predictor": "vix_regime_score_lag1",
          "pvalue_vs_baselines": 0.996003996003996,
          "recall": 0.49236641221374045,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -1.9662548461941718,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 4.416611533210371,
          "sharpe_lift_vs_best_baseline": -5.519406483485875,
          "sharpe_ok": false,
          "stability": 0.8849555686429257,
          "stability_ok": true,
          "strategy_sharpe": 1.1770441689372644,
          "threshold": 0,
          "tn": 155,
          "tp": 129,
          "vol_regime_hit_rate_lift": -0.003930197933088131,
          "vol_regime_sharpe_lift": -1.372060778078828
        },
        {
          "adaptive_hit_rate": 0.5090180360721442,
          "adaptive_sharpe": 1.138881320634914,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.961038961038961,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.5084745762711865,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 126,
          "fp": 135,
          "granger_significant": null,
          "hit_rate": 0.49613899613899615,
          "hit_rate_ci_lower": 0.42277992277992277,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5714285714285714,
          "hit_rate_lift_vs_best_baseline": -0.1422373876248415,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 4312,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "hybrid_selected_features",
          "masked_source_columns": [
            "news_sentiment_mean_lag1",
            "fng_value_lag1",
            "funding_rate_lag1",
            "btc_long_short_ratio_lag1",
            "etf_net_inflow_usd_lag1",
            "volume_change_pct_lag1",
            "vix_lag1",
            "vix_regime_score_lag1"
          ],
          "n_valid": 518,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 14,
              "paired_rows": 518,
              "signal_rows": 518
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 8,
              "paired_rows": 510,
              "signal_rows": 518
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 337,
              "paired_rows": 181,
              "signal_rows": 518
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 12,
              "paired_rows": 516,
              "signal_rows": 518
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 247,
              "paired_rows": 271,
              "signal_rows": 518
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0034412689621760666,
            "avg_return_when_correct": -0.006523479913443527,
            "avg_return_when_wrong": -0.0004062949603533204,
            "avg_strategy_return": -0.0013179244253098794,
            "correct_count": 257,
            "exposure_ratio": 0.5212355212355212,
            "median_return_when_correct": 0.00126228186766969,
            "median_return_when_wrong": -0.0017341448753686942,
            "payoff_ratio": 16.056019763992662,
            "turnover_ratio": 0.09671179883945841,
            "wrong_count": 261
          },
          "precision": 0.5,
          "predictor": "full_hybrid_index_score_lag1",
          "pvalue_vs_baselines": 0.999000999000999,
          "recall": 0.5172413793103449,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -3.9814952945724813,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 2.560651911892162,
          "sharpe_lift_vs_best_baseline": -7.434165248204061,
          "sharpe_ok": false,
          "stability": 0.6942722293191901,
          "stability_ok": true,
          "strategy_sharpe": -0.7377145957809207,
          "threshold": 50,
          "tn": 122,
          "tp": 135,
          "vol_regime_hit_rate_lift": -0.0549973674973675,
          "vol_regime_sharpe_lift": -3.286819542797013
        },
        {
          "adaptive_hit_rate": 0.4980392156862745,
          "adaptive_sharpe": 0.5556517657414655,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9814471243042672,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.2433862433862434,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 226,
          "fp": 60,
          "granger_significant": null,
          "hit_rate": 0.45935727788279773,
          "hit_rate_ci_lower": 0.3818525519848771,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5406899810964083,
          "hit_rate_lift_vs_best_baseline": -0.17901910588103992,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 2156,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "hybrid_selected_features",
          "masked_source_columns": [
            "news_sentiment_mean_lag1",
            "fng_value_lag1",
            "funding_rate_lag1",
            "volume_change_pct_lag1"
          ],
          "n_valid": 529,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 3,
              "paired_rows": 529,
              "signal_rows": 529
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 17,
              "paired_rows": 512,
              "signal_rows": 529
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 191,
              "signal_rows": 529
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 2,
              "paired_rows": 527,
              "signal_rows": 529
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 258,
              "paired_rows": 271,
              "signal_rows": 529
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0028836407280084042,
            "avg_return_when_correct": -0.03231851093979601,
            "avg_return_when_wrong": 0.02212570703934959,
            "avg_strategy_return": -0.001860041028734177,
            "correct_count": 243,
            "exposure_ratio": 0.2003780718336484,
            "median_return_when_correct": -0.02590135327067135,
            "median_return_when_wrong": 0.022636195355876333,
            "payoff_ratio": 1.4606769800539692,
            "turnover_ratio": 0.06628787878787878,
            "wrong_count": 286
          },
          "precision": 0.4339622641509434,
          "predictor": "core_hybrid_index_score_lag1",
          "pvalue_vs_baselines": 1,
          "recall": 0.16911764705882354,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.204989563337996,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 0.9343208228103816,
          "sharpe_lift_vs_best_baseline": -8.466963035439635,
          "sharpe_ok": false,
          "stability": 0.6225042469323334,
          "stability_ok": true,
          "strategy_sharpe": -1.7705123830164948,
          "threshold": 50,
          "tn": 197,
          "tp": 46,
          "vol_regime_hit_rate_lift": -0.09177908575356591,
          "vol_regime_sharpe_lift": -4.319617330032587
        },
        {
          "adaptive_hit_rate": 0.5090180360721442,
          "adaptive_sharpe": 1.138881320634914,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.961038961038961,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.3454987834549878,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 190,
          "fp": 79,
          "granger_significant": null,
          "hit_rate": 0.4806949806949807,
          "hit_rate_ci_lower": 0.40342664092664093,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5617760617760618,
          "hit_rate_lift_vs_best_baseline": -0.15768140306885697,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 4312,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "hybrid_selected_features",
          "masked_source_columns": [
            "news_sentiment_mean_lag1",
            "fng_value_lag1",
            "funding_rate_lag1",
            "btc_long_short_ratio_lag1",
            "etf_net_inflow_usd_lag1",
            "volume_change_pct_lag1",
            "vix_lag1",
            "vix_regime_score_lag1"
          ],
          "n_valid": 518,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 14,
              "paired_rows": 518,
              "signal_rows": 518
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 8,
              "paired_rows": 510,
              "signal_rows": 518
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 337,
              "paired_rows": 181,
              "signal_rows": 518
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 12,
              "paired_rows": 516,
              "signal_rows": 518
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 247,
              "paired_rows": 271,
              "signal_rows": 518
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0034412689621760666,
            "avg_return_when_correct": -0.02545179546593212,
            "avg_return_when_wrong": 0.016932787169553515,
            "avg_strategy_return": -0.0012155912255472168,
            "correct_count": 249,
            "exposure_ratio": 0.28957528957528955,
            "median_return_when_correct": -0.017918427298093342,
            "median_return_when_wrong": 0.017411887880726534,
            "payoff_ratio": 1.5031072682290871,
            "turnover_ratio": 0.09864603481624758,
            "wrong_count": 269
          },
          "precision": 0.47333333333333333,
          "predictor": "full_hybrid_index_score_lag1",
          "pvalue_vs_baselines": 0.991008991008991,
          "recall": 0.2720306513409962,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.236836797003087,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 2.2566545625598278,
          "sharpe_lift_vs_best_baseline": -7.662543090297143,
          "sharpe_ok": false,
          "stability": 0.6942722293191901,
          "stability_ok": true,
          "strategy_sharpe": -0.9660924378740031,
          "threshold": 60,
          "tn": 178,
          "tp": 71,
          "vol_regime_hit_rate_lift": -0.07044138294138297,
          "vol_regime_sharpe_lift": -3.5151973848900955
        },
        {
          "adaptive_hit_rate": 0.5235294117647059,
          "adaptive_sharpe": 0.9810766772667089,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9814471243042672,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.4806517311608961,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 154,
          "fp": 101,
          "granger_significant": null,
          "hit_rate": 0.5179584120982986,
          "hit_rate_ci_lower": 0.46880907372400754,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5652173913043478,
          "hit_rate_lift_vs_best_baseline": -0.12041797166553903,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "etf_net_inflow_usd"
          ],
          "n_valid": 529,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 3,
              "paired_rows": 529,
              "signal_rows": 529
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 17,
              "paired_rows": 512,
              "signal_rows": 529
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 191,
              "signal_rows": 529
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 2,
              "paired_rows": 527,
              "signal_rows": 529
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 258,
              "paired_rows": 271,
              "signal_rows": 529
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0028836407280084042,
            "avg_return_when_correct": -0.01484631136343189,
            "avg_return_when_wrong": 0.009970366150838786,
            "avg_strategy_return": -0.00035195083467529195,
            "correct_count": 274,
            "exposure_ratio": 0.41398865784499056,
            "median_return_when_correct": -0.00757859836417386,
            "median_return_when_wrong": 0.01263483424290092,
            "payoff_ratio": 1.4890437461198855,
            "turnover_ratio": 0.3352272727272727,
            "wrong_count": 255
          },
          "precision": 0.5388127853881278,
          "predictor": "etf_net_inflow_usd_log1p_lag1",
          "pvalue_vs_baselines": 0.984015984015984,
          "recall": 0.4338235294117647,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.90482633335259,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 2.619839121505668,
          "sharpe_lift_vs_best_baseline": -6.920181908295866,
          "sharpe_ok": false,
          "stability": 0.9562591117360147,
          "stability_ok": true,
          "strategy_sharpe": -0.2237312558727261,
          "threshold": 0,
          "tn": 156,
          "tp": 118,
          "vol_regime_hit_rate_lift": -0.03317795153806502,
          "vol_regime_sharpe_lift": -2.7728362028888185
        },
        {
          "adaptive_hit_rate": 0.4764705882352941,
          "adaptive_sharpe": -0.9810766772667089,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9814471243042672,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.5292096219931272,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 118,
          "fp": 156,
          "granger_significant": null,
          "hit_rate": 0.4820415879017013,
          "hit_rate_ci_lower": 0.43478260869565216,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5311909262759924,
          "hit_rate_lift_vs_best_baseline": -0.15633479586213633,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": true,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "etf_net_inflow_usd"
          ],
          "n_valid": 529,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 3,
              "paired_rows": 529,
              "signal_rows": 529
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 17,
              "paired_rows": 512,
              "signal_rows": 529
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 191,
              "signal_rows": 529
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 2,
              "paired_rows": 527,
              "signal_rows": 529
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 258,
              "paired_rows": 271,
              "signal_rows": 529
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0028836407280084042,
            "avg_return_when_correct": 0.009970366150838786,
            "avg_return_when_wrong": -0.01484631136343189,
            "avg_strategy_return": -0.003201211855693362,
            "correct_count": 255,
            "exposure_ratio": 0.5860113421550095,
            "median_return_when_correct": 0.01263483424290092,
            "median_return_when_wrong": -0.00757859836417386,
            "payoff_ratio": 0.671571941795381,
            "turnover_ratio": 0.3352272727272727,
            "wrong_count": 274
          },
          "precision": 0.4967741935483871,
          "predictor": "etf_net_inflow_usd_log1p_lag1",
          "pvalue_vs_baselines": 0.99000999000999,
          "recall": 0.5661764705882353,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.5685756017094725,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 2.0593639013601996,
          "sharpe_lift_vs_best_baseline": -8.062482345935969,
          "sharpe_ok": false,
          "stability": 0.9519707893571926,
          "stability_ok": true,
          "strategy_sharpe": -1.366031693512828,
          "threshold": 0,
          "tn": 101,
          "tp": 154,
          "vol_regime_hit_rate_lift": -0.06909477573466233,
          "vol_regime_sharpe_lift": -3.9151366405289205
        },
        {
          "adaptive_hit_rate": 0.5235294117647059,
          "adaptive_sharpe": 0.9810766772667089,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9814471243042672,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.4806517311608961,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 154,
          "fp": 101,
          "granger_significant": null,
          "hit_rate": 0.5179584120982986,
          "hit_rate_ci_lower": 0.46880907372400754,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5652173913043478,
          "hit_rate_lift_vs_best_baseline": -0.12041797166553903,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "etf_net_inflow_usd"
          ],
          "n_valid": 529,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 3,
              "paired_rows": 529,
              "signal_rows": 529
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 17,
              "paired_rows": 512,
              "signal_rows": 529
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 191,
              "signal_rows": 529
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 2,
              "paired_rows": 527,
              "signal_rows": 529
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 258,
              "paired_rows": 271,
              "signal_rows": 529
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0028836407280084042,
            "avg_return_when_correct": -0.01484631136343189,
            "avg_return_when_wrong": 0.009970366150838786,
            "avg_strategy_return": -0.00035195083467529195,
            "correct_count": 274,
            "exposure_ratio": 0.41398865784499056,
            "median_return_when_correct": -0.00757859836417386,
            "median_return_when_wrong": 0.01263483424290092,
            "payoff_ratio": 1.4890437461198855,
            "turnover_ratio": 0.3352272727272727,
            "wrong_count": 255
          },
          "precision": 0.5388127853881278,
          "predictor": "etf_net_inflow_usd_log1p_lag1",
          "pvalue_vs_baselines": 0.984015984015984,
          "recall": 0.4338235294117647,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.90482633335259,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 2.619839121505668,
          "sharpe_lift_vs_best_baseline": -6.920181908295866,
          "sharpe_ok": false,
          "stability": 0.9562591117360147,
          "stability_ok": true,
          "strategy_sharpe": -0.2237312558727261,
          "threshold": 0,
          "tn": 156,
          "tp": 118,
          "vol_regime_hit_rate_lift": -0.03317795153806502,
          "vol_regime_sharpe_lift": -2.7728362028888185
        },
        {
          "adaptive_hit_rate": 0.5235294117647059,
          "adaptive_sharpe": 0.9810766772667089,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9814471243042672,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.4806517311608961,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 154,
          "fp": 101,
          "granger_significant": null,
          "hit_rate": 0.5179584120982986,
          "hit_rate_ci_lower": 0.46880907372400754,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5652173913043478,
          "hit_rate_lift_vs_best_baseline": -0.12041797166553903,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "etf_net_inflow_usd"
          ],
          "n_valid": 529,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 3,
              "paired_rows": 529,
              "signal_rows": 529
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 17,
              "paired_rows": 512,
              "signal_rows": 529
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 191,
              "signal_rows": 529
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 2,
              "paired_rows": 527,
              "signal_rows": 529
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 258,
              "paired_rows": 271,
              "signal_rows": 529
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0028836407280084042,
            "avg_return_when_correct": -0.01484631136343189,
            "avg_return_when_wrong": 0.009970366150838786,
            "avg_strategy_return": -0.00035195083467529195,
            "correct_count": 274,
            "exposure_ratio": 0.41398865784499056,
            "median_return_when_correct": -0.00757859836417386,
            "median_return_when_wrong": 0.01263483424290092,
            "payoff_ratio": 1.4890437461198855,
            "turnover_ratio": 0.3352272727272727,
            "wrong_count": 255
          },
          "precision": 0.5388127853881278,
          "predictor": "etf_net_inflow_usd_log1p_lag1",
          "pvalue_vs_baselines": 0.984015984015984,
          "recall": 0.4338235294117647,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.90482633335259,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 2.619839121505668,
          "sharpe_lift_vs_best_baseline": -6.920181908295866,
          "sharpe_ok": false,
          "stability": 0.9562591117360147,
          "stability_ok": true,
          "strategy_sharpe": -0.2237312558727261,
          "threshold": 0,
          "tn": 156,
          "tp": 118,
          "vol_regime_hit_rate_lift": -0.03317795153806502,
          "vol_regime_sharpe_lift": -2.7728362028888185
        },
        {
          "adaptive_hit_rate": 0.5,
          "adaptive_sharpe": 1.4319865144065584,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9851576994434137,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.014492753623188404,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 272,
          "fp": 0,
          "granger_significant": null,
          "hit_rate": 0.487758945386064,
          "hit_rate_ci_lower": 0.3973634651600753,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5743879472693032,
          "hit_rate_lift_vs_best_baseline": -0.15061743837777364,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 54,
          "masked_denominator": 539,
          "masked_ratio": 0.10018552875695733,
          "masked_ratio_ok": false,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "usdkrw_return"
          ],
          "n_valid": 531,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 1,
              "paired_rows": 531,
              "signal_rows": 531
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 19,
              "paired_rows": 512,
              "signal_rows": 531
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 193,
              "signal_rows": 531
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 3,
              "paired_rows": 528,
              "signal_rows": 531
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 260,
              "paired_rows": 271,
              "signal_rows": 531
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0027384087341468973,
            "avg_return_when_correct": -0.04459946249400844,
            "avg_return_when_wrong": 0.037121932897485964,
            "avg_strategy_return": 0.00014733284237373884,
            "correct_count": 259,
            "exposure_ratio": 0.003766478342749529,
            "median_return_when_correct": -0.03465184624573864,
            "median_return_when_wrong": 0.030572388720271994,
            "payoff_ratio": 1.201431580008833,
            "turnover_ratio": 0.007547169811320755,
            "wrong_count": 272
          },
          "precision": 1,
          "predictor": "usdkrw_gap_flag_lag1",
          "pvalue_vs_baselines": 0.983016983016983,
          "recall": 0.0072992700729927005,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -0.8290852173038598,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 1.8710404412653185,
          "sharpe_lift_vs_best_baseline": -5.65105920932073,
          "sharpe_ok": false,
          "stability": 0.7963027340535532,
          "stability_ok": true,
          "strategy_sharpe": 1.0453914431024103,
          "threshold": 0.5,
          "tn": 257,
          "tp": 2,
          "vol_regime_hit_rate_lift": -0.06337741825029963,
          "vol_regime_sharpe_lift": -1.5037135039136822
        },
        {
          "adaptive_hit_rate": 0.4665314401622718,
          "adaptive_sharpe": -0.5935203184283319,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9499072356215214,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.4732824427480916,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 134,
          "fp": 142,
          "granger_significant": null,
          "hit_rate": 0.4609375,
          "hit_rate_ci_lower": 0.416015625,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.501953125,
          "hit_rate_lift_vs_best_baseline": -0.17743888376383765,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 539,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "source_columns",
          "masked_source_columns": [
            "btc_taker_buy_quote_volume"
          ],
          "n_valid": 512,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 20,
              "paired_rows": 512,
              "signal_rows": 512
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 0,
              "paired_rows": 512,
              "signal_rows": 512
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 336,
              "paired_rows": 176,
              "signal_rows": 512
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 18,
              "paired_rows": 510,
              "signal_rows": 512
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 241,
              "paired_rows": 271,
              "signal_rows": 512
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0037465417111827793,
            "avg_return_when_correct": -0.0022328952547744424,
            "avg_return_when_wrong": -0.0050408191159377344,
            "avg_strategy_return": -0.0036435590332143065,
            "correct_count": 236,
            "exposure_ratio": 0.51953125,
            "median_return_when_correct": 0.002394664219338538,
            "median_return_when_wrong": -0.0024891840796944648,
            "payoff_ratio": 0.4429627811310704,
            "turnover_ratio": 0.46771037181996084,
            "wrong_count": 276
          },
          "precision": 0.46616541353383456,
          "predictor": "btc_taker_imbalance_zscore_30d_lag1",
          "pvalue_vs_baselines": 0.999000999000999,
          "recall": 0.4806201550387597,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -4.724234095714642,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 1.1961969975832587,
          "sharpe_lift_vs_best_baseline": -8.512105190054125,
          "sharpe_ok": false,
          "stability": 0.8869518319154285,
          "stability_ok": true,
          "strategy_sharpe": -1.8156545376309845,
          "threshold": 0,
          "tn": 112,
          "tp": 124,
          "vol_regime_hit_rate_lift": -0.09019886363636365,
          "vol_regime_sharpe_lift": -4.364759484647077
        },
        {
          "adaptive_hit_rate": 0.4530938123752495,
          "adaptive_sharpe": -2.253054239750093,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.9647495361781077,
          "coverage_ok": true,
          "decision": "research_only",
          "decision_strict": "research_only",
          "f1": 0.4269141531322506,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 171,
          "fp": 76,
          "granger_significant": null,
          "hit_rate": 0.525,
          "hit_rate_ci_lower": 0.4441826923076923,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.5981249999999999,
          "hit_rate_lift_vs_best_baseline": -0.11337638376383763,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "masked_cells": 0,
          "masked_denominator": 4312,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "hybrid_selected_features",
          "masked_source_columns": [
            "news_sentiment_mean_lag1",
            "fng_value_lag1",
            "funding_rate_lag1",
            "btc_long_short_ratio_lag1",
            "etf_net_inflow_usd_lag1",
            "volume_change_pct_lag1",
            "vix_lag1",
            "vix_regime_score_lag1"
          ],
          "n_valid": 520,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 12,
              "paired_rows": 520,
              "signal_rows": 520
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 8,
              "paired_rows": 512,
              "signal_rows": 520
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 338,
              "paired_rows": 182,
              "signal_rows": 520
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 10,
              "paired_rows": 518,
              "signal_rows": 520
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 249,
              "paired_rows": 271,
              "signal_rows": 520
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.0033532259668297842,
            "avg_return_when_correct": -0.023326336531190164,
            "avg_return_when_wrong": 0.018722317288515904,
            "avg_strategy_return": 0.0009543415875953678,
            "correct_count": 273,
            "exposure_ratio": 0.3230769230769231,
            "median_return_when_correct": -0.017392758992364005,
            "median_return_when_wrong": 0.01813940988433954,
            "payoff_ratio": 1.2459107583599345,
            "turnover_ratio": 0.09441233140655106,
            "wrong_count": 247
          },
          "precision": 0.5476190476190477,
          "predictor": "vol_regime_filtered_full_hybrid_score_lag1",
          "pvalue_vs_baselines": 1,
          "recall": 0.34980988593155893,
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.3811890812117142,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 3.709882221467305,
          "sharpe_lift_vs_best_baseline": -5.926988825423298,
          "sharpe_ok": false,
          "stability": 0.8707081052268734,
          "stability_ok": true,
          "strategy_sharpe": 0.769461826999842,
          "threshold": 50,
          "tn": 181,
          "tp": 92,
          "vol_regime_hit_rate_lift": -0.026136363636363624,
          "vol_regime_sharpe_lift": -1.7796431200162504
        },
        {
          "abstain_filter_diagnostics": {
            "baseline_name": "vol_regime",
            "dropped_baseline_hit_rate": 0.5454545454545454,
            "dropped_n": 297,
            "kept_baseline_hit_rate": 0.5584415584415584,
            "kept_baseline_hit_rate_lift": 0.012987012987012991,
            "kept_gt_dropped_pvalue": 0.4172031991998756,
            "kept_n": 231
          },
          "adaptive_hit_rate": null,
          "adaptive_sharpe": null,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.42857142857142855,
          "coverage_ok": false,
          "decision": "research_only",
          "decision_strict": "research_only",
          "dropped_baseline_hit_rate": 0.5454545454545454,
          "dropped_n": 297,
          "f1": 0.7166666666666666,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 0,
          "fp": 102,
          "granger_significant": null,
          "hit_rate": 0.5584415584415584,
          "hit_rate_ci_lower": 0.46320346320346323,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.658008658008658,
          "hit_rate_lift_vs_best_baseline": -0.07993482532227925,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "kept_baseline_hit_rate": 0.5584415584415584,
          "kept_baseline_hit_rate_lift": 0.012987012987012991,
          "kept_gt_dropped_pvalue": 0.4172031991998756,
          "kept_n": 231,
          "masked_cells": 0,
          "masked_denominator": 0,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "research_rule",
          "masked_source_columns": [],
          "n_valid": 231,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 301,
              "paired_rows": 231,
              "signal_rows": 231
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 285,
              "paired_rows": 227,
              "signal_rows": 231
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 177,
              "paired_rows": 54,
              "signal_rows": 231
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 297,
              "paired_rows": 231,
              "signal_rows": 231
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 164,
              "paired_rows": 107,
              "signal_rows": 231
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": 0.004029640683226292,
            "avg_return_when_correct": 0.031975216487642774,
            "avg_return_when_wrong": -0.03131329342235925,
            "avg_strategy_return": 0.004029640683226292,
            "correct_count": 129,
            "exposure_ratio": 0.4342105263157895,
            "median_return_when_correct": 0.025557433869927537,
            "median_return_when_wrong": -0.024683207221293926,
            "payoff_ratio": 1.0211387239392353,
            "turnover_ratio": 0.08097928436911488,
            "wrong_count": 102
          },
          "precision": 0.5584415584415584,
          "predictor": "vix_low_long_only",
          "pvalue_vs_baselines": 1,
          "recall": 1,
          "research_rule": true,
          "research_rule_family": "sparse_abstain_filter",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.4866340060856427,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 6.566080219372227,
          "sharpe_lift_vs_best_baseline": -4.932544029379991,
          "sharpe_ok": false,
          "stability": null,
          "stability_ok": true,
          "strategy_sharpe": 1.7639066230431488,
          "threshold": 0,
          "tn": 0,
          "tp": 129,
          "vol_regime_hit_rate_lift": 0.007305194805194759,
          "vol_regime_sharpe_lift": -0.7851983239729436
        },
        {
          "abstain_filter_diagnostics": {
            "baseline_name": "vol_regime",
            "dropped_baseline_hit_rate": 0.5436046511627907,
            "dropped_n": 344,
            "kept_baseline_hit_rate": 0.5652173913043478,
            "kept_baseline_hit_rate_lift": 0.02161274014155712,
            "kept_gt_dropped_pvalue": 0.35083622732472775,
            "kept_n": 184
          },
          "adaptive_hit_rate": null,
          "adaptive_sharpe": null,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.3432282003710575,
          "coverage_ok": false,
          "decision": "research_only",
          "decision_strict": "research_only",
          "dropped_baseline_hit_rate": 0.5436046511627907,
          "dropped_n": 344,
          "f1": 0.5294117647058824,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 48,
          "fp": 32,
          "granger_significant": null,
          "hit_rate": 0.5675675675675675,
          "hit_rate_ci_lower": 0.480945945945946,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.6594594594594595,
          "hit_rate_lift_vs_best_baseline": -0.07080881619627011,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "kept_baseline_hit_rate": 0.5652173913043478,
          "kept_baseline_hit_rate_lift": 0.02161274014155712,
          "kept_gt_dropped_pvalue": 0.35083622732472775,
          "kept_n": 184,
          "masked_cells": 0,
          "masked_denominator": 0,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "research_rule",
          "masked_source_columns": [],
          "n_valid": 185,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 347,
              "paired_rows": 185,
              "signal_rows": 185
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 334,
              "paired_rows": 178,
              "signal_rows": 185
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 119,
              "paired_rows": 74,
              "signal_rows": 185
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 344,
              "paired_rows": 184,
              "signal_rows": 185
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 178,
              "paired_rows": 93,
              "signal_rows": 185
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.002848366583704437,
            "avg_return_when_correct": -0.021957132976756593,
            "avg_return_when_wrong": 0.02223188930717652,
            "avg_strategy_return": 0.006535173379032152,
            "correct_count": 105,
            "exposure_ratio": 0.34774436090225563,
            "median_return_when_correct": -0.015329918445172043,
            "median_return_when_wrong": 0.017600438660837256,
            "payoff_ratio": 0.9876413413802292,
            "turnover_ratio": 0.3050847457627119,
            "wrong_count": 80
          },
          "precision": 0.5844155844155844,
          "predictor": "vote_vol_sent_fng5_2of3",
          "pvalue_vs_baselines": 1,
          "recall": 0.4838709677419355,
          "research_rule": true,
          "research_rule_family": "sparse_abstain_filter",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.65348232841557,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 6.473655897387213,
          "sharpe_lift_vs_best_baseline": -4.751997185052211,
          "sharpe_ok": false,
          "stability": null,
          "stability_ok": true,
          "strategy_sharpe": 1.9444534673709293,
          "threshold": 0,
          "tn": 60,
          "tp": 45,
          "vol_regime_hit_rate_lift": 0.016431203931203897,
          "vol_regime_sharpe_lift": -0.6046514796451632
        },
        {
          "abstain_filter_diagnostics": {
            "baseline_name": "vol_regime",
            "dropped_baseline_hit_rate": 0.5446685878962536,
            "dropped_n": 347,
            "kept_baseline_hit_rate": 0.56353591160221,
            "kept_baseline_hit_rate_lift": 0.01886732370595634,
            "kept_gt_dropped_pvalue": 0.3742589008321753,
            "kept_n": 181
          },
          "adaptive_hit_rate": null,
          "adaptive_sharpe": null,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.3358070500927644,
          "coverage_ok": false,
          "decision": "research_only",
          "decision_strict": "research_only",
          "dropped_baseline_hit_rate": 0.5446685878962536,
          "dropped_n": 347,
          "f1": 0.5153374233128835,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 48,
          "fp": 31,
          "granger_significant": null,
          "hit_rate": 0.56353591160221,
          "hit_rate_ci_lower": 0.47500000000000003,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.6574585635359116,
          "hit_rate_lift_vs_best_baseline": -0.0748404721616277,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "kept_baseline_hit_rate": 0.56353591160221,
          "kept_baseline_hit_rate_lift": 0.01886732370595634,
          "kept_gt_dropped_pvalue": 0.3742589008321753,
          "kept_n": 181,
          "masked_cells": 0,
          "masked_denominator": 0,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "research_rule",
          "masked_source_columns": [],
          "n_valid": 181,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 351,
              "paired_rows": 181,
              "signal_rows": 181
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 336,
              "paired_rows": 176,
              "signal_rows": 181
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 122,
              "paired_rows": 71,
              "signal_rows": 181
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 347,
              "paired_rows": 181,
              "signal_rows": 181
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 178,
              "paired_rows": 93,
              "signal_rows": 181
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.00329543628234382,
            "avg_return_when_correct": -0.023724157135155872,
            "avg_return_when_wrong": 0.02308088684407175,
            "avg_strategy_return": 0.006295474729293022,
            "correct_count": 102,
            "exposure_ratio": 0.34022556390977443,
            "median_return_when_correct": -0.0184837881974522,
            "median_return_when_wrong": 0.01813940988433954,
            "payoff_ratio": 1.0278702588609305,
            "turnover_ratio": 0.2937853107344633,
            "wrong_count": 79
          },
          "precision": 0.5753424657534246,
          "predictor": "vote_vol_vix_sent_fng5_3of4",
          "pvalue_vs_baselines": 1,
          "recall": 0.4666666666666667,
          "research_rule": true,
          "research_rule_family": "sparse_abstain_filter",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": -2.749029000863133,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 6.457030025918956,
          "sharpe_lift_vs_best_baseline": -4.83708776876491,
          "sharpe_ok": false,
          "stability": null,
          "stability_ok": true,
          "strategy_sharpe": 1.8593628836582305,
          "threshold": 0,
          "tn": 60,
          "tp": 42,
          "vol_regime_hit_rate_lift": 0.012399547965846303,
          "vol_regime_sharpe_lift": -0.6897420633578619
        },
        {
          "abstain_filter_diagnostics": {
            "baseline_name": "vol_regime",
            "dropped_baseline_hit_rate": 0.4980544747081712,
            "dropped_n": 257,
            "kept_baseline_hit_rate": 0.6014760147601476,
            "kept_baseline_hit_rate_lift": 0.10342154005197635,
            "kept_gt_dropped_pvalue": 0.010670638337441087,
            "kept_n": 271
          },
          "adaptive_hit_rate": null,
          "adaptive_sharpe": null,
          "baseline_hit_rate": 0.6383763837638377,
          "baseline_hit_rate_ci_upper": 0.7232472324723247,
          "baseline_sharpe": 6.69645065242314,
          "baseline_sharpe_ci_upper": 10.756557365837104,
          "best_baseline": "vol_regime_v2",
          "best_hit_rate_baseline": "vol_regime_v2",
          "best_sharpe_baseline": "vol_regime_v2",
          "bootstrap_block_length": 14,
          "bootstrap_method": "circular",
          "bootstrap_n": 1000,
          "coverage": 0.5027829313543599,
          "coverage_ok": false,
          "decision": "research_only",
          "decision_strict": "research_only",
          "dropped_baseline_hit_rate": 0.4980544747081712,
          "dropped_n": 257,
          "f1": 0.5625000000000001,
          "fdr_ok": false,
          "fdr_q": 1,
          "fn": 68,
          "fp": 30,
          "granger_significant": null,
          "hit_rate": 0.6383763837638377,
          "hit_rate_ci_lower": 0.5461254612546126,
          "hit_rate_ci_ok": false,
          "hit_rate_ci_upper": 0.7232472324723247,
          "hit_rate_lift_vs_best_baseline": 0,
          "hit_rate_ok": false,
          "horizon_days": 7,
          "inverted": false,
          "kept_baseline_hit_rate": 0.6014760147601476,
          "kept_baseline_hit_rate_lift": 0.10342154005197635,
          "kept_gt_dropped_pvalue": 0.010670638337441087,
          "kept_n": 271,
          "masked_cells": 0,
          "masked_denominator": 0,
          "masked_ratio": 0,
          "masked_ratio_ok": true,
          "masked_ratio_source": "research_rule",
          "masked_source_columns": [],
          "n_valid": 271,
          "paired_baseline_alignment": {
            "always_up": {
              "alignment_key": "date",
              "baseline_rows": 532,
              "dropped_rows": 261,
              "paired_rows": 271,
              "signal_rows": 271
            },
            "btc_momo_20d": {
              "alignment_key": "date",
              "baseline_rows": 512,
              "dropped_rows": 241,
              "paired_rows": 271,
              "signal_rows": 271
            },
            "fng_contrarian": {
              "alignment_key": "date",
              "baseline_rows": 193,
              "dropped_rows": 158,
              "paired_rows": 113,
              "signal_rows": 271
            },
            "vol_regime": {
              "alignment_key": "date",
              "baseline_rows": 528,
              "dropped_rows": 257,
              "paired_rows": 271,
              "signal_rows": 271
            },
            "vol_regime_v2": {
              "alignment_key": "date",
              "baseline_rows": 271,
              "dropped_rows": 0,
              "paired_rows": 271,
              "signal_rows": 271
            }
          },
          "payoff_diagnostics": {
            "avg_bnh_return": -0.008135415560447406,
            "avg_return_when_correct": -0.023984625181584295,
            "avg_return_when_wrong": 0.01984329121972283,
            "avg_strategy_return": 0.019982812390860617,
            "correct_count": 173,
            "exposure_ratio": 0.5093984962406015,
            "median_return_when_correct": -0.017918427298093342,
            "median_return_when_wrong": 0.017032258139299622,
            "payoff_ratio": 1.208701969648325,
            "turnover_ratio": 0.15065913370998116,
            "wrong_count": 98
          },
          "precision": 0.6774193548387096,
          "predictor": "vol_regime_v2_vix_realized_vol_2of2",
          "pvalue_vs_baselines": 1,
          "recall": 0.48091603053435117,
          "research_rule": true,
          "research_rule_family": "sparse_abstain_filter",
          "return_col": "btc_fwd_ret_7d",
          "sharpe_ci_lower": 2.146435915882689,
          "sharpe_ci_ok": false,
          "sharpe_ci_upper": 10.756557365837104,
          "sharpe_lift_vs_best_baseline": 0,
          "sharpe_ok": false,
          "stability": null,
          "stability_ok": true,
          "strategy_sharpe": 6.69645065242314,
          "threshold": 0,
          "tn": 110,
          "tp": 63,
          "vol_regime_hit_rate_lift": 0.087240020127474,
          "vol_regime_sharpe_lift": 4.147345705407048
        }
      ],
      "return_col": "btc_fwd_ret_7d"
    }
  },
  "hybrid_indices": {
    "core": {
      "coverage": {
        "ratio": 0.9963,
        "rows_total": 539,
        "rows_used": 537
      },
      "excluded_features": [],
      "pca_summary": {
        "explained_variance": 0.9484123631586868,
        "feature_schema_version": "v4",
        "loadings": {
          "fng_value_lag1": 0.6345246591634178,
          "funding_rate_lag1": 0.4933979111537971,
          "news_sentiment_mean_lag1": 0.5940143582018542,
          "volume_change_pct_lag1": 0.03292264316026264
        },
        "n_components": 3,
        "pc1_max": 6.52849276557322,
        "pc1_min": -3.6398742655105694,
        "score_scale_method": "minmax_0_100",
        "selected_features": [
          "news_sentiment_mean_lag1",
          "fng_value_lag1",
          "funding_rate_lag1",
          "volume_change_pct_lag1"
        ],
        "status": "ok"
      },
      "quality_reasons": [],
      "quality_status": "ok",
      "signal_label": "risk_off",
      "signal_zscore": -0.9743839807263213,
      "today_score": 22.3,
      "today_score_method": "oos_expanding",
      "vif_diagnostics": [
        {
          "feature": "news_sentiment_mean_lag1",
          "vif": 2.4919256642753917
        },
        {
          "feature": "fng_value_lag1",
          "vif": 2.951939012852853
        },
        {
          "feature": "funding_rate_lag1",
          "vif": 1.4012494223611551
        },
        {
          "feature": "volume_change_pct_lag1",
          "vif": 1.0162255199045616
        }
      ]
    },
    "full": {
      "coverage": {
        "ratio": 0.9759,
        "rows_total": 539,
        "rows_used": 526
      },
      "excluded_features": [],
      "pca_summary": {
        "explained_variance": 0.8516907051265072,
        "feature_schema_version": "v4",
        "loadings": {
          "btc_long_short_ratio_lag1": -0.41115879914255815,
          "etf_net_inflow_usd_lag1": 0.31989693487809745,
          "fng_value_lag1": 0.4851121458755342,
          "funding_rate_lag1": 0.2533667461015835,
          "news_sentiment_mean_lag1": 0.480299363672757,
          "vix_lag1": -0.296501280927593,
          "vix_regime_score_lag1": 0.3323455965279529,
          "volume_change_pct_lag1": -0.005639766794636587
        },
        "n_components": 4,
        "pc1_max": 5.506534599338067,
        "pc1_min": -5.543849824870339,
        "score_scale_method": "minmax_0_100",
        "selected_features": [
          "news_sentiment_mean_lag1",
          "fng_value_lag1",
          "funding_rate_lag1",
          "btc_long_short_ratio_lag1",
          "etf_net_inflow_usd_lag1",
          "volume_change_pct_lag1",
          "vix_lag1",
          "vix_regime_score_lag1"
        ],
        "status": "ok"
      },
      "quality_reasons": [],
      "quality_status": "ok",
      "signal_label": "risk_off",
      "signal_zscore": -1.9817566261326849,
      "today_score": 43.2,
      "today_score_method": "oos_expanding",
      "vif_diagnostics": [
        {
          "feature": "news_sentiment_mean_lag1",
          "vif": 3.0453782601144055
        },
        {
          "feature": "fng_value_lag1",
          "vif": 3.802888749882394
        },
        {
          "feature": "funding_rate_lag1",
          "vif": 1.8220430055587757
        },
        {
          "feature": "btc_long_short_ratio_lag1",
          "vif": 3.583246314424407
        },
        {
          "feature": "etf_net_inflow_usd_lag1",
          "vif": 1.3618278483180293
        },
        {
          "feature": "volume_change_pct_lag1",
          "vif": 1.0183943523579948
        },
        {
          "feature": "vix_lag1",
          "vif": 4.462148657134418
        },
        {
          "feature": "vix_regime_score_lag1",
          "vif": 4.265675896074462
        }
      ]
    }
  },
  "next_research_candidates": {
    "7": [
      {
        "decision": "research_only",
        "decision_strict": "research_only",
        "feature_group": "stationary",
        "hit_rate": 0.5075757575757576,
        "masked_ratio": 0,
        "paired_rows_vs_vol_regime": 526,
        "payoff_ratio": 28.65196252137523,
        "predictor": "sentiment_momentum_lag1",
        "strategy_sharpe": -1.7208586481641754,
        "vol_regime_hit_rate_lift": -0.04356060606060608,
        "vol_regime_sharpe_lift": -4.269963595180268
      },
      {
        "decision": "research_only",
        "decision_strict": "research_only",
        "feature_group": "stationary",
        "hit_rate": 0.5076045627376425,
        "masked_ratio": 0,
        "paired_rows_vs_vol_regime": 524,
        "payoff_ratio": 2.99744867121235,
        "predictor": "fng_change_5d_lag1",
        "strategy_sharpe": -0.959093610739897,
        "vol_regime_hit_rate_lift": -0.04353180089872111,
        "vol_regime_sharpe_lift": -3.5081985577559895
      },
      {
        "decision": "research_only",
        "decision_strict": "research_only",
        "feature_group": "other",
        "hit_rate": 0.5179584120982986,
        "masked_ratio": 0,
        "paired_rows_vs_vol_regime": 527,
        "payoff_ratio": 1.4890437461198855,
        "predictor": "etf_net_inflow_usd_log1p_lag1",
        "strategy_sharpe": -0.2237312558727261,
        "vol_regime_hit_rate_lift": -0.03317795153806502,
        "vol_regime_sharpe_lift": -2.7728362028888185
      },
      {
        "decision": "research_only",
        "decision_strict": "research_only",
        "feature_group": "other",
        "hit_rate": 0.5179584120982986,
        "masked_ratio": 0,
        "paired_rows_vs_vol_regime": 527,
        "payoff_ratio": 1.4890437461198855,
        "predictor": "etf_net_inflow_usd_log1p_lag1",
        "strategy_sharpe": -0.2237312558727261,
        "vol_regime_hit_rate_lift": -0.03317795153806502,
        "vol_regime_sharpe_lift": -2.7728362028888185
      },
      {
        "decision": "research_only",
        "decision_strict": "research_only",
        "feature_group": "other",
        "hit_rate": 0.5179584120982986,
        "masked_ratio": 0,
        "paired_rows_vs_vol_regime": 527,
        "payoff_ratio": 1.4890437461198855,
        "predictor": "etf_net_inflow_usd_log1p_lag1",
        "strategy_sharpe": -0.2237312558727261,
        "vol_regime_hit_rate_lift": -0.03317795153806502,
        "vol_regime_sharpe_lift": -2.7728362028888185
      },
      {
        "decision": "research_only",
        "decision_strict": "research_only",
        "feature_group": "level",
        "hit_rate": 0.5472061657032755,
        "masked_ratio": 0,
        "paired_rows_vs_vol_regime": 519,
        "payoff_ratio": 1.4618939854023532,
        "predictor": "vix_regime_score_lag1",
        "strategy_sharpe": 1.1770441689372644,
        "vol_regime_hit_rate_lift": -0.003930197933088131,
        "vol_regime_sharpe_lift": -1.372060778078828
      },
      {
        "decision": "research_only",
        "decision_strict": "research_only",
        "feature_group": "hybrid",
        "hit_rate": 0.525,
        "masked_ratio": 0,
        "paired_rows_vs_vol_regime": 518,
        "payoff_ratio": 1.2459107583599345,
        "predictor": "vol_regime_filtered_full_hybrid_score_lag1",
        "strategy_sharpe": 0.769461826999842,
        "vol_regime_hit_rate_lift": -0.026136363636363624,
        "vol_regime_sharpe_lift": -1.7796431200162504
      },
      {
        "decision": "research_only",
        "decision_strict": "research_only",
        "feature_group": "regime",
        "hit_rate": 0.509469696969697,
        "masked_ratio": 0,
        "paired_rows_vs_vol_regime": 526,
        "payoff_ratio": 1.2337318477176686,
        "predictor": "sentiment_momentum_x_bear_lag1",
        "strategy_sharpe": -0.5910991862338583,
        "vol_regime_hit_rate_lift": -0.04166666666666663,
        "vol_regime_sharpe_lift": -3.140204133249951
      },
      {
        "decision": "research_only",
        "decision_strict": "research_only",
        "feature_group": "research_sparse",
        "hit_rate": 0.6383763837638377,
        "masked_ratio": 0,
        "paired_rows_vs_vol_regime": 271,
        "payoff_ratio": 1.208701969648325,
        "predictor": "vol_regime_v2_vix_realized_vol_2of2",
        "strategy_sharpe": 6.69645065242314,
        "vol_regime_hit_rate_lift": 0.087240020127474,
        "vol_regime_sharpe_lift": 4.147345705407048
      },
      {
        "decision": "research_only",
        "decision_strict": "research_only",
        "feature_group": "research_sparse",
        "hit_rate": 0.56353591160221,
        "masked_ratio": 0,
        "paired_rows_vs_vol_regime": 181,
        "payoff_ratio": 1.0278702588609305,
        "predictor": "vote_vol_vix_sent_fng5_3of4",
        "strategy_sharpe": 1.8593628836582305,
        "vol_regime_hit_rate_lift": 0.012399547965846303,
        "vol_regime_sharpe_lift": -0.6897420633578619
      },
      {
        "decision": "research_only",
        "decision_strict": "research_only",
        "feature_group": "research_sparse",
        "hit_rate": 0.5584415584415584,
        "masked_ratio": 0,
        "paired_rows_vs_vol_regime": 231,
        "payoff_ratio": 1.0211387239392353,
        "predictor": "vix_low_long_only",
        "strategy_sharpe": 1.7639066230431488,
        "vol_regime_hit_rate_lift": 0.007305194805194759,
        "vol_regime_sharpe_lift": -0.7851983239729436
      }
    ]
  },
  "outlier_filtered_count": 78,
  "outlier_filtered_ratio": 0.1447,
  "outlier_mask_summary": {
    "global_masked_cells": 54,
    "global_masked_denominator": 54978,
    "global_masked_ratio": 0.0009822110662446796,
    "hybrid_index_source_columns": {
      "core_hybrid_index_score_lag1": [
        "news_sentiment_mean_lag1",
        "fng_value_lag1",
        "funding_rate_lag1",
        "volume_change_pct_lag1"
      ],
      "full_hybrid_index_score_lag1": [
        "news_sentiment_mean_lag1",
        "fng_value_lag1",
        "funding_rate_lag1",
        "btc_long_short_ratio_lag1",
        "etf_net_inflow_usd_lag1",
        "volume_change_pct_lag1",
        "vix_lag1",
        "vix_regime_score_lag1"
      ]
    },
    "per_column": {
      "binance_top10_ew_return_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "binance_top10_ew_return_7d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "binance_top10_up_ratio_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "binance_top10_up_ratio_7d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_above_ma200": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_above_ma200_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_bear_regime_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_direction_label": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_drawdown_90d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_fwd_ret_1d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_fwd_ret_3d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_fwd_ret_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_fwd_vol_5d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_large_move_3d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_large_move_3d_vol_adj": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_log_return": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_long_short_ratio": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_long_short_ratio_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_ma_200d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_quote_volume": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_realized_vol_20d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_return": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_return_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_return_7d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_taker_buy_quote_volume": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_taker_buy_ratio_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_taker_buy_ratio_7d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_taker_imbalance_zscore_30d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "btc_taker_imbalance_zscore_30d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "date": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "etf_net_inflow_usd": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "etf_net_inflow_usd_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "etf_source": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "etf_total_aum_usd": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "etf_total_btc": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "fng_change_1d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "fng_change_1d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "fng_change_1d_x_bear_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "fng_change_5d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "fng_change_5d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "fng_q70_90d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "fng_value": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "fng_value_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "funding_rate": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "funding_rate_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "funding_rate_x_bear_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "funding_rate_zscore_30d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "funding_rate_zscore_30d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "funding_source": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "ingest_validation_reason": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "is_backfill_valid": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "is_outlier": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "long_short_ratio_zscore_30d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "long_short_ratio_zscore_30d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "lsr_source": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "n_articles": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "nasdaq": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "nasdaq_return_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "nasdaq_return_7d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "news_sentiment_mean": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "news_sentiment_mean_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "news_sentiment_std": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "oi_change_pct": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "oi_change_pct_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "oi_price_divergence_flag_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "oi_price_divergence_flag_7d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "oi_price_divergence_score_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "oi_price_divergence_score_7d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "oi_source": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "open_interest_change_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "open_interest_change_7d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "open_interest_usd": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "rv_q45_45d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "sentiment_accel": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "sentiment_accel_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "sentiment_momentum": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "sentiment_momentum_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "sentiment_momentum_x_bear_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "sentiment_status": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "text_schema_version": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "us10y": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "us10y_change_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "us10y_change_7d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "usd_broad_index": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "usd_broad_index_change_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "usd_broad_index_change_7d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "usd_broad_index_zscore_30d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "usd_broad_index_zscore_30d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "usdkrw_log_return": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "usdkrw_log_return_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "usdkrw_return": {
        "masked_cells": 54,
        "masked_ratio": 0.10018552875695733,
        "reasons": {
          "iqr_single": 54
        }
      },
      "usdt_usdc_supply_change_7d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "usdt_usdc_supply_change_7d_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "vix": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "vix_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "vix_q40_90d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "vix_q80_90d": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "vix_regime_score": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "vix_regime_score_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "vix_source": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "volume_change_pct": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      },
      "volume_change_pct_lag1": {
        "masked_cells": 0,
        "masked_ratio": 0,
        "reasons": {}
      }
    },
    "rows": 539
  },
  "rows_after_outlier_filter": 539,
  "rows_before_outlier_filter": 539,
  "run_id": "sentiment-join-20260518",
  "structured_sources": {
    "btc_etf": {
      "coverage": {
        "non_null_days": 540,
        "ratio": 0.9982,
        "requested_days": 541
      },
      "mode": "gold_history",
      "quality_reasons": [],
      "quality_status": "ok"
    },
    "futures": {
      "coverage": {
        "funding_days": 542,
        "funding_ratio": 1,
        "lsr_days": 542,
        "lsr_ratio": 1,
        "oi_days": 542,
        "oi_ratio": 1,
        "requested_days": 542
      },
      "funding_quality_reasons": [],
      "funding_quality_status": "ok",
      "lsr_api_capped": true,
      "lsr_quality_reasons": [],
      "lsr_quality_status": "ok",
      "lsr_recent_quality_reasons": [],
      "lsr_recent_quality_status": "ok",
      "mode": "lambda",
      "oi_api_capped": true,
      "oi_quality_reasons": [],
      "oi_quality_status": "ok",
      "oi_recent_quality_reasons": [],
      "oi_recent_quality_status": "ok",
      "quality_reasons": [],
      "quality_status": "ok",
      "requested_end_date": "2026-05-18",
      "requested_start_date": "2024-11-23",
      "returned_max_date": {
        "btc_long_short_ratio": "2026-05-18",
        "funding_rate": "2026-05-18",
        "open_interest_usd": "2026-05-18"
      },
      "returned_min_date": {
        "btc_long_short_ratio": "2024-11-23",
        "funding_rate": "2024-11-23",
        "open_interest_usd": "2024-11-23"
      }
    }
  },
  "target_diagnostics": {
    "btc_fwd_ret_1d": {
      "mean": -0.00047971259860303143,
      "null_ratio": 0.0019,
      "std": 0.023438554241948614,
      "valid_rows": 538
    },
    "btc_fwd_ret_3d": {
      "mean": -0.0011975943518793683,
      "null_ratio": 0.0056,
      "std": 0.03767348586280703,
      "valid_rows": 536
    },
    "btc_fwd_ret_7d": {
      "mean": -0.002747037152711612,
      "null_ratio": 0.013,
      "std": 0.05382457354590573,
      "valid_rows": 532
    },
    "btc_fwd_vol_5d": {
      "mean": 0.0207316827294549,
      "null_ratio": 0.0093,
      "std": 0.012073788285787448,
      "valid_rows": 534
    },
    "btc_large_move_3d": {
      "null_ratio": 0.0056,
      "positive_rate": 0.3843283582089552,
      "valid_rows": 536
    },
    "btc_large_move_3d_vol_adj": {
      "null_ratio": 0.0241,
      "positive_rate": 0.1444866920152091,
      "valid_rows": 526
    },
    "btc_realized_vol_20d_lag1": {
      "mean": 0.022207730707167184,
      "null_ratio": 0.0186,
      "std": 0.00819267435258691,
      "valid_rows": 529
    }
  },
  "walk_forward": {
    "core": {
      "avg_alpha": 0.030867362293952594,
      "avg_cumulative_return": -0.010857744595099136,
      "avg_hit_rate": 0.4907161803713528,
      "direction_label_col": "btc_direction_label",
      "embargo_days": 7,
      "expanding_window": false,
      "folds": [
        {
          "alpha": -1.0538337173952272,
          "cumulative_return": 0,
          "fold": 0,
          "hit_rate": 0.1724137931034483,
          "test_end": "2025-04-29",
          "test_start": "2025-03-31",
          "train_end": "2025-03-23",
          "train_start": "2024-11-24"
        },
        {
          "alpha": -0.4045903597594195,
          "cumulative_return": 0.18947307939544364,
          "fold": 1,
          "hit_rate": 0.4482758620689655,
          "test_end": "2025-05-29",
          "test_start": "2025-04-30",
          "train_end": "2025-04-22",
          "train_start": "2024-12-24"
        },
        {
          "alpha": 0.0011182178725385739,
          "cumulative_return": 0.22564076417233248,
          "fold": 2,
          "hit_rate": 0.6896551724137931,
          "test_end": "2025-06-28",
          "test_start": "2025-05-30",
          "train_end": "2025-05-22",
          "train_start": "2025-01-23"
        },
        {
          "alpha": 0,
          "cumulative_return": 0.4475221939385736,
          "fold": 3,
          "hit_rate": 0.6206896551724138,
          "test_end": "2025-07-28",
          "test_start": "2025-06-29",
          "train_end": "2025-06-21",
          "train_start": "2025-02-22"
        },
        {
          "alpha": 0.11577671625246355,
          "cumulative_return": -0.17494883352195356,
          "fold": 4,
          "hit_rate": 0.4482758620689655,
          "test_end": "2025-08-27",
          "test_start": "2025-07-29",
          "train_end": "2025-07-21",
          "train_start": "2025-03-24"
        },
        {
          "alpha": -0.38064924922528987,
          "cumulative_return": -0.0023109351903407515,
          "fold": 5,
          "hit_rate": 0.3103448275862069,
          "test_end": "2025-09-26",
          "test_start": "2025-08-28",
          "train_end": "2025-08-20",
          "train_start": "2025-04-23"
        },
        {
          "alpha": -0.12594261392563583,
          "cumulative_return": -0.549125101293186,
          "fold": 6,
          "hit_rate": 0.3793103448275862,
          "test_end": "2025-10-26",
          "test_start": "2025-09-27",
          "train_end": "2025-09-19",
          "train_start": "2025-05-23"
        },
        {
          "alpha": 0.9823845892177168,
          "cumulative_return": -0.3890673611346351,
          "fold": 7,
          "hit_rate": 0.6206896551724138,
          "test_end": "2025-11-25",
          "test_start": "2025-10-27",
          "train_end": "2025-10-19",
          "train_start": "2025-06-22"
        },
        {
          "alpha": 0.21094544991253256,
          "cumulative_return": 0,
          "fold": 8,
          "hit_rate": 0.5517241379310345,
          "test_end": "2025-12-25",
          "test_start": "2025-11-26",
          "train_end": "2025-11-18",
          "train_start": "2025-07-22"
        },
        {
          "alpha": 0.16783493197150273,
          "cumulative_return": -0.03085115541015215,
          "fold": 9,
          "hit_rate": 0.5517241379310345,
          "test_end": "2026-01-24",
          "test_start": "2025-12-26",
          "train_end": "2025-12-18",
          "train_start": "2025-08-21"
        },
        {
          "alpha": 1.6457713706541561,
          "cumulative_return": 0,
          "fold": 10,
          "hit_rate": 0.7931034482758621,
          "test_end": "2026-02-23",
          "test_start": "2026-01-25",
          "train_end": "2026-01-17",
          "train_start": "2025-09-20"
        },
        {
          "alpha": 0.04492827806951872,
          "cumulative_return": 0.03831611477652958,
          "fold": 11,
          "hit_rate": 0.5862068965517241,
          "test_end": "2026-03-25",
          "test_start": "2026-02-24",
          "train_end": "2026-02-16",
          "train_start": "2025-10-20"
        },
        {
          "alpha": -0.802467903823473,
          "cumulative_return": 0.1042005545310995,
          "fold": 12,
          "hit_rate": 0.20689655172413793,
          "test_end": "2026-04-24",
          "test_start": "2026-03-26",
          "train_end": "2026-03-18",
          "train_start": "2025-11-19"
        }
      ],
      "horizon_days": 7,
      "purged_kfold": false,
      "return_col": "btc_fwd_ret_7d",
      "stability": 0.6225042469323334,
      "test_days": 30,
      "train_days": 120
    },
    "full": {
      "avg_alpha": 0.07176211066740594,
      "avg_cumulative_return": 0.02704470995868383,
      "avg_hit_rate": 0.5137362637362638,
      "direction_label_col": "btc_direction_label",
      "embargo_days": 7,
      "expanding_window": false,
      "folds": [
        {
          "alpha": -0.9801141479612456,
          "cumulative_return": 0.06504790269285894,
          "fold": 0,
          "hit_rate": 0.2857142857142857,
          "test_end": "2025-04-29",
          "test_start": "2025-03-31",
          "train_end": "2025-03-23",
          "train_start": "2024-11-24"
        },
        {
          "alpha": 0,
          "cumulative_return": 0.5940634391548631,
          "fold": 1,
          "hit_rate": 0.6551724137931034,
          "test_end": "2025-05-29",
          "test_start": "2025-04-30",
          "train_end": "2025-04-22",
          "train_start": "2024-12-24"
        },
        {
          "alpha": -0.03722430604355753,
          "cumulative_return": 0.18729824025623637,
          "fold": 2,
          "hit_rate": 0.6206896551724138,
          "test_end": "2025-06-28",
          "test_start": "2025-05-30",
          "train_end": "2025-05-22",
          "train_start": "2025-01-23"
        },
        {
          "alpha": 0,
          "cumulative_return": 0.4475221939385736,
          "fold": 3,
          "hit_rate": 0.6206896551724138,
          "test_end": "2025-07-28",
          "test_start": "2025-06-29",
          "train_end": "2025-06-21",
          "train_start": "2025-02-22"
        },
        {
          "alpha": 0.12216148121823608,
          "cumulative_return": -0.16856406855618103,
          "fold": 4,
          "hit_rate": 0.4482758620689655,
          "test_end": "2025-08-27",
          "test_start": "2025-07-29",
          "train_end": "2025-07-21",
          "train_start": "2025-03-24"
        },
        {
          "alpha": -0.38064924922528987,
          "cumulative_return": -0.0023109351903407515,
          "fold": 5,
          "hit_rate": 0.3103448275862069,
          "test_end": "2025-09-26",
          "test_start": "2025-08-28",
          "train_end": "2025-08-20",
          "train_start": "2025-04-23"
        },
        {
          "alpha": -0.2155946350671028,
          "cumulative_return": -0.638777122434653,
          "fold": 6,
          "hit_rate": 0.3103448275862069,
          "test_end": "2025-10-26",
          "test_start": "2025-09-27",
          "train_end": "2025-09-19",
          "train_start": "2025-05-23"
        },
        {
          "alpha": 1.0811358499043688,
          "cumulative_return": -0.29031610044798306,
          "fold": 7,
          "hit_rate": 0.6551724137931034,
          "test_end": "2025-11-25",
          "test_start": "2025-10-27",
          "train_end": "2025-10-19",
          "train_start": "2025-06-22"
        },
        {
          "alpha": 0.21094544991253256,
          "cumulative_return": 0,
          "fold": 8,
          "hit_rate": 0.5517241379310345,
          "test_end": "2025-12-25",
          "test_start": "2025-11-26",
          "train_end": "2025-11-18",
          "train_start": "2025-07-22"
        },
        {
          "alpha": 0.12831395673468277,
          "cumulative_return": -0.07037213064697213,
          "fold": 9,
          "hit_rate": 0.5172413793103449,
          "test_end": "2026-01-24",
          "test_start": "2025-12-26",
          "train_end": "2025-12-18",
          "train_start": "2025-08-21"
        },
        {
          "alpha": 1.6457713706541561,
          "cumulative_return": 0,
          "fold": 10,
          "hit_rate": 0.7931034482758621,
          "test_end": "2026-02-23",
          "test_start": "2026-01-25",
          "train_end": "2026-01-17",
          "train_start": "2025-09-20"
        },
        {
          "alpha": -0.057569431900227216,
          "cumulative_return": -0.06418159519321635,
          "fold": 11,
          "hit_rate": 0.5172413793103449,
          "test_end": "2026-03-25",
          "test_start": "2026-02-24",
          "train_end": "2026-02-16",
          "train_start": "2025-10-20"
        },
        {
          "alpha": -0.5842688995502763,
          "cumulative_return": 0.29217140588970403,
          "fold": 12,
          "hit_rate": 0.39285714285714285,
          "test_end": "2026-04-24",
          "test_start": "2026-03-26",
          "train_end": "2026-03-18",
          "train_start": "2025-11-19"
        }
      ],
      "horizon_days": 7,
      "purged_kfold": false,
      "return_col": "btc_fwd_ret_7d",
      "stability": 0.6942722293191901,
      "test_days": 30,
      "train_days": 120
    }
  },
  "walk_forward_horizons": {
    "core": {
      "7": {
        "avg_alpha": 0.030867362293952594,
        "avg_cumulative_return": -0.010857744595099136,
        "avg_hit_rate": 0.4907161803713528,
        "direction_label_col": "btc_direction_label",
        "embargo_days": 7,
        "expanding_window": false,
        "folds": [
          {
            "alpha": -1.0538337173952272,
            "cumulative_return": 0,
            "fold": 0,
            "hit_rate": 0.1724137931034483,
            "test_end": "2025-04-29",
            "test_start": "2025-03-31",
            "train_end": "2025-03-23",
            "train_start": "2024-11-24"
          },
          {
            "alpha": -0.4045903597594195,
            "cumulative_return": 0.18947307939544364,
            "fold": 1,
            "hit_rate": 0.4482758620689655,
            "test_end": "2025-05-29",
            "test_start": "2025-04-30",
            "train_end": "2025-04-22",
            "train_start": "2024-12-24"
          },
          {
            "alpha": 0.0011182178725385739,
            "cumulative_return": 0.22564076417233248,
            "fold": 2,
            "hit_rate": 0.6896551724137931,
            "test_end": "2025-06-28",
            "test_start": "2025-05-30",
            "train_end": "2025-05-22",
            "train_start": "2025-01-23"
          },
          {
            "alpha": 0,
            "cumulative_return": 0.4475221939385736,
            "fold": 3,
            "hit_rate": 0.6206896551724138,
            "test_end": "2025-07-28",
            "test_start": "2025-06-29",
            "train_end": "2025-06-21",
            "train_start": "2025-02-22"
          },
          {
            "alpha": 0.11577671625246355,
            "cumulative_return": -0.17494883352195356,
            "fold": 4,
            "hit_rate": 0.4482758620689655,
            "test_end": "2025-08-27",
            "test_start": "2025-07-29",
            "train_end": "2025-07-21",
            "train_start": "2025-03-24"
          },
          {
            "alpha": -0.38064924922528987,
            "cumulative_return": -0.0023109351903407515,
            "fold": 5,
            "hit_rate": 0.3103448275862069,
            "test_end": "2025-09-26",
            "test_start": "2025-08-28",
            "train_end": "2025-08-20",
            "train_start": "2025-04-23"
          },
          {
            "alpha": -0.12594261392563583,
            "cumulative_return": -0.549125101293186,
            "fold": 6,
            "hit_rate": 0.3793103448275862,
            "test_end": "2025-10-26",
            "test_start": "2025-09-27",
            "train_end": "2025-09-19",
            "train_start": "2025-05-23"
          },
          {
            "alpha": 0.9823845892177168,
            "cumulative_return": -0.3890673611346351,
            "fold": 7,
            "hit_rate": 0.6206896551724138,
            "test_end": "2025-11-25",
            "test_start": "2025-10-27",
            "train_end": "2025-10-19",
            "train_start": "2025-06-22"
          },
          {
            "alpha": 0.21094544991253256,
            "cumulative_return": 0,
            "fold": 8,
            "hit_rate": 0.5517241379310345,
            "test_end": "2025-12-25",
            "test_start": "2025-11-26",
            "train_end": "2025-11-18",
            "train_start": "2025-07-22"
          },
          {
            "alpha": 0.16783493197150273,
            "cumulative_return": -0.03085115541015215,
            "fold": 9,
            "hit_rate": 0.5517241379310345,
            "test_end": "2026-01-24",
            "test_start": "2025-12-26",
            "train_end": "2025-12-18",
            "train_start": "2025-08-21"
          },
          {
            "alpha": 1.6457713706541561,
            "cumulative_return": 0,
            "fold": 10,
            "hit_rate": 0.7931034482758621,
            "test_end": "2026-02-23",
            "test_start": "2026-01-25",
            "train_end": "2026-01-17",
            "train_start": "2025-09-20"
          },
          {
            "alpha": 0.04492827806951872,
            "cumulative_return": 0.03831611477652958,
            "fold": 11,
            "hit_rate": 0.5862068965517241,
            "test_end": "2026-03-25",
            "test_start": "2026-02-24",
            "train_end": "2026-02-16",
            "train_start": "2025-10-20"
          },
          {
            "alpha": -0.802467903823473,
            "cumulative_return": 0.1042005545310995,
            "fold": 12,
            "hit_rate": 0.20689655172413793,
            "test_end": "2026-04-24",
            "test_start": "2026-03-26",
            "train_end": "2026-03-18",
            "train_start": "2025-11-19"
          }
        ],
        "horizon_days": 7,
        "purged_kfold": false,
        "return_col": "btc_fwd_ret_7d",
        "stability": 0.6225042469323334,
        "test_days": 30,
        "train_days": 120
      }
    },
    "full": {
      "7": {
        "avg_alpha": 0.07176211066740594,
        "avg_cumulative_return": 0.02704470995868383,
        "avg_hit_rate": 0.5137362637362638,
        "direction_label_col": "btc_direction_label",
        "embargo_days": 7,
        "expanding_window": false,
        "folds": [
          {
            "alpha": -0.9801141479612456,
            "cumulative_return": 0.06504790269285894,
            "fold": 0,
            "hit_rate": 0.2857142857142857,
            "test_end": "2025-04-29",
            "test_start": "2025-03-31",
            "train_end": "2025-03-23",
            "train_start": "2024-11-24"
          },
          {
            "alpha": 0,
            "cumulative_return": 0.5940634391548631,
            "fold": 1,
            "hit_rate": 0.6551724137931034,
            "test_end": "2025-05-29",
            "test_start": "2025-04-30",
            "train_end": "2025-04-22",
            "train_start": "2024-12-24"
          },
          {
            "alpha": -0.03722430604355753,
            "cumulative_return": 0.18729824025623637,
            "fold": 2,
            "hit_rate": 0.6206896551724138,
            "test_end": "2025-06-28",
            "test_start": "2025-05-30",
            "train_end": "2025-05-22",
            "train_start": "2025-01-23"
          },
          {
            "alpha": 0,
            "cumulative_return": 0.4475221939385736,
            "fold": 3,
            "hit_rate": 0.6206896551724138,
            "test_end": "2025-07-28",
            "test_start": "2025-06-29",
            "train_end": "2025-06-21",
            "train_start": "2025-02-22"
          },
          {
            "alpha": 0.12216148121823608,
            "cumulative_return": -0.16856406855618103,
            "fold": 4,
            "hit_rate": 0.4482758620689655,
            "test_end": "2025-08-27",
            "test_start": "2025-07-29",
            "train_end": "2025-07-21",
            "train_start": "2025-03-24"
          },
          {
            "alpha": -0.38064924922528987,
            "cumulative_return": -0.0023109351903407515,
            "fold": 5,
            "hit_rate": 0.3103448275862069,
            "test_end": "2025-09-26",
            "test_start": "2025-08-28",
            "train_end": "2025-08-20",
            "train_start": "2025-04-23"
          },
          {
            "alpha": -0.2155946350671028,
            "cumulative_return": -0.638777122434653,
            "fold": 6,
            "hit_rate": 0.3103448275862069,
            "test_end": "2025-10-26",
            "test_start": "2025-09-27",
            "train_end": "2025-09-19",
            "train_start": "2025-05-23"
          },
          {
            "alpha": 1.0811358499043688,
            "cumulative_return": -0.29031610044798306,
            "fold": 7,
            "hit_rate": 0.6551724137931034,
            "test_end": "2025-11-25",
            "test_start": "2025-10-27",
            "train_end": "2025-10-19",
            "train_start": "2025-06-22"
          },
          {
            "alpha": 0.21094544991253256,
            "cumulative_return": 0,
            "fold": 8,
            "hit_rate": 0.5517241379310345,
            "test_end": "2025-12-25",
            "test_start": "2025-11-26",
            "train_end": "2025-11-18",
            "train_start": "2025-07-22"
          },
          {
            "alpha": 0.12831395673468277,
            "cumulative_return": -0.07037213064697213,
            "fold": 9,
            "hit_rate": 0.5172413793103449,
            "test_end": "2026-01-24",
            "test_start": "2025-12-26",
            "train_end": "2025-12-18",
            "train_start": "2025-08-21"
          },
          {
            "alpha": 1.6457713706541561,
            "cumulative_return": 0,
            "fold": 10,
            "hit_rate": 0.7931034482758621,
            "test_end": "2026-02-23",
            "test_start": "2026-01-25",
            "train_end": "2026-01-17",
            "train_start": "2025-09-20"
          },
          {
            "alpha": -0.057569431900227216,
            "cumulative_return": -0.06418159519321635,
            "fold": 11,
            "hit_rate": 0.5172413793103449,
            "test_end": "2026-03-25",
            "test_start": "2026-02-24",
            "train_end": "2026-02-16",
            "train_start": "2025-10-20"
          },
          {
            "alpha": -0.5842688995502763,
            "cumulative_return": 0.29217140588970403,
            "fold": 12,
            "hit_rate": 0.39285714285714285,
            "test_end": "2026-04-24",
            "test_start": "2026-03-26",
            "train_end": "2026-03-18",
            "train_start": "2025-11-19"
          }
        ],
        "horizon_days": 7,
        "purged_kfold": false,
        "return_col": "btc_fwd_ret_7d",
        "stability": 0.6942722293191901,
        "test_days": 30,
        "train_days": 120
      }
    }
  },
  "walk_forward_legacy_1d": {
    "core": {
      "avg_alpha": -0.01165211713655808,
      "avg_cumulative_return": -0.01643966694789791,
      "avg_hit_rate": 0.4615384615384616,
      "direction_label_col": "btc_direction_label",
      "embargo_days": 0,
      "expanding_window": false,
      "folds": [
        {
          "alpha": -0.06573375314075448,
          "cumulative_return": 0,
          "fold": 0,
          "hit_rate": 0.4482758620689655,
          "test_end": "2025-04-22",
          "test_start": "2025-03-24",
          "train_end": "2025-03-23",
          "train_start": "2024-11-24"
        },
        {
          "alpha": -0.07045693268324274,
          "cumulative_return": 0.10532285537199382,
          "fold": 1,
          "hit_rate": 0.4482758620689655,
          "test_end": "2025-05-22",
          "test_start": "2025-04-23",
          "train_end": "2025-04-22",
          "train_start": "2024-12-24"
        },
        {
          "alpha": -0.0037223633301069065,
          "cumulative_return": -0.05337285798770169,
          "fold": 2,
          "hit_rate": 0.4827586206896552,
          "test_end": "2025-06-21",
          "test_start": "2025-05-23",
          "train_end": "2025-05-22",
          "train_start": "2025-01-23"
        },
        {
          "alpha": -0.009087217788098012,
          "cumulative_return": 0.14156965422846285,
          "fold": 3,
          "hit_rate": 0.6206896551724138,
          "test_end": "2025-07-21",
          "test_start": "2025-06-22",
          "train_end": "2025-06-21",
          "train_start": "2025-02-22"
        },
        {
          "alpha": -0.014621267330938659,
          "cumulative_return": -0.06315818403287327,
          "fold": 4,
          "hit_rate": 0.3793103448275862,
          "test_end": "2025-08-20",
          "test_start": "2025-07-22",
          "train_end": "2025-07-21",
          "train_start": "2025-03-24"
        },
        {
          "alpha": -0.067338919788843,
          "cumulative_return": -0.039876120610559555,
          "fold": 5,
          "hit_rate": 0.41379310344827586,
          "test_end": "2025-09-19",
          "test_start": "2025-08-21",
          "train_end": "2025-08-20",
          "train_start": "2025-04-23"
        },
        {
          "alpha": 0.05613929027165164,
          "cumulative_return": -0.006671883111263224,
          "fold": 6,
          "hit_rate": 0.5517241379310345,
          "test_end": "2025-10-19",
          "test_start": "2025-09-20",
          "train_end": "2025-09-19",
          "train_start": "2025-05-23"
        },
        {
          "alpha": 0.023866450425043234,
          "cumulative_return": -0.14926121397739245,
          "fold": 7,
          "hit_rate": 0.3448275862068966,
          "test_end": "2025-11-18",
          "test_start": "2025-10-20",
          "train_end": "2025-10-19",
          "train_start": "2025-06-22"
        },
        {
          "alpha": 0.06823116034662328,
          "cumulative_return": 0,
          "fold": 8,
          "hit_rate": 0.6206896551724138,
          "test_end": "2025-12-18",
          "test_start": "2025-11-19",
          "train_end": "2025-11-18",
          "train_start": "2025-07-22"
        },
        {
          "alpha": -0.13073255123831573,
          "cumulative_return": -0.054193135766008746,
          "fold": 9,
          "hit_rate": 0.20689655172413793,
          "test_end": "2026-01-17",
          "test_start": "2025-12-19",
          "train_end": "2025-12-18",
          "train_start": "2025-08-21"
        },
        {
          "alpha": 0.24863801368827082,
          "cumulative_return": -0.058627172302018415,
          "fold": 10,
          "hit_rate": 0.5172413793103449,
          "test_end": "2026-02-16",
          "test_start": "2026-01-18",
          "train_end": "2026-01-17",
          "train_start": "2025-09-20"
        },
        {
          "alpha": -0.1062353292762738,
          "cumulative_return": -0.05226881737713061,
          "fold": 11,
          "hit_rate": 0.4482758620689655,
          "test_end": "2026-03-18",
          "test_start": "2026-02-17",
          "train_end": "2026-02-16",
          "train_start": "2025-10-20"
        },
        {
          "alpha": -0.0804241029302707,
          "cumulative_return": 0.016821205241818463,
          "fold": 12,
          "hit_rate": 0.5172413793103449,
          "test_end": "2026-04-17",
          "test_start": "2026-03-19",
          "train_end": "2026-03-18",
          "train_start": "2025-11-19"
        }
      ],
      "horizon_days": 1,
      "purged_kfold": false,
      "return_col": "btc_log_return",
      "stability": 0.7549651912170362,
      "test_days": 30,
      "train_days": 120
    },
    "full": {
      "avg_alpha": 0.011284039480095879,
      "avg_cumulative_return": -0.0019001978527903851,
      "avg_hit_rate": 0.5070102311481622,
      "direction_label_col": "btc_direction_label",
      "embargo_days": 0,
      "expanding_window": false,
      "folds": [
        {
          "alpha": -0.00020649730646976616,
          "cumulative_return": 0,
          "fold": 0,
          "hit_rate": 0.4642857142857143,
          "test_end": "2025-04-22",
          "test_start": "2025-03-24",
          "train_end": "2025-03-23",
          "train_start": "2024-11-24"
        },
        {
          "alpha": 0,
          "cumulative_return": 0.17577978805523656,
          "fold": 1,
          "hit_rate": 0.5517241379310345,
          "test_end": "2025-05-22",
          "test_start": "2025-04-23",
          "train_end": "2025-04-22",
          "train_start": "2024-12-24"
        },
        {
          "alpha": 0.0044732244591988435,
          "cumulative_return": -0.04517727019839594,
          "fold": 2,
          "hit_rate": 0.5517241379310345,
          "test_end": "2025-06-21",
          "test_start": "2025-05-23",
          "train_end": "2025-05-22",
          "train_start": "2025-01-23"
        },
        {
          "alpha": -0.009087217788098012,
          "cumulative_return": 0.14156965422846285,
          "fold": 3,
          "hit_rate": 0.6206896551724138,
          "test_end": "2025-07-21",
          "test_start": "2025-06-22",
          "train_end": "2025-06-21",
          "train_start": "2025-02-22"
        },
        {
          "alpha": 0.006073575901623038,
          "cumulative_return": -0.04246334080031157,
          "fold": 4,
          "hit_rate": 0.4482758620689655,
          "test_end": "2025-08-20",
          "test_start": "2025-07-22",
          "train_end": "2025-07-21",
          "train_start": "2025-03-24"
        },
        {
          "alpha": -0.067338919788843,
          "cumulative_return": -0.039876120610559555,
          "fold": 5,
          "hit_rate": 0.41379310344827586,
          "test_end": "2025-09-19",
          "test_start": "2025-08-21",
          "train_end": "2025-08-20",
          "train_start": "2025-04-23"
        },
        {
          "alpha": -0.03878925034996901,
          "cumulative_return": -0.10160042373288387,
          "fold": 6,
          "hit_rate": 0.4827586206896552,
          "test_end": "2025-10-19",
          "test_start": "2025-09-20",
          "train_end": "2025-09-19",
          "train_start": "2025-05-23"
        },
        {
          "alpha": 0.15270154976351935,
          "cumulative_return": -0.020426114638916346,
          "fold": 7,
          "hit_rate": 0.4827586206896552,
          "test_end": "2025-11-18",
          "test_start": "2025-10-20",
          "train_end": "2025-10-19",
          "train_start": "2025-06-22"
        },
        {
          "alpha": 0.06823116034662328,
          "cumulative_return": 0,
          "fold": 8,
          "hit_rate": 0.6206896551724138,
          "test_end": "2025-12-18",
          "test_start": "2025-11-19",
          "train_end": "2025-11-18",
          "train_start": "2025-07-22"
        },
        {
          "alpha": -0.11913055909353705,
          "cumulative_return": -0.04259114362123008,
          "fold": 9,
          "hit_rate": 0.27586206896551724,
          "test_end": "2026-01-17",
          "test_start": "2025-12-19",
          "train_end": "2025-12-18",
          "train_start": "2025-08-21"
        },
        {
          "alpha": 0.24863801368827082,
          "cumulative_return": -0.058627172302018415,
          "fold": 10,
          "hit_rate": 0.5172413793103449,
          "test_end": "2026-02-16",
          "test_start": "2026-01-18",
          "train_end": "2026-01-17",
          "train_start": "2025-09-20"
        },
        {
          "alpha": -0.13260182279458066,
          "cumulative_return": -0.07863531089543749,
          "fold": 11,
          "hit_rate": 0.4827586206896552,
          "test_end": "2026-03-18",
          "test_start": "2026-02-17",
          "train_end": "2026-02-16",
          "train_start": "2025-10-20"
        },
        {
          "alpha": 0.03372925620350857,
          "cumulative_return": 0.08734488242977884,
          "fold": 12,
          "hit_rate": 0.6785714285714286,
          "test_end": "2026-04-17",
          "test_start": "2026-03-19",
          "train_end": "2026-03-18",
          "train_start": "2025-11-19"
        }
      ],
      "horizon_days": 1,
      "purged_kfold": false,
      "return_col": "btc_log_return",
      "stability": 0.7958668331117579,
      "test_days": 30,
      "train_days": 120
    }
  }
}