{
 "window": [
  "2017-08-01",
  "2026-10-26"
 ],
 "base": {
  "value_bm": {
   "full": {
    "strategy": {
     "cagr": 0.056981580023804046,
     "sharpe": 0.3335914692057612,
     "monthly_sortino": 0.5129211014078405,
     "max_drawdown": -0.7086256522983649,
     "volatility": 0.32465076108098617
    },
    "qqq": {
     "cagr": 0.19730807643065318,
     "sharpe": 0.8913650851480289,
     "monthly_sortino": 1.752453964024575,
     "max_drawdown": -0.3512252567482328,
     "volatility": 0.233171872969389
    },
    "beats_qqq": 0.0
   },
   "first_half": {
    "strategy": {
     "cagr": 0.021374159955720007,
     "sharpe": 0.24272637151820928,
     "monthly_sortino": 0.37748821474906774,
     "max_drawdown": -0.7086256522983649,
     "volatility": 0.3705464424643717
    },
    "qqq": {
     "cagr": 0.20455870896801387,
     "sharpe": 0.8992573946739738,
     "monthly_sortino": 1.884616389300686,
     "max_drawdown": -0.2855937209891132,
     "volatility": 0.23914740042157165
    },
    "beats_qqq": 0.0
   },
   "second_half": {
    "strategy": {
     "cagr": 0.09385258810959574,
     "sharpe": 0.4676693427926111,
     "monthly_sortino": 0.6051308837527922,
     "max_drawdown": -0.33042226084903725,
     "volatility": 0.27100199949561665
    },
    "qqq": {
     "cagr": 0.19009682611108714,
     "sharpe": 0.8832374380219223,
     "monthly_sortino": 1.4275016239638862,
     "max_drawdown": -0.2956605814973212,
     "volatility": 0.2271148258091433
    },
    "beats_qqq": 0.0
   },
   "annual_turnover": 2.316363636363636,
   "avg_holdings": 30.0
  },
  "gross_profitability": {
   "full": {
    "strategy": {
     "cagr": 0.09874225133235592,
     "sharpe": 0.5061436185436434,
     "monthly_sortino": 0.8265684444194812,
     "max_drawdown": -0.44971910198699994,
     "volatility": 0.24688742766384475
    },
    "qqq": {
     "cagr": 0.19730807643065318,
     "sharpe": 0.8913650851480289,
     "monthly_sortino": 1.752453964024575,
     "max_drawdown": -0.3512252567482328,
     "volatility": 0.233171872969389
    },
    "beats_qqq": 0.0
   },
   "first_half": {
    "strategy": {
     "cagr": 0.09202409011190471,
     "sharpe": 0.47535576167943383,
     "monthly_sortino": 0.7325063149954529,
     "max_drawdown": -0.43979831879295805,
     "volatility": 0.25286793629337234
    },
    "qqq": {
     "cagr": 0.20455870896801387,
     "sharpe": 0.8992573946739738,
     "monthly_sortino": 1.884616389300686,
     "max_drawdown": -0.2855937209891132,
     "volatility": 0.23914740042157165
    },
    "beats_qqq": 0.0
   },
   "second_half": {
    "strategy": {
     "cagr": 0.10550576436190551,
     "sharpe": 0.5386936645910506,
     "monthly_sortino": 0.8462462503960854,
     "max_drawdown": -0.31574873578248874,
     "volatility": 0.2408406025099784
    },
    "qqq": {
     "cagr": 0.19009682611108714,
     "sharpe": 0.8832374380219223,
     "monthly_sortino": 1.4275016239638862,
     "max_drawdown": -0.2956605814973212,
     "volatility": 0.2271148258091433
    },
    "beats_qqq": 0.0
   },
   "annual_turnover": 1.2836363636363635,
   "avg_holdings": 30.0
  },
  "asset_growth": {
   "full": {
    "strategy": {
     "cagr": 0.10882091160806873,
     "sharpe": 0.5167720761935576,
     "monthly_sortino": 0.8120599285510606,
     "max_drawdown": -0.49228417326263585,
     "volatility": 0.2728519566655002
    },
    "qqq": {
     "cagr": 0.19730807643065318,
     "sharpe": 0.8913650851480289,
     "monthly_sortino": 1.752453964024575,
     "max_drawdown": -0.3512252567482328,
     "volatility": 0.233171872969389
    },
    "beats_qqq": 0.0
   },
   "first_half": {
    "strategy": {
     "cagr": 0.0887563179944999,
     "sharpe": 0.44130870646161224,
     "monthly_sortino": 0.6626026049483951,
     "max_drawdown": -0.49228417326263585,
     "volatility": 0.2872979894544465
    },
    "qqq": {
     "cagr": 0.20455870896801387,
     "sharpe": 0.8992573946739738,
     "monthly_sortino": 1.884616389300686,
     "max_drawdown": -0.2855937209891132,
     "volatility": 0.23914740042157165
    },
    "beats_qqq": 0.0
   },
   "second_half": {
    "strategy": {
     "cagr": 0.1292675049285752,
     "sharpe": 0.6026712675841445,
     "monthly_sortino": 0.9221923399999159,
     "max_drawdown": -0.3017797981160655,
     "volatility": 0.2576509394693047
    },
    "qqq": {
     "cagr": 0.19009682611108714,
     "sharpe": 0.8832374380219223,
     "monthly_sortino": 1.4275016239638862,
     "max_drawdown": -0.2956605814973212,
     "volatility": 0.2271148258091433
    },
    "beats_qqq": 0.0
   },
   "annual_turnover": 2.4799999999999995,
   "avg_holdings": 30.0
  },
  "accruals": {
   "full": {
    "strategy": {
     "cagr": 0.07350596404622523,
     "sharpe": 0.3783426900118265,
     "monthly_sortino": 0.6039083074701393,
     "max_drawdown": -0.6113125093153716,
     "volatility": 0.3547182546187276
    },
    "qqq": {
     "cagr": 0.19730807643065318,
     "sharpe": 0.8913650851480289,
     "monthly_sortino": 1.752453964024575,
     "max_drawdown": -0.3512252567482328,
     "volatility": 0.233171872969389
    },
    "beats_qqq": 0.0
   },
   "first_half": {
    "strategy": {
     "cagr": 0.1039397135859561,
     "sharpe": 0.46379506005809307,
     "monthly_sortino": 0.7274713221255356,
     "max_drawdown": -0.4844621205309053,
     "volatility": 0.33596469257840234
    },
    "qqq": {
     "cagr": 0.20455870896801387,
     "sharpe": 0.8992573946739738,
     "monthly_sortino": 1.884616389300686,
     "max_drawdown": -0.2855937209891132,
     "volatility": 0.23914740042157165
    },
    "beats_qqq": 0.0
   },
   "second_half": {
    "strategy": {
     "cagr": 0.043893912600080354,
     "sharpe": 0.30180966679672855,
     "monthly_sortino": 0.2272092516959842,
     "max_drawdown": -0.44914905376642,
     "volatility": 0.37274494979185807
    },
    "qqq": {
     "cagr": 0.19009682611108714,
     "sharpe": 0.8832374380219223,
     "monthly_sortino": 1.4275016239638862,
     "max_drawdown": -0.2956605814973212,
     "volatility": 0.2271148258091433
    },
    "beats_qqq": 0.0
   },
   "annual_turnover": 2.130909090909091,
   "avg_holdings": 30.0
  },
  "buyback_yield": {
   "full": {
    "strategy": {
     "cagr": 0.1160249532262776,
     "sharpe": 0.5392169332391346,
     "monthly_sortino": 0.8547005415031612,
     "max_drawdown": -0.5143150540876851,
     "volatility": 0.27385197671401756
    },
    "qqq": {
     "cagr": 0.19730807643065318,
     "sharpe": 0.8913650851480289,
     "monthly_sortino": 1.752453964024575,
     "max_drawdown": -0.3512252567482328,
     "volatility": 0.233171872969389
    },
    "beats_qqq": 0.0
   },
   "first_half": {
    "strategy": {
     "cagr": 0.10265290639591562,
     "sharpe": 0.4799949316582357,
     "monthly_sortino": 0.7299621703866007,
     "max_drawdown": -0.5143150540876851,
     "volatility": 0.2946638019234093
    },
    "qqq": {
     "cagr": 0.20455870896801387,
     "sharpe": 0.8992573946739738,
     "monthly_sortino": 1.884616389300686,
     "max_drawdown": -0.2855937209891132,
     "volatility": 0.23914740042157165
    },
    "beats_qqq": 0.0
   },
   "second_half": {
    "strategy": {
     "cagr": 0.12956724090845984,
     "sharpe": 0.6123790932905483,
     "monthly_sortino": 1.0079832249213188,
     "max_drawdown": -0.2571987223629807,
     "volatility": 0.2513492208089579
    },
    "qqq": {
     "cagr": 0.19009682611108714,
     "sharpe": 0.8832374380219223,
     "monthly_sortino": 1.4275016239638862,
     "max_drawdown": -0.2956605814973212,
     "volatility": 0.2271148258091433
    },
    "beats_qqq": 0.0
   },
   "annual_turnover": 2.210909090909091,
   "avg_holdings": 30.0
  },
  "high_52w": {
   "full": {
    "strategy": {
     "cagr": 0.1075766123771591,
     "sharpe": 0.6372093749943984,
     "monthly_sortino": 1.1401279263922754,
     "max_drawdown": -0.2780983687350673,
     "volatility": 0.18893380982330565
    },
    "qqq": {
     "cagr": 0.19730807643065318,
     "sharpe": 0.8913650851480289,
     "monthly_sortino": 1.752453964024575,
     "max_drawdown": -0.3512252567482328,
     "volatility": 0.233171872969389
    },
    "beats_qqq": 0.0
   },
   "first_half": {
    "strategy": {
     "cagr": 0.14057075652988482,
     "sharpe": 0.7494338693589526,
     "monthly_sortino": 1.5524944827730902,
     "max_drawdown": -0.2780983687350673,
     "volatility": 0.2034612371546302
    },
    "qqq": {
     "cagr": 0.20455870896801387,
     "sharpe": 0.8992573946739738,
     "monthly_sortino": 1.884616389300686,
     "max_drawdown": -0.2855937209891132,
     "volatility": 0.23914740042157165
    },
    "beats_qqq": 0.0
   },
   "second_half": {
    "strategy": {
     "cagr": 0.07551818886852457,
     "sharpe": 0.5090559240228913,
     "monthly_sortino": 0.6504008388438857,
     "max_drawdown": -0.2558714391953403,
     "volatility": 0.17318625322224482
    },
    "qqq": {
     "cagr": 0.19009682611108714,
     "sharpe": 0.8832374380219223,
     "monthly_sortino": 1.4275016239638862,
     "max_drawdown": -0.2956605814973212,
     "volatility": 0.2271148258091433
    },
    "beats_qqq": 0.0
   },
   "annual_turnover": 10.614545454545468,
   "avg_holdings": 30.0
  },
  "low_beta": {
   "full": {
    "strategy": {
     "cagr": 0.09265288268250815,
     "sharpe": 0.5999202074823605,
     "monthly_sortino": 1.2003653688985003,
     "max_drawdown": -0.3187401660913217,
     "volatility": 0.1730687957026893
    },
    "qqq": {
     "cagr": 0.19730807643065318,
     "sharpe": 0.8913650851480289,
     "monthly_sortino": 1.752453964024575,
     "max_drawdown": -0.3512252567482328,
     "volatility": 0.233171872969389
    },
    "beats_qqq": 0.0
   },
   "first_half": {
    "strategy": {
     "cagr": 0.1331081282077573,
     "sharpe": 0.7107496818800143,
     "monthly_sortino": 1.595879894460354,
     "max_drawdown": -0.3187401660913217,
     "volatility": 0.20573612970208605
    },
    "qqq": {
     "cagr": 0.20455870896801387,
     "sharpe": 0.8992573946739738,
     "monthly_sortino": 1.884616389300686,
     "max_drawdown": -0.2855937209891132,
     "volatility": 0.23914740042157165
    },
    "beats_qqq": 0.0
   },
   "second_half": {
    "strategy": {
     "cagr": 0.053619286894985185,
     "sharpe": 0.4624890763703065,
     "monthly_sortino": 0.6895649276457183,
     "max_drawdown": -0.18603126401886905,
     "volatility": 0.13242469558729567
    },
    "qqq": {
     "cagr": 0.19009682611108714,
     "sharpe": 0.8832374380219223,
     "monthly_sortino": 1.4275016239638862,
     "max_drawdown": -0.2956605814973212,
     "volatility": 0.2271148258091433
    },
    "beats_qqq": 0.0
   },
   "annual_turnover": 1.9236363636363643,
   "avg_holdings": 30.0
  },
  "low_ivol": {
   "full": {
    "strategy": {
     "cagr": 0.10675773909387298,
     "sharpe": 0.7471492883827904,
     "monthly_sortino": 1.3257490915693315,
     "max_drawdown": -0.35758130880398675,
     "volatility": 0.15168547647624006
    },
    "qqq": {
     "cagr": 0.19730807643065318,
     "sharpe": 0.8913650851480289,
     "monthly_sortino": 1.752453964024575,
     "max_drawdown": -0.3512252567482328,
     "volatility": 0.233171872969389
    },
    "beats_qqq": 0.0
   },
   "first_half": {
    "strategy": {
     "cagr": 0.11791904057209912,
     "sharpe": 0.6972175261680252,
     "monthly_sortino": 1.2415390486498028,
     "max_drawdown": -0.35758130880398675,
     "volatility": 0.18483098536712048
    },
    "qqq": {
     "cagr": 0.20455870896801387,
     "sharpe": 0.8992573946739738,
     "monthly_sortino": 1.884616389300686,
     "max_drawdown": -0.2855937209891132,
     "volatility": 0.23914740042157165
    },
    "beats_qqq": 0.0
   },
   "second_half": {
    "strategy": {
     "cagr": 0.09570135097822696,
     "sharpe": 0.8987453150024322,
     "monthly_sortino": 1.3538445432048316,
     "max_drawdown": -0.11937972806981645,
     "volatility": 0.10873926984516177
    },
    "qqq": {
     "cagr": 0.19009682611108714,
     "sharpe": 0.8832374380219223,
     "monthly_sortino": 1.4275016239638862,
     "max_drawdown": -0.2956605814973212,
     "volatility": 0.2271148258091433
    },
    "beats_qqq": 1.0
   },
   "annual_turnover": 8.745454545454557,
   "avg_holdings": 30.0
  },
  "fscore": {
   "full": {
    "strategy": {
     "cagr": 0.02689250882898686,
     "sharpe": 0.23346220595870826,
     "monthly_sortino": 0.32262934302358764,
     "max_drawdown": -0.6856974200865689,
     "volatility": 0.2524432868577895
    },
    "qqq": {
     "cagr": 0.19730807643065318,
     "sharpe": 0.8913650851480289,
     "monthly_sortino": 1.752453964024575,
     "max_drawdown": -0.3512252567482328,
     "volatility": 0.233171872969389
    },
    "beats_qqq": 0.0
   },
   "first_half": {
    "strategy": {
     "cagr": -0.07501759999802016,
     "sharpe": -0.11685651671039868,
     "monthly_sortino": -0.16660749081668072,
     "max_drawdown": -0.6856974200865689,
     "volatility": 0.2929187286526475
    },
    "qqq": {
     "cagr": 0.20455870896801387,
     "sharpe": 0.8992573946739738,
     "monthly_sortino": 1.884616389300686,
     "max_drawdown": -0.2855937209891132,
     "volatility": 0.23914740042157165
    },
    "beats_qqq": 0.0
   },
   "second_half": {
    "strategy": {
     "cagr": 0.14010125745066326,
     "sharpe": 0.7482132604480504,
     "monthly_sortino": 1.1294924698723927,
     "max_drawdown": -0.26192707828045236,
     "volatility": 0.20382379238812576
    },
    "qqq": {
     "cagr": 0.19009682611108714,
     "sharpe": 0.8832374380219223,
     "monthly_sortino": 1.4275016239638862,
     "max_drawdown": -0.2956605814973212,
     "volatility": 0.2271148258091433
    },
    "beats_qqq": 0.0
   },
   "annual_turnover": 3.1606545045578223,
   "avg_holdings": 34.1981981981982
  },
  "qmj": {
   "full": {
    "strategy": {
     "cagr": 0.12308612054469803,
     "sharpe": 0.6885656591935148,
     "monthly_sortino": 1.1631833033991783,
     "max_drawdown": -0.359208041629111,
     "volatility": 0.1974970899531409
    },
    "qqq": {
     "cagr": 0.19730807643065318,
     "sharpe": 0.8913650851480289,
     "monthly_sortino": 1.752453964024575,
     "max_drawdown": -0.3512252567482328,
     "volatility": 0.233171872969389
    },
    "beats_qqq": 0.0
   },
   "first_half": {
    "strategy": {
     "cagr": 0.10404809237410428,
     "sharpe": 0.5917472046148954,
     "monthly_sortino": 0.9473652543676969,
     "max_drawdown": -0.359208041629111,
     "volatility": 0.2022636248461606
    },
    "qqq": {
     "cagr": 0.20455870896801387,
     "sharpe": 0.8992573946739738,
     "monthly_sortino": 1.884616389300686,
     "max_drawdown": -0.2855937209891132,
     "volatility": 0.23914740042157165
    },
    "beats_qqq": 0.0
   },
   "second_half": {
    "strategy": {
     "cagr": 0.14246402249520096,
     "sharpe": 0.7907733852509812,
     "monthly_sortino": 1.3503328440553812,
     "max_drawdown": -0.1735570510412343,
     "volatility": 0.19267324803664396
    },
    "qqq": {
     "cagr": 0.19009682611108714,
     "sharpe": 0.8832374380219223,
     "monthly_sortino": 1.4275016239638862,
     "max_drawdown": -0.2956605814973212,
     "volatility": 0.2271148258091433
    },
    "beats_qqq": 0.0
   },
   "annual_turnover": 2.1963636363636367,
   "avg_holdings": 30.0
  },
  "equal_weight_universe": {
   "full": {
    "strategy": {
     "cagr": 0.1046834911955572,
     "sharpe": 0.5742469966872412,
     "monthly_sortino": 0.9291738504944622,
     "max_drawdown": -0.4138179048675381,
     "volatility": 0.21393593687238646
    },
    "qqq": {
     "cagr": 0.19730807643065318,
     "sharpe": 0.8913650851480289,
     "monthly_sortino": 1.752453964024575,
     "max_drawdown": -0.3512252567482328,
     "volatility": 0.233171872969389
    },
    "beats_qqq": 0.0
   },
   "first_half": {
    "strategy": {
     "cagr": 0.10911585547406255,
     "sharpe": 0.5676963257118641,
     "monthly_sortino": 0.8829283132108064,
     "max_drawdown": -0.4138179048675381,
     "volatility": 0.2294493311916598
    },
    "qqq": {
     "cagr": 0.20455870896801387,
     "sharpe": 0.8992573946739738,
     "monthly_sortino": 1.884616389300686,
     "max_drawdown": -0.2855937209891132,
     "volatility": 0.23914740042157165
    },
    "beats_qqq": 0.0
   },
   "second_half": {
    "strategy": {
     "cagr": 0.10026622681774078,
     "sharpe": 0.5851785995332346,
     "monthly_sortino": 0.8495645132562293,
     "max_drawdown": -0.23541815668639776,
     "volatility": 0.1972297364091444
    },
    "qqq": {
     "cagr": 0.19009682611108714,
     "sharpe": 0.8832374380219223,
     "monthly_sortino": 1.4275016239638862,
     "max_drawdown": -0.2956605814973212,
     "volatility": 0.2271148258091433
    },
    "beats_qqq": 0.0
   }
  }
 },
 "qqq": {
  "cagr": 0.19730807643065318,
  "sharpe": 0.8913650851480289,
  "monthly_sortino": 1.752453964024575,
  "max_drawdown": -0.3512252567482328,
  "volatility": 0.233171872969389
 },
 "spy": {
  "cagr": 0.14781072306269283,
  "sharpe": 0.8379123203119908,
  "monthly_sortino": 1.547927188994418,
  "max_drawdown": -0.3369994018254904,
  "volatility": 0.18561377016608285
 },
 "grid": {
  "value_bm": {
   "combos": [
    {
     "params": [
      500,
      20
     ],
     "full": {
      "sharpe": 0.48894071333611994,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.49725580766798605,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.49040986891810034,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.10507888650478026,
     "max_drawdown": -0.6193044993923302,
     "monthly_sortino": 0.7623685617476458,
     "avg_holdings": 20.0
    },
    {
     "params": [
      500,
      30
     ],
     "full": {
      "sharpe": 0.5293472322523272,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5100883507132125,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5731674814400428,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.11344585512717975,
     "max_drawdown": -0.6095657253633814,
     "monthly_sortino": 0.811476325919973,
     "avg_holdings": 30.0
    },
    {
     "params": [
      500,
      50
     ],
     "full": {
      "sharpe": 0.5634778632343386,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5393700910135291,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6181650240638826,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.11682790554524414,
     "max_drawdown": -0.583988574332263,
     "monthly_sortino": 0.8516486097545604,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1000,
      20
     ],
     "full": {
      "sharpe": 0.35623544814454794,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.3005076190009779,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.44017049059416824,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.0652675830872973,
     "max_drawdown": -0.6940957822502848,
     "monthly_sortino": 0.5600505604579846,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1000,
      30
     ],
     "full": {
      "sharpe": 0.3335914692057612,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.24272637151820928,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.4676693427926111,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.056981580023804046,
     "max_drawdown": -0.7086256522983649,
     "monthly_sortino": 0.5129211014078405,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1000,
      50
     ],
     "full": {
      "sharpe": 0.3655328982324503,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.3079555549567639,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.4581936235493898,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.06642698197467434,
     "max_drawdown": -0.6818360142518014,
     "monthly_sortino": 0.5573733411197316,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1500,
      20
     ],
     "full": {
      "sharpe": 0.4768422307401661,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5594540434678341,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.3794161948688369,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.11116409141043082,
     "max_drawdown": -0.6196247029291695,
     "monthly_sortino": 0.7866486762407128,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1500,
      30
     ],
     "full": {
      "sharpe": 0.424083243201029,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.4332771044018681,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.4203582387585276,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.08945747657740277,
     "max_drawdown": -0.6915566745165548,
     "monthly_sortino": 0.6711136640459341,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1500,
      50
     ],
     "full": {
      "sharpe": 0.4213678443007559,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.4720155452725269,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.36336841128277836,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.08612480663901856,
     "max_drawdown": -0.6708443069414689,
     "monthly_sortino": 0.6545697555922281,
     "avg_holdings": 50.0
    }
   ],
   "wins": 0.0
  },
  "gross_profitability": {
   "combos": [
    {
     "params": [
      500,
      20
     ],
     "full": {
      "sharpe": 0.46992673882912644,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5439611596823931,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.39799397107900436,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.08932251702420468,
     "max_drawdown": -0.4532773383574733,
     "monthly_sortino": 0.7973202048918022,
     "avg_holdings": 20.0
    },
    {
     "params": [
      500,
      30
     ],
     "full": {
      "sharpe": 0.6308855239230499,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.8125527548351688,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.40911095568071937,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.14362290631059627,
     "max_drawdown": -0.42048601265372243,
     "monthly_sortino": 1.2710192712805277,
     "avg_holdings": 30.0
    },
    {
     "params": [
      500,
      50
     ],
     "full": {
      "sharpe": 0.6167570901226219,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7770699054923835,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.4306025004442612,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.1259582328330271,
     "max_drawdown": -0.3831652613040084,
     "monthly_sortino": 1.134091616970429,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1000,
      20
     ],
     "full": {
      "sharpe": 0.47618337763897317,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.44944083150066005,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5037747851007632,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09375277890497813,
     "max_drawdown": -0.495502810423041,
     "monthly_sortino": 0.7702355251438798,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1000,
      30
     ],
     "full": {
      "sharpe": 0.5061436185436434,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.47535576167943383,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5386936645910506,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09874225133235592,
     "max_drawdown": -0.44971910198699994,
     "monthly_sortino": 0.8265684444194812,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1000,
      50
     ],
     "full": {
      "sharpe": 0.5574366653214649,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6275187966043897,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.483136369178599,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.10908816910240016,
     "max_drawdown": -0.4265006328987102,
     "monthly_sortino": 0.9262445643008697,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1500,
      20
     ],
     "full": {
      "sharpe": 0.4004600826251574,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5642570457464082,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.24161624096111428,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.07502323352233264,
     "max_drawdown": -0.5167877347600219,
     "monthly_sortino": 0.6362761710902082,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1500,
      30
     ],
     "full": {
      "sharpe": 0.5493399239598467,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7065139337505596,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.3885687152960378,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.11683122998129525,
     "max_drawdown": -0.48505574564654885,
     "monthly_sortino": 0.922079328135344,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1500,
      50
     ],
     "full": {
      "sharpe": 0.5759602119577578,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6731444774313616,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.47372979547605343,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.11943896363284678,
     "max_drawdown": -0.4441249219639518,
     "monthly_sortino": 0.9634551111429505,
     "avg_holdings": 50.0
    }
   ],
   "wins": 0.0
  },
  "asset_growth": {
   "combos": [
    {
     "params": [
      500,
      20
     ],
     "full": {
      "sharpe": 0.8336033512783917,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.9358491339345951,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7195798796308781,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.2367888196006942,
     "max_drawdown": -0.41007928339899113,
     "monthly_sortino": 1.875101202267052,
     "avg_holdings": 20.0
    },
    {
     "params": [
      500,
      30
     ],
     "full": {
      "sharpe": 0.799485540857186,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.9132173617019622,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6660989046000126,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.2006425553917277,
     "max_drawdown": -0.38695447137597794,
     "monthly_sortino": 1.6303200558379203,
     "avg_holdings": 30.0
    },
    {
     "params": [
      500,
      50
     ],
     "full": {
      "sharpe": 0.7765300277940514,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.8233833564616726,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7282362152538822,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.1734848325858216,
     "max_drawdown": -0.43195846994291653,
     "monthly_sortino": 1.3770137035511072,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1000,
      20
     ],
     "full": {
      "sharpe": 0.47889038744835805,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.42739920421609384,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5356442797721963,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09906440623482982,
     "max_drawdown": -0.49224673704297595,
     "monthly_sortino": 0.7659589330571838,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1000,
      30
     ],
     "full": {
      "sharpe": 0.5167720761935576,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.44130870646161224,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6026712675841445,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.10882091160806873,
     "max_drawdown": -0.49228417326263585,
     "monthly_sortino": 0.8120599285510606,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1000,
      50
     ],
     "full": {
      "sharpe": 0.7001429356884568,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6888701228196221,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7190767950816318,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.16489437475090907,
     "max_drawdown": -0.47046002236849027,
     "monthly_sortino": 1.2377253965496808,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1500,
      20
     ],
     "full": {
      "sharpe": 0.42776914655375803,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.48388478377242083,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.3713100995391557,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.0861088896876101,
     "max_drawdown": -0.46665063828884734,
     "monthly_sortino": 0.7107369470748,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1500,
      30
     ],
     "full": {
      "sharpe": 0.3530976915874456,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.48636188162276384,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.21659901084881727,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.06153536706999985,
     "max_drawdown": -0.47649756873146565,
     "monthly_sortino": 0.562100424898995,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1500,
      50
     ],
     "full": {
      "sharpe": 0.43136981896924476,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.4080827575575977,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.4567550734986617,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.08318180790326313,
     "max_drawdown": -0.477797365766063,
     "monthly_sortino": 0.6914872893742413,
     "avg_holdings": 50.0
    }
   ],
   "wins": 0.0
  },
  "accruals": {
   "combos": [
    {
     "params": [
      500,
      20
     ],
     "full": {
      "sharpe": 0.41763286130822896,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5531225686301131,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.2981673361945039,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.08872693648190255,
     "max_drawdown": -0.6594829025055807,
     "monthly_sortino": 0.7017927290061035,
     "avg_holdings": 20.0
    },
    {
     "params": [
      500,
      30
     ],
     "full": {
      "sharpe": 0.5312127167614933,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6576345186993175,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.4267362227023076,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.12859598055512156,
     "max_drawdown": -0.6155620012358429,
     "monthly_sortino": 0.938727850811566,
     "avg_holdings": 30.0
    },
    {
     "params": [
      500,
      50
     ],
     "full": {
      "sharpe": 0.5568387961423441,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7190017613987618,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.4162951781897603,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.13200114473196534,
     "max_drawdown": -0.5400217398242897,
     "monthly_sortino": 0.9986664822215061,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1000,
      20
     ],
     "full": {
      "sharpe": 0.2685467150086523,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.34674521710466344,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.20166139314307174,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.02989637707753179,
     "max_drawdown": -0.7031777300289088,
     "monthly_sortino": 0.4015885782562777,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1000,
      30
     ],
     "full": {
      "sharpe": 0.3783426900118265,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.46379506005809307,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.30180966679672855,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.07350596404622523,
     "max_drawdown": -0.6113125093153716,
     "monthly_sortino": 0.6039083074701393,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1000,
      50
     ],
     "full": {
      "sharpe": 0.4825480076892662,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5806359321664757,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.39048793502890444,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.10917145409037943,
     "max_drawdown": -0.553659562307534,
     "monthly_sortino": 0.8219034420933757,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1500,
      20
     ],
     "full": {
      "sharpe": 0.26873966493769286,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.24836296208510247,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.287963058474899,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.029715944479678624,
     "max_drawdown": -0.6702593768241615,
     "monthly_sortino": 0.393911599059584,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1500,
      30
     ],
     "full": {
      "sharpe": 0.2674394579777296,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.29969058180400215,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.23785775745360124,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.03148023602193173,
     "max_drawdown": -0.6940918626655229,
     "monthly_sortino": 0.39739299495403524,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1500,
      50
     ],
     "full": {
      "sharpe": 0.39189634219024716,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.44974029827787515,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.33596528806213577,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.0775957971517034,
     "max_drawdown": -0.5710861062139423,
     "monthly_sortino": 0.6420984126830227,
     "avg_holdings": 50.0
    }
   ],
   "wins": 0.0
  },
  "buyback_yield": {
   "combos": [
    {
     "params": [
      500,
      20
     ],
     "full": {
      "sharpe": 0.6354359596384787,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6035087399945348,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6738602029153444,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.13647686477427734,
     "max_drawdown": -0.4444196986611726,
     "monthly_sortino": 1.0630781935600155,
     "avg_holdings": 20.0
    },
    {
     "params": [
      500,
      30
     ],
     "full": {
      "sharpe": 0.598766262986359,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5575217942321196,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6518962094294338,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.12158051569531425,
     "max_drawdown": -0.45871590162869924,
     "monthly_sortino": 0.9807552356498691,
     "avg_holdings": 30.0
    },
    {
     "params": [
      500,
      50
     ],
     "full": {
      "sharpe": 0.6701222409169688,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6311500021417563,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7240407197179598,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.1344675638581989,
     "max_drawdown": -0.4411291146037417,
     "monthly_sortino": 1.1015862383801962,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1000,
      20
     ],
     "full": {
      "sharpe": 0.5489833680590941,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.4461335794408677,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6674465657465595,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.12292697356760063,
     "max_drawdown": -0.5213075093554986,
     "monthly_sortino": 0.8807116616424602,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1000,
      30
     ],
     "full": {
      "sharpe": 0.5392169332391346,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.4799949316582357,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6123790932905483,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.1160249532262776,
     "max_drawdown": -0.5143150540876851,
     "monthly_sortino": 0.8547005415031612,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1000,
      50
     ],
     "full": {
      "sharpe": 0.5197191616008727,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.4740646685556598,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5808187629256145,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.10624154916617368,
     "max_drawdown": -0.5122872233899343,
     "monthly_sortino": 0.8262663212733008,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1500,
      20
     ],
     "full": {
      "sharpe": 0.4287407129738426,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.4757646320934321,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.37617394204818294,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.08598414835069557,
     "max_drawdown": -0.5718079669686207,
     "monthly_sortino": 0.658796921435897,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1500,
      30
     ],
     "full": {
      "sharpe": 0.47395722964591486,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5784267002641723,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.35283587373129344,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09899113782049662,
     "max_drawdown": -0.5517751358904668,
     "monthly_sortino": 0.7338200272445402,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1500,
      50
     ],
     "full": {
      "sharpe": 0.5149239606081423,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6234509035737774,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.3880306135461438,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.10835381973327429,
     "max_drawdown": -0.5314291185624912,
     "monthly_sortino": 0.8067837535324944,
     "avg_holdings": 50.0
    }
   ],
   "wins": 0.0
  },
  "qmj": {
   "combos": [
    {
     "params": [
      500,
      20
     ],
     "full": {
      "sharpe": 0.6511261060385763,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5530471049063207,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.755592204672522,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.12040044430608843,
     "max_drawdown": -0.33074871348755375,
     "monthly_sortino": 1.087275026092951,
     "avg_holdings": 20.0
    },
    {
     "params": [
      500,
      30
     ],
     "full": {
      "sharpe": 0.6236349851300189,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5252829419575386,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.727081288280436,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.11216515866404397,
     "max_drawdown": -0.3448945803996998,
     "monthly_sortino": 1.0169035433129767,
     "avg_holdings": 30.0
    },
    {
     "params": [
      500,
      50
     ],
     "full": {
      "sharpe": 0.6800626433855057,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6425923375882462,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7218121958777539,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.12096749223486136,
     "max_drawdown": -0.32103554346758423,
     "monthly_sortino": 1.1415570032150453,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1000,
      20
     ],
     "full": {
      "sharpe": 0.596427964667735,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.49751544743057946,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6976730236822952,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.10456364083367609,
     "max_drawdown": -0.3594988205041849,
     "monthly_sortino": 1.0296145644283743,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1000,
      30
     ],
     "full": {
      "sharpe": 0.6885656591935148,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5917472046148954,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7907733852509812,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.12308612054469803,
     "max_drawdown": -0.359208041629111,
     "monthly_sortino": 1.1631833033991783,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1000,
      50
     ],
     "full": {
      "sharpe": 0.6772821694069341,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6028874357077256,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7591461645063345,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.11858567110909513,
     "max_drawdown": -0.38121757309977455,
     "monthly_sortino": 1.1119882146189983,
     "avg_holdings": 50.0
    },
    {
     "params": [
      1500,
      20
     ],
     "full": {
      "sharpe": 0.5899540016250248,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.4507727432989932,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7369842311357039,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.10267319913151662,
     "max_drawdown": -0.351312339642188,
     "monthly_sortino": 1.0307772932809913,
     "avg_holdings": 20.0
    },
    {
     "params": [
      1500,
      30
     ],
     "full": {
      "sharpe": 0.6813524245150392,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.617047276694462,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7495292662642307,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.1194224765094214,
     "max_drawdown": -0.35359297182180927,
     "monthly_sortino": 1.1915189380830835,
     "avg_holdings": 30.0
    },
    {
     "params": [
      1500,
      50
     ],
     "full": {
      "sharpe": 0.7161864657083297,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6877039536762143,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7488000000924315,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.124918712573314,
     "max_drawdown": -0.3618360046462564,
     "monthly_sortino": 1.2290177723334972,
     "avg_holdings": 50.0
    }
   ],
   "wins": 0.0
  },
  "high_52w": {
   "combos": [
    {
     "params": [
      189,
      20
     ],
     "full": {
      "sharpe": 0.6996355663368098,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7879889641683964,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5998235985029562,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.12693989868235245,
     "max_drawdown": -0.35556713996036715,
     "monthly_sortino": 1.2795217767092,
     "avg_holdings": 20.0
    },
    {
     "params": [
      189,
      30
     ],
     "full": {
      "sharpe": 0.714073764092756,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7904495994118358,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.628728283880195,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.12375134781326591,
     "max_drawdown": -0.30701705005188373,
     "monthly_sortino": 1.3147992787367861,
     "avg_holdings": 30.0
    },
    {
     "params": [
      189,
      50
     ],
     "full": {
      "sharpe": 0.6610185962003762,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7461128966603929,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5645535503761697,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.11006795176314266,
     "max_drawdown": -0.33124021742875565,
     "monthly_sortino": 1.143752557438304,
     "avg_holdings": 50.0
    },
    {
     "params": [
      252,
      20
     ],
     "full": {
      "sharpe": 0.6371110073864958,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6983168523748079,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5689183473496863,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.11266634946385357,
     "max_drawdown": -0.3458042361309439,
     "monthly_sortino": 1.1475961097059375,
     "avg_holdings": 20.0
    },
    {
     "params": [
      252,
      30
     ],
     "full": {
      "sharpe": 0.6372093749943984,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7494338693589526,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5090559240228913,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.1075766123771591,
     "max_drawdown": -0.2780983687350673,
     "monthly_sortino": 1.1401279263922754,
     "avg_holdings": 30.0
    },
    {
     "params": [
      252,
      50
     ],
     "full": {
      "sharpe": 0.6257068048778595,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7023721369744579,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5389051906871131,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.10300962818643744,
     "max_drawdown": -0.33965460099818046,
     "monthly_sortino": 1.0916776459059965,
     "avg_holdings": 50.0
    },
    {
     "params": [
      315,
      20
     ],
     "full": {
      "sharpe": 0.6565239389313573,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7556289159893576,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5440184765998156,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.11667332692059396,
     "max_drawdown": -0.3280386160509885,
     "monthly_sortino": 1.1927080715184353,
     "avg_holdings": 20.0
    },
    {
     "params": [
      315,
      30
     ],
     "full": {
      "sharpe": 0.6946896474657741,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.8135518143220598,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5580617585024688,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.12088942347292897,
     "max_drawdown": -0.3010539647906816,
     "monthly_sortino": 1.28311065920672,
     "avg_holdings": 30.0
    },
    {
     "params": [
      315,
      50
     ],
     "full": {
      "sharpe": 0.62981453352109,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.721593981218627,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5246054468942298,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.10463651829208342,
     "max_drawdown": -0.33741564160731174,
     "monthly_sortino": 1.0947612033412206,
     "avg_holdings": 50.0
    }
   ],
   "wins": 0.0
  },
  "low_beta": {
   "combos": [
    {
     "params": [
      126,
      20
     ],
     "full": {
      "sharpe": 0.57640826657983,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7296812646817561,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.38121325901786945,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09609319959748408,
     "max_drawdown": -0.42085405333408954,
     "monthly_sortino": 1.0580315691483335,
     "avg_holdings": 20.0
    },
    {
     "params": [
      126,
      30
     ],
     "full": {
      "sharpe": 0.5527445555002858,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5681514165649668,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5439918989546586,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.08285876032719375,
     "max_drawdown": -0.37001608919125883,
     "monthly_sortino": 1.000213418216609,
     "avg_holdings": 30.0
    },
    {
     "params": [
      126,
      50
     ],
     "full": {
      "sharpe": 0.6388081020777948,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6701507950445978,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6101610353495182,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09078958956653294,
     "max_drawdown": -0.2946997866958835,
     "monthly_sortino": 1.1505927921036023,
     "avg_holdings": 50.0
    },
    {
     "params": [
      252,
      20
     ],
     "full": {
      "sharpe": 0.5898624955779547,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7389309744829783,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.3882113534906675,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09922608720527837,
     "max_drawdown": -0.3228178286665606,
     "monthly_sortino": 1.1609544590882266,
     "avg_holdings": 20.0
    },
    {
     "params": [
      252,
      30
     ],
     "full": {
      "sharpe": 0.5999202074823605,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7107496818800143,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.4624890763703065,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09265288268250815,
     "max_drawdown": -0.3187401660913217,
     "monthly_sortino": 1.2003653688985003,
     "avg_holdings": 30.0
    },
    {
     "params": [
      252,
      50
     ],
     "full": {
      "sharpe": 0.6388194362557035,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6844166296636796,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5995109159813012,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09270957743302732,
     "max_drawdown": -0.3277777325647572,
     "monthly_sortino": 1.240192987599792,
     "avg_holdings": 50.0
    },
    {
     "params": [
      378,
      20
     ],
     "full": {
      "sharpe": 0.5850551038067461,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.8217277447419868,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.22004348654788763,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09877925102971141,
     "max_drawdown": -0.3374990363632667,
     "monthly_sortino": 1.171855043125588,
     "avg_holdings": 20.0
    },
    {
     "params": [
      378,
      30
     ],
     "full": {
      "sharpe": 0.5522455677906144,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.7362572187928544,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.2904841119247798,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.08442902611987568,
     "max_drawdown": -0.3273333227173476,
     "monthly_sortino": 1.0976767905935332,
     "avg_holdings": 30.0
    },
    {
     "params": [
      378,
      50
     ],
     "full": {
      "sharpe": 0.54551119032999,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.62084918429288,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.45868909531379015,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.07732248478169423,
     "max_drawdown": -0.3314549134968814,
     "monthly_sortino": 1.0068406017294063,
     "avg_holdings": 50.0
    }
   ],
   "wins": 0.0
  },
  "low_ivol": {
   "combos": [
    {
     "params": [
      10,
      20
     ],
     "full": {
      "sharpe": 0.46955366497840173,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.42299863704630464,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6004843918421048,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.05983421646774789,
     "max_drawdown": -0.3634947436279853,
     "monthly_sortino": 0.7735736978953346,
     "avg_holdings": 20.0
    },
    {
     "params": [
      10,
      30
     ],
     "full": {
      "sharpe": 0.5624640386525759,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5084411773583285,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6912629628737031,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.0764591504084664,
     "max_drawdown": -0.3568832492903353,
     "monthly_sortino": 0.9462642499299272,
     "avg_holdings": 30.0
    },
    {
     "params": [
      10,
      50
     ],
     "full": {
      "sharpe": 0.5498467407197878,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.5536990113561349,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.5668410247663498,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.07656141269299566,
     "max_drawdown": -0.35841929926642124,
     "monthly_sortino": 0.9193699160112594,
     "avg_holdings": 50.0
    },
    {
     "params": [
      21,
      20
     ],
     "full": {
      "sharpe": 0.6145037705861861,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6024561123249488,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7132548287862426,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.0833281536499686,
     "max_drawdown": -0.37166137637159247,
     "monthly_sortino": 1.0496633288777484,
     "avg_holdings": 20.0
    },
    {
     "params": [
      21,
      30
     ],
     "full": {
      "sharpe": 0.7471492883827904,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6972175261680252,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.8987453150024322,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.10675773909387298,
     "max_drawdown": -0.35758130880398675,
     "monthly_sortino": 1.3257490915693315,
     "avg_holdings": 30.0
    },
    {
     "params": [
      21,
      50
     ],
     "full": {
      "sharpe": 0.6826406074690714,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.6448893187410863,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7839660842244514,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09888515142724486,
     "max_drawdown": -0.3728475546426234,
     "monthly_sortino": 1.1593194191049374,
     "avg_holdings": 50.0
    },
    {
     "params": [
      42,
      20
     ],
     "full": {
      "sharpe": 0.4985659958224224,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.4052811131484977,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7090508299981436,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.0657293457542445,
     "max_drawdown": -0.37451074653770156,
     "monthly_sortino": 0.7832977096302205,
     "avg_holdings": 20.0
    },
    {
     "params": [
      42,
      30
     ],
     "full": {
      "sharpe": 0.5122483293650928,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.4475024358756755,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6629840854152328,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.07012511667296217,
     "max_drawdown": -0.4207191435952856,
     "monthly_sortino": 0.7201136121636813,
     "avg_holdings": 30.0
    },
    {
     "params": [
      42,
      50
     ],
     "full": {
      "sharpe": 0.5627524414727337,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.4986338031200798,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.6940134130147897,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.07936800829503388,
     "max_drawdown": -0.4058969563324917,
     "monthly_sortino": 0.834120286644304,
     "avg_holdings": 50.0
    }
   ],
   "wins": 0.0
  },
  "fscore": {
   "combos": [
    {
     "params": [
      0.2,
      7
     ],
     "full": {
      "sharpe": 0.48344803898043465,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.22103656845979322,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.8986794242021274,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09336636459049408,
     "max_drawdown": -0.6294133670005242,
     "monthly_sortino": 0.7113014676832627,
     "avg_holdings": 48.207207207207205
    },
    {
     "params": [
      0.2,
      8
     ],
     "full": {
      "sharpe": 0.3044764483610695,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": -0.004756677397769355,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7558999501161329,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.0461365545479806,
     "max_drawdown": -0.6760900315931868,
     "monthly_sortino": 0.44772065641206027,
     "avg_holdings": 20.936936936936938
    },
    {
     "params": [
      0.2,
      9
     ],
     "full": {
      "sharpe": 0.2828010981455803,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": -0.18995399019152232,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.9198901165807463,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.038172763529257914,
     "max_drawdown": -0.7343555626719775,
     "monthly_sortino": 0.41765740222163183,
     "avg_holdings": 4.738738738738738
    },
    {
     "params": [
      0.3,
      7
     ],
     "full": {
      "sharpe": 0.49969859270232225,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.2922655928061684,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.8287340115337485,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.0935830981354806,
     "max_drawdown": -0.6061077110845821,
     "monthly_sortino": 0.7225072270108733,
     "avg_holdings": 76.42342342342343
    },
    {
     "params": [
      0.3,
      8
     ],
     "full": {
      "sharpe": 0.23346220595870826,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": -0.11685651671039868,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7482132604480504,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.02689250882898686,
     "max_drawdown": -0.6856974200865689,
     "monthly_sortino": 0.32262934302358764,
     "avg_holdings": 34.1981981981982
    },
    {
     "params": [
      0.3,
      9
     ],
     "full": {
      "sharpe": 0.22055646872757279,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": -0.18977023388418987,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.8298324505621105,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.019341500065311212,
     "max_drawdown": -0.7461455474098247,
     "monthly_sortino": 0.310919466440899,
     "avg_holdings": 7.45945945945946
    },
    {
     "params": [
      0.4,
      7
     ],
     "full": {
      "sharpe": 0.516877825626823,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.34681617419394756,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.774033212501562,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.09480314171928406,
     "max_drawdown": -0.55298904435607,
     "monthly_sortino": 0.7647912562058188,
     "avg_holdings": 104.6036036036036
    },
    {
     "params": [
      0.4,
      8
     ],
     "full": {
      "sharpe": 0.34176907844541365,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.02858431167435941,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7822957206371245,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.054243991300380046,
     "max_drawdown": -0.634514663810315,
     "monthly_sortino": 0.4928032853597471,
     "avg_holdings": 47.54054054054054
    },
    {
     "params": [
      0.4,
      9
     ],
     "full": {
      "sharpe": 0.3552383750541661,
      "qqq": 0.8913650851480289
     },
     "first_half": {
      "sharpe": 0.055505274916184344,
      "qqq": 0.8992573946739738
     },
     "second_half": {
      "sharpe": 0.7510620666858,
      "qqq": 0.8832374380219223
     },
     "cagr": 0.060384823020304346,
     "max_drawdown": -0.644374670943126,
     "monthly_sortino": 0.49609082832554297,
     "avg_holdings": 10.63063063063063
    }
   ],
   "wins": 0.0
  }
 },
 "deciles": {
  "value_bm": {
   "decile_cagr": {
    "1": 0.11827809992601157,
    "2": 0.13506035765069657,
    "3": 0.10064794185880599,
    "4": 0.09670484767593357,
    "5": 0.09489292125574322,
    "6": 0.09293599851311396,
    "7": 0.0902947724137313,
    "8": 0.07214264907832857,
    "9": 0.10337029113064955,
    "10": 0.09520345539935215
   },
   "spread_annual": -0.0020361389746007628,
   "spread_t": -0.028170806943200507,
   "spread_first_half": -0.04883124225714499,
   "spread_second_half": 0.04475896430794345,
   "rank_ic": -0.0033681152405844886,
   "rank_ic_t": -0.21156432848547727
  },
  "gross_profitability": {
   "decile_cagr": {
    "1": 0.03429501331836926,
    "2": 0.09023252269196091,
    "3": 0.08763949203975385,
    "4": 0.08200470292700568,
    "5": 0.09424579333565708,
    "6": 0.1071302627426487,
    "7": 0.1332402065681464,
    "8": 0.1557027421454622,
    "9": 0.1440944258839325,
    "10": 0.11680526539033931
   },
   "spread_annual": 0.06536098348063508,
   "spread_t": 1.2030821744716165,
   "spread_first_half": 0.08052821605374165,
   "spread_second_half": 0.05019375090752849,
   "rank_ic": 0.021338740094950435,
   "rank_ic_t": 1.9710212627477632
  },
  "asset_growth": {
   "decile_cagr": {
    "1": 0.09394054585082978,
    "2": 0.08468972710809597,
    "3": 0.11010503160079566,
    "4": 0.11291879470956778,
    "5": 0.10818019372790699,
    "6": 0.09255191868189083,
    "7": 0.11204649373042641,
    "8": 0.08933062773191947,
    "9": 0.11186143877330679,
    "10": 0.14583888704839
   },
   "spread_annual": 0.03402784713889806,
   "spread_t": 0.5586728333268185,
   "spread_first_half": -0.015234038239632573,
   "spread_second_half": 0.08328973251742872,
   "rank_ic": 0.006425125224034972,
   "rank_ic_t": 0.5526452483763491
  },
  "accruals": {
   "decile_cagr": {
    "1": 0.08410622044957283,
    "2": 0.09927077299160536,
    "3": 0.08374749032406048,
    "4": 0.0955899206990718,
    "5": 0.08227852666566116,
    "6": 0.1020544867474713,
    "7": 0.08195583624245661,
    "8": 0.13619834557661137,
    "9": 0.15954745139345516,
    "10": 0.1402517057119954
   },
   "spread_annual": 0.06005140363935518,
   "spread_t": 1.3873174909812978,
   "spread_first_half": 0.10947285613969432,
   "spread_second_half": 0.010629951139016042,
   "rank_ic": 0.002092108895263558,
   "rank_ic_t": 0.2509552633222552
  },
  "buyback_yield": {
   "decile_cagr": {
    "1": 0.08000705998896795,
    "2": 0.09116061514150875,
    "3": 0.11468949268767203,
    "4": 0.06173173189071379,
    "5": 0.10378369729850756,
    "6": 0.09765399294133537,
    "7": 0.12529761579383902,
    "8": 0.11034731056311675,
    "9": 0.14606549969892413,
    "10": 0.12246093511366096
   },
   "spread_annual": 0.033318860141035,
   "spread_t": 0.5743697901135313,
   "spread_first_half": -0.007493859527082602,
   "spread_second_half": 0.07413157980915262,
   "rank_ic": 0.027146154943431887,
   "rank_ic_t": 2.3258847505398825
  },
  "high_52w": {
   "decile_cagr": {
    "1": -0.005195598931333922,
    "2": 0.07658108312509904,
    "3": 0.12291575549193579,
    "4": 0.12882484628575352,
    "5": 0.08731967518884032,
    "6": 0.1292843391424603,
    "7": 0.15293593712048326,
    "8": 0.12624664200925872,
    "9": 0.1284471025061631,
    "10": 0.10319979824337033
   },
   "spread_annual": 0.04926529457139788,
   "spread_t": 0.5095126187600718,
   "spread_first_half": 0.07027052217442314,
   "spread_second_half": 0.028260066968372584,
   "rank_ic": 0.025749035083649882,
   "rank_ic_t": 1.3287780046620956
  },
  "low_beta": {
   "decile_cagr": {
    "1": 0.1026002708879028,
    "2": 0.13298889043947826,
    "3": 0.12083279753726717,
    "4": 0.10735238798097124,
    "5": 0.12117014812505578,
    "6": 0.09104864176350791,
    "7": 0.08440951297733612,
    "8": 0.08365677225751456,
    "9": 0.07859652322878508,
    "10": 0.09839083780949975
   },
   "spread_annual": -0.07076134950168886,
   "spread_t": -0.5729055477294823,
   "spread_first_half": -0.11759708166197684,
   "spread_second_half": -0.02392561734140091,
   "rank_ic": 0.00011017668111367072,
   "rank_ic_t": 0.004427583141715315
  },
  "low_ivol": {
   "decile_cagr": {
    "1": 0.06535551980815701,
    "2": 0.08887149195047339,
    "3": 0.1258466955588211,
    "4": 0.10676230870685854,
    "5": 0.09286932851381335,
    "6": 0.12514099518320831,
    "7": 0.11246843839941278,
    "8": 0.08167686398622132,
    "9": 0.10295981061487214,
    "10": 0.10263784072660354
   },
   "spread_annual": -0.021782526037320317,
   "spread_t": -0.20880259358090397,
   "spread_first_half": -0.045235584855673555,
   "spread_second_half": 0.0016705327810329798,
   "rank_ic": 0.02868349273793355,
   "rank_ic_t": 1.5855067340624203
  },
  "fscore": {
   "decile_cagr": {
    "1": 0.07394178702206378,
    "2": 0.11773891810284276,
    "3": 0.11707530590468496,
    "4": 0.07817067020797319,
    "5": 0.1393985871427541,
    "6": 0.05712148397415384,
    "7": 0.11451561446283254,
    "8": 0.1400465757427536,
    "9": 0.1565619844039008,
    "10": 0.08548412314930198
   },
   "spread_annual": -0.009163059929938416,
   "spread_t": -0.14258219726595686,
   "spread_first_half": -0.10823442261209226,
   "spread_second_half": 0.08990830275221545,
   "rank_ic": 0.011471949512694112,
   "rank_ic_t": 1.110269814172989
  },
  "qmj": {
   "decile_cagr": {
    "1": 0.04863184533571241,
    "2": 0.08798466825228535,
    "3": 0.09968493440684756,
    "4": 0.0959417148954762,
    "5": 0.10210345089586514,
    "6": 0.09798126993289569,
    "7": 0.13139813816255197,
    "8": 0.12432906852376258,
    "9": 0.12671398250259958,
    "10": 0.11388071768687436
   },
   "spread_annual": 0.02608555407384844,
   "spread_t": 0.3725922789447847,
   "spread_first_half": -0.047505336379706234,
   "spread_second_half": 0.09967644452740312,
   "rank_ic": 0.02416856821155926,
   "rank_ic_t": 1.9714322017905033
  }
 }
}