{
  "aggregates": [
    {
      "cagr_mean": 0.12747027098593877,
      "cagr_std": 0.0,
      "cost_multiplier": 1.0,
      "max_drawdown_mean": -0.18699513129939904,
      "max_drawdown_std": 0.0,
      "method": "equal_weight",
      "rank_ic_mean_mean": null,
      "rank_ic_mean_std": null,
      "runs": 1,
      "sharpe_mean": 1.1409073225701978,
      "sharpe_std": 0.0
    },
    {
      "cagr_mean": 0.1269550983762857,
      "cagr_std": 0.0,
      "cost_multiplier": 2.0,
      "max_drawdown_mean": -0.18709265753137427,
      "max_drawdown_std": 0.0,
      "method": "equal_weight",
      "rank_ic_mean_mean": null,
      "rank_ic_mean_std": null,
      "runs": 1,
      "sharpe_mean": 1.1366837192823027,
      "sharpe_std": 0.0
    },
    {
      "cagr_mean": 0.18228351361947018,
      "cagr_std": 0.004005443260403496,
      "cost_multiplier": 1.0,
      "max_drawdown_mean": -0.2145886546008587,
      "max_drawdown_std": 0.006805081162356945,
      "method": "lightgbm",
      "rank_ic_mean_mean": 0.01927641945934083,
      "rank_ic_mean_std": 0.0007683204110161005,
      "runs": 3,
      "sharpe_mean": 1.336921353814135,
      "sharpe_std": 0.02222242328801463
    },
    {
      "cagr_mean": 0.17510533119246677,
      "cagr_std": 0.004016874944567741,
      "cost_multiplier": 2.0,
      "max_drawdown_mean": -0.2163894227841404,
      "max_drawdown_std": 0.006597528135344145,
      "method": "lightgbm",
      "rank_ic_mean_mean": 0.01927641945934083,
      "rank_ic_mean_std": 0.0007683204110161005,
      "runs": 3,
      "sharpe_mean": 1.2902901485744873,
      "sharpe_std": 0.022632613405177564
    },
    {
      "cagr_mean": 0.12849801912232928,
      "cagr_std": 0.0,
      "cost_multiplier": 1.0,
      "max_drawdown_mean": -0.22057911037309896,
      "max_drawdown_std": 0.0,
      "method": "ridge",
      "rank_ic_mean_mean": 0.01122386777239804,
      "rank_ic_mean_std": 0.0,
      "runs": 3,
      "sharpe_mean": 1.004732725413232,
      "sharpe_std": 0.0
    },
    {
      "cagr_mean": 0.12202151659455684,
      "cagr_std": 0.0,
      "cost_multiplier": 2.0,
      "max_drawdown_mean": -0.22203119656499348,
      "max_drawdown_std": 0.0,
      "method": "ridge",
      "rank_ic_mean_mean": 0.01122386777239804,
      "rank_ic_mean_std": 0.0,
      "runs": 3,
      "sharpe_mean": 0.9597243979273143,
      "sharpe_std": 1.1102230246251565e-16
    },
    {
      "cagr_mean": 0.12242485200147213,
      "cagr_std": 0.0,
      "cost_multiplier": 1.0,
      "max_drawdown_mean": -0.21682071436381445,
      "max_drawdown_std": 0.0,
      "method": "ridge_without_size_feature",
      "rank_ic_mean_mean": 0.008857962167016904,
      "rank_ic_mean_std": 0.0,
      "runs": 3,
      "sharpe_mean": 0.9547716733118214,
      "sharpe_std": 0.0
    },
    {
      "cagr_mean": 0.11583195079079611,
      "cagr_std": 0.0,
      "cost_multiplier": 2.0,
      "max_drawdown_mean": -0.21843486637732423,
      "max_drawdown_std": 0.0,
      "method": "ridge_without_size_feature",
      "rank_ic_mean_mean": 0.008857962167016904,
      "rank_ic_mean_std": 0.0,
      "runs": 3,
      "sharpe_mean": 0.9091243208432253,
      "sharpe_std": 0.0
    },
    {
      "cagr_mean": 0.11375000726678941,
      "cagr_std": 0.0,
      "cost_multiplier": 1.0,
      "max_drawdown_mean": -0.2340494321905633,
      "max_drawdown_std": 0.0,
      "method": "single_momentum",
      "rank_ic_mean_mean": 0.0016129404992156642,
      "rank_ic_mean_std": 0.0,
      "runs": 1,
      "sharpe_mean": 0.870788198164501,
      "sharpe_std": 0.0
    },
    {
      "cagr_mean": 0.10950242495160722,
      "cagr_std": 0.0,
      "cost_multiplier": 2.0,
      "max_drawdown_mean": -0.234700406651433,
      "max_drawdown_std": 0.0,
      "method": "single_momentum",
      "rank_ic_mean_mean": 0.0016129404992156642,
      "rank_ic_mean_std": 0.0,
      "runs": 1,
      "sharpe_mean": 0.8419717273276843,
      "sharpe_std": 0.0
    }
  ],
  "cases": [
    {
      "alpha_ann": 0.06400516464836423,
      "ann_vol": 0.12859325367043897,
      "avg_turnover": 0.8341489292928463,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7246827621496951,
      "cagr": 0.12849801912232928,
      "calmar": 0.5825484512335781,
      "cost_drag_cagr": 0.00659806491674364,
      "cost_multiplier": 1.0,
      "features": 24,
      "gross_ann_vol": 0.1286665274721246,
      "gross_cagr": 0.13509608403907292,
      "gross_calmar": 0.6161997717360378,
      "gross_max_drawdown": -0.2192407239270192,
      "gross_sharpe": 1.0495623603489088,
      "gross_sortino": 1.4609738122587594,
      "gross_total_return": 0.8440497746578677,
      "hit_rate": 0.4396055875102712,
      "icir": 0.11077674858956181,
      "information_ratio": 0.4350860416950542,
      "max_drawdown": -0.22057911037309896,
      "method": "ridge",
      "n_rebalances": 45,
      "rank_ic_mean": 0.01122386777239804,
      "seed": 11,
      "sharpe": 1.004732725413232,
      "sortino": 1.3953939459613223,
      "total_return": 0.7928565220112447
    },
    {
      "alpha_ann": 0.05824360984515073,
      "ann_vol": 0.12862917360798956,
      "avg_turnover": 0.8343953476036271,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7247745833450341,
      "cagr": 0.12202151659455684,
      "calmar": 0.5495692428916782,
      "cost_drag_cagr": 0.01316102367551375,
      "cost_multiplier": 2.0,
      "features": 24,
      "gross_ann_vol": 0.12874788458471878,
      "gross_cagr": 0.1351825402700706,
      "gross_calmar": 0.6162672866990959,
      "gross_max_drawdown": -0.2193569952319666,
      "gross_sharpe": 1.0495726145464614,
      "gross_sortino": 1.4609915906058084,
      "gross_total_return": 0.8447281806657327,
      "hit_rate": 0.4371405094494659,
      "icir": 0.11077674858956181,
      "information_ratio": 0.3711556418881977,
      "max_drawdown": -0.22203119656499348,
      "method": "ridge",
      "n_rebalances": 45,
      "rank_ic_mean": 0.01122386777239804,
      "seed": 11,
      "sharpe": 0.9597243979273145,
      "sortino": 1.3299354866024526,
      "total_return": 0.7437088759892885
    },
    {
      "alpha_ann": 0.06400516464836423,
      "ann_vol": 0.12859325367043897,
      "avg_turnover": 0.8341489292928463,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7246827621496951,
      "cagr": 0.12849801912232928,
      "calmar": 0.5825484512335781,
      "cost_drag_cagr": 0.00659806491674364,
      "cost_multiplier": 1.0,
      "features": 24,
      "gross_ann_vol": 0.1286665274721246,
      "gross_cagr": 0.13509608403907292,
      "gross_calmar": 0.6161997717360378,
      "gross_max_drawdown": -0.2192407239270192,
      "gross_sharpe": 1.0495623603489088,
      "gross_sortino": 1.4609738122587594,
      "gross_total_return": 0.8440497746578677,
      "hit_rate": 0.4396055875102712,
      "icir": 0.11077674858956181,
      "information_ratio": 0.4350860416950542,
      "max_drawdown": -0.22057911037309896,
      "method": "ridge",
      "n_rebalances": 45,
      "rank_ic_mean": 0.01122386777239804,
      "seed": 29,
      "sharpe": 1.004732725413232,
      "sortino": 1.3953939459613223,
      "total_return": 0.7928565220112447
    },
    {
      "alpha_ann": 0.05824360984515073,
      "ann_vol": 0.12862917360798956,
      "avg_turnover": 0.8343953476036271,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7247745833450341,
      "cagr": 0.12202151659455684,
      "calmar": 0.5495692428916782,
      "cost_drag_cagr": 0.01316102367551375,
      "cost_multiplier": 2.0,
      "features": 24,
      "gross_ann_vol": 0.12874788458471878,
      "gross_cagr": 0.1351825402700706,
      "gross_calmar": 0.6162672866990959,
      "gross_max_drawdown": -0.2193569952319666,
      "gross_sharpe": 1.0495726145464614,
      "gross_sortino": 1.4609915906058084,
      "gross_total_return": 0.8447281806657327,
      "hit_rate": 0.4371405094494659,
      "icir": 0.11077674858956181,
      "information_ratio": 0.3711556418881977,
      "max_drawdown": -0.22203119656499348,
      "method": "ridge",
      "n_rebalances": 45,
      "rank_ic_mean": 0.01122386777239804,
      "seed": 29,
      "sharpe": 0.9597243979273145,
      "sortino": 1.3299354866024526,
      "total_return": 0.7437088759892885
    },
    {
      "alpha_ann": 0.06400516464836423,
      "ann_vol": 0.12859325367043897,
      "avg_turnover": 0.8341489292928463,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7246827621496951,
      "cagr": 0.12849801912232928,
      "calmar": 0.5825484512335781,
      "cost_drag_cagr": 0.00659806491674364,
      "cost_multiplier": 1.0,
      "features": 24,
      "gross_ann_vol": 0.1286665274721246,
      "gross_cagr": 0.13509608403907292,
      "gross_calmar": 0.6161997717360378,
      "gross_max_drawdown": -0.2192407239270192,
      "gross_sharpe": 1.0495623603489088,
      "gross_sortino": 1.4609738122587594,
      "gross_total_return": 0.8440497746578677,
      "hit_rate": 0.4396055875102712,
      "icir": 0.11077674858956181,
      "information_ratio": 0.4350860416950542,
      "max_drawdown": -0.22057911037309896,
      "method": "ridge",
      "n_rebalances": 45,
      "rank_ic_mean": 0.01122386777239804,
      "seed": 42,
      "sharpe": 1.004732725413232,
      "sortino": 1.3953939459613223,
      "total_return": 0.7928565220112447
    },
    {
      "alpha_ann": 0.05824360984515073,
      "ann_vol": 0.12862917360798956,
      "avg_turnover": 0.8343953476036271,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7247745833450341,
      "cagr": 0.12202151659455684,
      "calmar": 0.5495692428916782,
      "cost_drag_cagr": 0.01316102367551375,
      "cost_multiplier": 2.0,
      "features": 24,
      "gross_ann_vol": 0.12874788458471878,
      "gross_cagr": 0.1351825402700706,
      "gross_calmar": 0.6162672866990959,
      "gross_max_drawdown": -0.2193569952319666,
      "gross_sharpe": 1.0495726145464614,
      "gross_sortino": 1.4609915906058084,
      "gross_total_return": 0.8447281806657327,
      "hit_rate": 0.4371405094494659,
      "icir": 0.11077674858956181,
      "information_ratio": 0.3711556418881977,
      "max_drawdown": -0.22203119656499348,
      "method": "ridge",
      "n_rebalances": 45,
      "rank_ic_mean": 0.01122386777239804,
      "seed": 42,
      "sharpe": 0.9597243979273145,
      "sortino": 1.3299354866024526,
      "total_return": 0.7437088759892885
    },
    {
      "alpha_ann": 0.106840066620979,
      "ann_vol": 0.13161726095889753,
      "avg_turnover": 0.905309825287292,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7305365202511559,
      "cagr": 0.1780238094323885,
      "calmar": 0.8499798921189075,
      "cost_drag_cagr": 0.007446802814900622,
      "cost_multiplier": 1.0,
      "features": 24,
      "gross_ann_vol": 0.13169056955101677,
      "gross_cagr": 0.1854706122472891,
      "gross_calmar": 0.8925617586785181,
      "gross_max_drawdown": -0.20779583086988573,
      "gross_sharpe": 1.358322684194003,
      "gross_sortino": 1.9369339036334832,
      "gross_total_return": 1.2742887970761,
      "hit_rate": 0.44207066557107644,
      "icir": 0.2528670523803887,
      "information_ratio": 0.8855211491992206,
      "max_drawdown": -0.20944473049661738,
      "method": "lightgbm",
      "n_rebalances": 45,
      "rank_ic_mean": 0.019865709064018168,
      "seed": 11,
      "sharpe": 1.3110999966631693,
      "sortino": 1.8645039106154508,
      "total_return": 1.2061191895168832
    },
    {
      "alpha_ann": 0.10063737859783992,
      "ann_vol": 0.13166540404347488,
      "avg_turnover": 0.9055999993970426,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7307339841091748,
      "cagr": 0.170756948083435,
      "calmar": 0.8072623739450959,
      "cost_drag_cagr": 0.014851633753978577,
      "cost_multiplier": 2.0,
      "features": 24,
      "gross_ann_vol": 0.1317802430972225,
      "gross_cagr": 0.18560858183741358,
      "gross_calmar": 0.8927100592571888,
      "gross_max_drawdown": -0.20791586239305493,
      "gross_sharpe": 1.3583718901820283,
      "gross_sortino": 1.9370216228059136,
      "gross_total_return": 1.275567368543514,
      "hit_rate": 0.44124897288414133,
      "icir": 0.2528670523803887,
      "information_ratio": 0.8189642237955739,
      "max_drawdown": -0.2115259593345653,
      "method": "lightgbm",
      "n_rebalances": 45,
      "rank_ic_mean": 0.019865709064018168,
      "seed": 11,
      "sharpe": 1.2636460472613429,
      "sortino": 1.7922257778076478,
      "total_return": 1.14116877772552
    },
    {
      "alpha_ann": 0.10936071144743903,
      "ann_vol": 0.1313035357613569,
      "avg_turnover": 0.8788130473087776,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7318323998086893,
      "cagr": 0.18117970621526136,
      "calmar": 0.8622818965002308,
      "cost_drag_cagr": 0.007247557720413189,
      "cost_multiplier": 1.0,
      "features": 24,
      "gross_ann_vol": 0.13138128367171562,
      "gross_cagr": 0.18842726393567455,
      "gross_calmar": 0.9024006071952294,
      "gross_max_drawdown": -0.20880666794022817,
      "gross_sharpe": 1.3801939471434774,
      "gross_sortino": 1.968737115959602,
      "gross_total_return": 1.301813260372016,
      "hit_rate": 0.4437140509449466,
      "icir": 0.2494739043742614,
      "information_ratio": 0.9207503385828961,
      "max_drawdown": -0.21011656043182725,
      "method": "lightgbm",
      "n_rebalances": 45,
      "rank_ic_mean": 0.019772361592348513,
      "seed": 29,
      "sharpe": 1.3343176106682244,
      "sortino": 1.8985565735470926,
      "total_return": 1.234808182847567
    },
    {
      "alpha_ann": 0.10334846798556419,
      "ann_vol": 0.13134246033129526,
      "avg_turnover": 0.8790710605867381,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7319865758443684,
      "cagr": 0.17411383171132244,
      "calmar": 0.8215806720491827,
      "cost_drag_cagr": 0.014455395516418168,
      "cost_multiplier": 2.0,
      "features": 24,
      "gross_ann_vol": 0.1314676026985098,
      "gross_cagr": 0.1885692272277406,
      "gross_calmar": 0.9026170266152419,
      "gross_max_drawdown": -0.20891388226395813,
      "gross_sharpe": 1.3802834078505006,
      "gross_sortino": 1.9688842743805863,
      "gross_total_return": 1.30314145864519,
      "hit_rate": 0.4428923582580115,
      "icir": 0.2494739043742614,
      "information_ratio": 0.855730315688115,
      "max_drawdown": -0.21192542331485054,
      "method": "lightgbm",
      "n_rebalances": 45,
      "rank_ic_mean": 0.019772361592348513,
      "seed": 29,
      "sharpe": 1.288252456940464,
      "sortino": 1.8285782130139536,
      "total_return": 1.1709810188293543
    },
    {
      "alpha_ann": 0.11464126527462654,
      "ann_vol": 0.13242946647501735,
      "avg_turnover": 0.8911360298345471,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7355107801222112,
      "cagr": 0.1876470252107607,
      "calmar": 0.836945201923181,
      "cost_drag_cagr": 0.007389847208807421,
      "cost_multiplier": 1.0,
      "features": 24,
      "gross_ann_vol": 0.13250144294048496,
      "gross_cagr": 0.19503687241956813,
      "gross_calmar": 0.8753469794749738,
      "gross_max_drawdown": -0.22281092754389775,
      "gross_sharpe": 1.411520399944314,
      "gross_sortino": 2.0195858510874203,
      "gross_total_return": 1.3642999579983695,
      "hit_rate": 0.45110928512736237,
      "icir": 0.22741309824507214,
      "information_ratio": 0.9723686877997519,
      "max_drawdown": -0.22420467287413148,
      "method": "lightgbm",
      "n_rebalances": 45,
      "rank_ic_mean": 0.018191187721655802,
      "seed": 42,
      "sharpe": 1.3653464541110114,
      "sortino": 1.9486046720917776,
      "total_return": 1.2945242413056
    },
    {
      "alpha_ann": 0.10854318007830074,
      "ann_vol": 0.13247609776905764,
      "avg_turnover": 0.8914036720295224,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7357135082544666,
      "cagr": 0.1804452137826429,
      "calmar": 0.7994316119533469,
      "cost_drag_cagr": 0.014738629348552745,
      "cost_multiplier": 2.0,
      "features": 24,
      "gross_ann_vol": 0.13258935087666976,
      "gross_cagr": 0.19518384313119563,
      "gross_calmar": 0.8755294089372784,
      "gross_max_drawdown": -0.2229323665644889,
      "gross_sharpe": 1.4116007502259589,
      "gross_sortino": 2.019722205568994,
      "gross_total_return": 1.3657045311710778,
      "hit_rate": 0.45028759244042726,
      "icir": 0.22741309824507214,
      "information_ratio": 0.9070455285986505,
      "max_drawdown": -0.2257168857030053,
      "method": "lightgbm",
      "n_rebalances": 45,
      "rank_ic_mean": 0.018191187721655802,
      "seed": 42,
      "sharpe": 1.318971941521655,
      "sortino": 1.877762416020701,
      "total_return": 1.2281049460575093
    },
    {
      "alpha_ann": 0.05808712525889852,
      "ann_vol": 0.12983863647340832,
      "avg_turnover": 0.8544216117998843,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7322683240452622,
      "cagr": 0.12242485200147213,
      "calmar": 0.5646363280403609,
      "cost_drag_cagr": 0.006712566045787405,
      "cost_multiplier": 1.0,
      "features": 23,
      "gross_ann_vol": 0.12990886553601438,
      "gross_cagr": 0.12913741804725953,
      "gross_calmar": 0.599701613700191,
      "gross_max_drawdown": -0.21533611899170113,
      "gross_sharpe": 1.0002429794192376,
      "gross_sortino": 1.3840379133855978,
      "gross_total_return": 0.7977676110958178,
      "hit_rate": 0.44124897288414133,
      "icir": 0.08666738333965751,
      "information_ratio": 0.37614814804730384,
      "max_drawdown": -0.21682071436381445,
      "method": "ridge_without_size_feature",
      "n_rebalances": 45,
      "rank_ic_mean": 0.008857962167016904,
      "seed": 11,
      "sharpe": 0.9547716733118214,
      "sortino": 1.3180534756663251,
      "total_return": 0.7467380769870151
    },
    {
      "alpha_ann": 0.052192792925675455,
      "ann_vol": 0.12988151280826885,
      "avg_turnover": 0.8546842578021412,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.732340821002718,
      "cagr": 0.11583195079079611,
      "calmar": 0.5302814184925408,
      "cost_drag_cagr": 0.013388721983526475,
      "cost_multiplier": 2.0,
      "features": 23,
      "gross_ann_vol": 0.12999325797781444,
      "gross_cagr": 0.1292206727743226,
      "gross_calmar": 0.5997185615706021,
      "gross_max_drawdown": -0.21546885665153792,
      "gross_sharpe": 1.0002457299332892,
      "gross_sortino": 1.3840498654914128,
      "gross_total_return": 0.798407857285804,
      "hit_rate": 0.4396055875102712,
      "icir": 0.08666738333965751,
      "information_ratio": 0.31085084060917056,
      "max_drawdown": -0.21843486637732423,
      "method": "ridge_without_size_feature",
      "n_rebalances": 45,
      "rank_ic_mean": 0.008857962167016904,
      "seed": 11,
      "sharpe": 0.9091243208432253,
      "sortino": 1.2522011615567512,
      "total_return": 0.6977429983617107
    },
    {
      "alpha_ann": 0.05808712525889852,
      "ann_vol": 0.12983863647340832,
      "avg_turnover": 0.8544216117998843,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7322683240452622,
      "cagr": 0.12242485200147213,
      "calmar": 0.5646363280403609,
      "cost_drag_cagr": 0.006712566045787405,
      "cost_multiplier": 1.0,
      "features": 23,
      "gross_ann_vol": 0.12990886553601438,
      "gross_cagr": 0.12913741804725953,
      "gross_calmar": 0.599701613700191,
      "gross_max_drawdown": -0.21533611899170113,
      "gross_sharpe": 1.0002429794192376,
      "gross_sortino": 1.3840379133855978,
      "gross_total_return": 0.7977676110958178,
      "hit_rate": 0.44124897288414133,
      "icir": 0.08666738333965751,
      "information_ratio": 0.37614814804730384,
      "max_drawdown": -0.21682071436381445,
      "method": "ridge_without_size_feature",
      "n_rebalances": 45,
      "rank_ic_mean": 0.008857962167016904,
      "seed": 29,
      "sharpe": 0.9547716733118214,
      "sortino": 1.3180534756663251,
      "total_return": 0.7467380769870151
    },
    {
      "alpha_ann": 0.052192792925675455,
      "ann_vol": 0.12988151280826885,
      "avg_turnover": 0.8546842578021412,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.732340821002718,
      "cagr": 0.11583195079079611,
      "calmar": 0.5302814184925408,
      "cost_drag_cagr": 0.013388721983526475,
      "cost_multiplier": 2.0,
      "features": 23,
      "gross_ann_vol": 0.12999325797781444,
      "gross_cagr": 0.1292206727743226,
      "gross_calmar": 0.5997185615706021,
      "gross_max_drawdown": -0.21546885665153792,
      "gross_sharpe": 1.0002457299332892,
      "gross_sortino": 1.3840498654914128,
      "gross_total_return": 0.798407857285804,
      "hit_rate": 0.4396055875102712,
      "icir": 0.08666738333965751,
      "information_ratio": 0.31085084060917056,
      "max_drawdown": -0.21843486637732423,
      "method": "ridge_without_size_feature",
      "n_rebalances": 45,
      "rank_ic_mean": 0.008857962167016904,
      "seed": 29,
      "sharpe": 0.9091243208432253,
      "sortino": 1.2522011615567512,
      "total_return": 0.6977429983617107
    },
    {
      "alpha_ann": 0.05808712525889852,
      "ann_vol": 0.12983863647340832,
      "avg_turnover": 0.8544216117998843,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7322683240452622,
      "cagr": 0.12242485200147213,
      "calmar": 0.5646363280403609,
      "cost_drag_cagr": 0.006712566045787405,
      "cost_multiplier": 1.0,
      "features": 23,
      "gross_ann_vol": 0.12990886553601438,
      "gross_cagr": 0.12913741804725953,
      "gross_calmar": 0.599701613700191,
      "gross_max_drawdown": -0.21533611899170113,
      "gross_sharpe": 1.0002429794192376,
      "gross_sortino": 1.3840379133855978,
      "gross_total_return": 0.7977676110958178,
      "hit_rate": 0.44124897288414133,
      "icir": 0.08666738333965751,
      "information_ratio": 0.37614814804730384,
      "max_drawdown": -0.21682071436381445,
      "method": "ridge_without_size_feature",
      "n_rebalances": 45,
      "rank_ic_mean": 0.008857962167016904,
      "seed": 42,
      "sharpe": 0.9547716733118214,
      "sortino": 1.3180534756663251,
      "total_return": 0.7467380769870151
    },
    {
      "alpha_ann": 0.052192792925675455,
      "ann_vol": 0.12988151280826885,
      "avg_turnover": 0.8546842578021412,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.732340821002718,
      "cagr": 0.11583195079079611,
      "calmar": 0.5302814184925408,
      "cost_drag_cagr": 0.013388721983526475,
      "cost_multiplier": 2.0,
      "features": 23,
      "gross_ann_vol": 0.12999325797781444,
      "gross_cagr": 0.1292206727743226,
      "gross_calmar": 0.5997185615706021,
      "gross_max_drawdown": -0.21546885665153792,
      "gross_sharpe": 1.0002457299332892,
      "gross_sortino": 1.3840498654914128,
      "gross_total_return": 0.798407857285804,
      "hit_rate": 0.4396055875102712,
      "icir": 0.08666738333965751,
      "information_ratio": 0.31085084060917056,
      "max_drawdown": -0.21843486637732423,
      "method": "ridge_without_size_feature",
      "n_rebalances": 45,
      "rank_ic_mean": 0.008857962167016904,
      "seed": 42,
      "sharpe": 0.9091243208432253,
      "sortino": 1.2522011615567512,
      "total_return": 0.6977429983617107
    },
    {
      "alpha_ann": 0.06760678334561901,
      "ann_vol": 0.11054939563518908,
      "avg_turnover": 0.07063301370457535,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.6504673183190346,
      "cagr": 0.12747027098593877,
      "calmar": 0.6816769511600029,
      "cost_drag_cagr": 0.0005251833309654064,
      "cost_multiplier": 1.0,
      "features": 24,
      "gross_ann_vol": 0.11055005618379983,
      "gross_cagr": 0.12799545431690418,
      "gross_calmar": 0.6848207094879702,
      "gross_max_drawdown": -0.18690359760382302,
      "gross_sharpe": 1.1451156455557616,
      "gross_sortino": 1.5998571065208835,
      "gross_total_return": 0.7890038989028143,
      "hit_rate": 0.44207066557107644,
      "icir": null,
      "information_ratio": 0.445336613265992,
      "max_drawdown": -0.18699513129939904,
      "method": "equal_weight",
      "n_rebalances": 45,
      "rank_ic_mean": null,
      "seed": null,
      "sharpe": 1.1409073225701978,
      "sortino": 1.5937506090921907,
      "total_return": 0.7849849012643737
    },
    {
      "alpha_ann": 0.06714741076202517,
      "ann_vol": 0.11055882575792245,
      "avg_turnover": 0.0706409243163589,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.6505026079364971,
      "cagr": 0.1269550983762857,
      "calmar": 0.6785680424417304,
      "cost_drag_cagr": 0.0010503768389573676,
      "cost_multiplier": 2.0,
      "features": 24,
      "gross_ann_vol": 0.11055911049509211,
      "gross_cagr": 0.12800547521524308,
      "gross_calmar": 0.6848524033819003,
      "gross_max_drawdown": -0.18690958020024973,
      "gross_sharpe": 1.1451113068922971,
      "gross_sortino": 1.5998646202039242,
      "gross_total_return": 0.7890806541400734,
      "hit_rate": 0.44207066557107644,
      "icir": null,
      "information_ratio": 0.43969281742268385,
      "max_drawdown": -0.18709265753137427,
      "method": "equal_weight",
      "n_rebalances": 45,
      "rank_ic_mean": null,
      "seed": null,
      "sharpe": 1.1366837192823027,
      "sortino": 1.5876249630772774,
      "total_return": 0.7810494703280884
    },
    {
      "alpha_ann": 0.05055281113531381,
      "ann_vol": 0.13408918719385457,
      "avg_turnover": 0.5618111476483862,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7359513182474047,
      "cagr": 0.11375000726678941,
      "calmar": 0.4860084735184234,
      "cost_drag_cagr": 0.004316158196006281,
      "cost_multiplier": 1.0,
      "features": 24,
      "gross_ann_vol": 0.13409941518308496,
      "gross_cagr": 0.11806616546279569,
      "gross_calmar": 0.505667546234715,
      "gross_max_drawdown": -0.23348574837743907,
      "gross_sharpe": 0.8995860058491596,
      "gross_sortino": 1.2477145842423036,
      "gross_total_return": 0.7142228393418086,
      "hit_rate": 0.4486442070665571,
      "icir": 0.01029025630928,
      "information_ratio": 0.2800742962310092,
      "max_drawdown": -0.2340494321905633,
      "method": "single_momentum",
      "n_rebalances": 45,
      "rank_ic_mean": 0.0016129404992156642,
      "seed": null,
      "sharpe": 0.870788198164501,
      "sortino": 1.206036863113215,
      "total_return": 0.6824996421436609
    },
    {
      "alpha_ann": 0.046734103368734986,
      "ann_vol": 0.13414790490937456,
      "avg_turnover": 0.5619319358802547,
      "backtest_end": "2019-10-31",
      "backtest_start": "2015-01-02",
      "beta": 0.7359976610719443,
      "cagr": 0.10950242495160722,
      "calmar": 0.4665625701886216,
      "cost_drag_cagr": 0.008617752503440324,
      "cost_multiplier": 2.0,
      "features": 24,
      "gross_ann_vol": 0.13415632280535472,
      "gross_cagr": 0.11812017745504755,
      "gross_calmar": 0.5057089509783171,
      "gross_max_drawdown": -0.23357343631458105,
      "gross_sharpe": 0.8996217122413772,
      "gross_sortino": 1.2477730567980523,
      "gross_total_return": 0.7146228026723886,
      "hit_rate": 0.4486442070665571,
      "icir": 0.01029025630928,
      "information_ratio": 0.24002286182939522,
      "max_drawdown": -0.234700406651433,
      "method": "single_momentum",
      "n_rebalances": 45,
      "rank_ic_mean": 0.0016129404992156642,
      "seed": null,
      "sharpe": 0.8419717273276843,
      "sortino": 1.164462361719082,
      "total_return": 0.6517367152896028
    }
  ],
  "data_kind": "exploratory_real_market",
  "dataset": {
    "features": [
      "adv_21d",
      "amihud_illiquidity",
      "beta_252d",
      "dollar_volume_ratio",
      "downside_volatility",
      "idiosyncratic_volatility",
      "industry_momentum",
      "log_adv_21d",
      "log_market_cap",
      "log_price",
      "max_drawdown_252d",
      "mom_120d",
      "mom_12_1",
      "mom_20d",
      "mom_60d",
      "mom_6_1",
      "residual_momentum",
      "return_skew_126d",
      "rev_21d",
      "rev_5d",
      "turnover_21d",
      "volatility_252d",
      "volatility_60d",
      "zero_trading_days"
    ],
    "forecast_end": "2019-10-16",
    "forecast_start": "2014-01-02",
    "horizon_sessions": 21,
    "oos_forecasts": 551698,
    "samples": 840736
  },
  "dataset_sha256": "8906ace6a84d22bdc78a05fedcd75498d964dd56555da00492892f5eb7a9a7cd",
  "environment": {
    "numpy": "2.3.5",
    "pandas": "2.2.3",
    "python": "3.12.14",
    "scikit_learn": "1.8.0"
  },
  "limitations": [
    "Seed variation is not market sampling uncertainty or proof of tradable alpha.",
    "Cost inputs are fixed scenarios, not measured execution costs.",
    "The equal-weight baseline differs in diversification; its holdings rule is explicit.",
    "Source hashes establish identity, not complete historical data quality."
  ],
  "protocol": {
    "ablation": "drop explicit log_market_cap predictor only; earlier size neutralization remains",
    "backtest": {
      "allow_short": false,
      "benchmark": "SP500",
      "end_date": "2019-10-31",
      "execution_lag_days": 1,
      "initial_capital": 10000000,
      "rebalance": "monthly",
      "start_date": "2015-01-01"
    },
    "cost": {
      "commission_bps": 2.0,
      "impact_coeff_bps": 10.0,
      "min_commission": 0.0,
      "participation_cap": 0.1,
      "slippage_bps": 5.0
    },
    "cost_multipliers": [
      1.0,
      2.0
    ],
    "model_params": {
      "lightgbm": {
        "bagging_fraction": 0.8,
        "bagging_freq": 1,
        "feature_fraction": 0.7,
        "lambda_l2": 1.0,
        "learning_rate": 0.05,
        "min_data_in_leaf": 200,
        "n_estimators": 100,
        "num_leaves": 15,
        "num_threads": 1
      },
      "ridge": {
        "alpha": 1.0
      }
    },
    "model_selection": "none; all seeds/cost cells reported; failed cells raise",
    "portfolio": "long-only equal-weight top 50; equal-weight baseline holds all forecastable eligible names",
    "seeds": [
      11,
      29,
      42
    ],
    "signal_availability": "forecast panel forward-fill only; no backfill",
    "ties": "score descending then symbol ascending",
    "walk_forward": {
      "embargo_days": 21,
      "expanding": true,
      "purge_days": 21,
      "step_years": 1,
      "test_years": 1,
      "train_years": 4
    }
  },
  "source_assurance": {
    "data_kind": "public_market_mirror",
    "effective_end": "2019-11-14",
    "effective_start": "2010-01-04",
    "limitations": [
      "Historical membership is incomplete; survivorship/selection bias remains.",
      "Financial availability is an assumed lag, not actual publication history.",
      "Size uses a dollar-volume proxy, not measured market capitalization."
    ],
    "price_sessions": 2485,
    "processed_sha256": {
      "benchmark.parquet": "c9ee2d26849c9584c6a0ec04f2ba4637e720c69692aab906bae49ead3e8aaed9",
      "constituents.parquet": "80e9a1bcc1c88643efe85f28b6e94625103241e578fed0de6e0e93a74a927ce4",
      "fundamentals.parquet": "49bcca1878cec46605872c96898d5e7d383c45477ea8a875ea850f5952528eac",
      "industry.parquet": "8048708f49570a5e94c96162def4aa0458a8059344d26f9a8dcc36dbc00e7ea6",
      "macro.parquet": "af9920d0db6ae238d47f6ba5560f98880f7734f33060dc8bfb552308524bc588",
      "prices.parquet": "dd0ff0099ac803ff810fe419a67f4279ea40cf615141a014829f60a3d0fc4fad"
    },
    "raw_sha256": {
      "sp500_constituents.parquet": "813b095291414dab8fc278920e7e829190c5bc448dccf1f1dc0901ab3f1c458a",
      "sp500_daily.parquet": "3ef81acc674028769126b4264bebd03d6897eada1f0205fd6f6d3c28afc97c8b",
      "sp500_daily_ratios.zip": "a5f7ae23ee3871544d734e34ce1f429074084c6582c559b0778dfd34b6ac59c3",
      "spy_daily.jsonl": "e20cd9764743799d39259dffa54286fc4a9cd5eefd5af7feca0cc6a595b930fa"
    },
    "requested_end": "2019-11-14",
    "requested_start": "2010-01-01",
    "schema_version": 1,
    "scope": "Identity and declared source properties; not independent economic validation",
    "source_declarations": {
      "actual_filing_availability": false,
      "actual_market_capitalization": false,
      "complete_historical_universe": false,
      "fundamental_availability": "fiscal period end plus fixed lag, not actual filing date",
      "fundamental_lag_days": 90,
      "market_capitalization": "unavailable; panel substitutes a dollar-volume proxy",
      "universe_history": "current members with entry dates; removed/delisted names incomplete"
    },
    "source_urls": {
      "benchmark": "https://huggingface.co/datasets/mmirmomeni/spy_daily/resolve/main/train.jsonl",
      "constituents": "https://huggingface.co/datasets/jwigginton/index-constituents-sp500/resolve/main/data/train-00000-of-00001.parquet",
      "fundamentals": "https://huggingface.co/datasets/pmoe7/SP_500_Stocks_Data-ratios_news_price_10_yrs/resolve/main/sp500_daily_ratios_20yrs.zip",
      "prices": "https://huggingface.co/datasets/jwigginton/timeseries-daily-sp500/resolve/main/data/train-00000-of-00001.parquet"
    },
    "status": "exploratory"
  }
}
