{
 "run_date": "2026-10-31",
 "finlab_version": "2.2.24",
 "data_end": "2026-10-30",
 "results": {
  "base_monthly_revenue_momentum": {
   "8": {
    "cmp": {
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.417631,
      "sharpe": 1.259356,
      "mdd": -0.404458,
      "total_return": 58.649065
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    "halves": [
     {
      "strategy": {
       "start": "2015-02-11",
       "end": "2020-12-18",
       "cagr": 0.356876,
       "sharpe": 1.218861,
       "mdd": -0.333504,
       "total_return": 4.962995
      },
      "bench": {
       "start": "2015-02-11",
       "end": "2020-12-18",
       "cagr": 0.131997,
       "sharpe": 0.868818,
       "mdd": -0.282177,
       "total_return": 1.065556
      },
      "win": true
     },
     {
      "strategy": {
       "start": "2020-12-21",
       "end": "2026-10-30",
       "cagr": 0.479208,
       "sharpe": 1.300628,
       "mdd": -0.404458,
       "total_return": 8.902297
      },
      "bench": {
       "start": "2020-12-21",
       "end": "2026-10-30",
       "cagr": 0.27544,
       "sharpe": 1.223312,
       "mdd": -0.33957,
       "total_return": 3.156933
      },
      "win": true
     }
    ]
   },
   "10": {
    "cmp": {
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.459121,
      "sharpe": 1.422889,
      "mdd": -0.355509,
      "total_return": 82.631925
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    "halves": [
     {
      "strategy": {
       "start": "2015-02-11",
       "end": "2020-12-18",
       "cagr": 0.397893,
       "sharpe": 1.381235,
       "mdd": -0.355509,
       "total_return": 6.098005
      },
      "bench": {
       "start": "2015-02-11",
       "end": "2020-12-18",
       "cagr": 0.131997,
       "sharpe": 0.868818,
       "mdd": -0.282177,
       "total_return": 1.065556
      },
      "win": true
     },
     {
      "strategy": {
       "start": "2020-12-21",
       "end": "2026-10-30",
       "cagr": 0.524106,
       "sharpe": 1.470284,
       "mdd": -0.354559,
       "total_return": 10.797346
      },
      "bench": {
       "start": "2020-12-21",
       "end": "2026-10-30",
       "cagr": 0.27544,
       "sharpe": 1.223312,
       "mdd": -0.33957,
       "total_return": 3.156933
      },
      "win": true
     }
    ],
    "zero_cost": {
     "strategy": {
      "start": "2015-02-12",
      "end": "2026-10-30",
      "cagr": 0.561937,
      "sharpe": 1.658343,
      "mdd": -0.343803,
      "total_return": 184.475828
     },
     "bench": {
      "start": "2015-02-12",
      "end": "2026-10-30",
      "cagr": 0.202504,
      "sharpe": 1.064172,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    }
   },
   "12": {
    "cmp": {
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.462612,
      "sharpe": 1.486104,
      "mdd": -0.342578,
      "total_return": 85.006622
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    "halves": [
     {
      "strategy": {
       "start": "2015-02-11",
       "end": "2020-12-18",
       "cagr": 0.432992,
       "sharpe": 1.539815,
       "mdd": -0.342578,
       "total_return": 7.206317
      },
      "bench": {
       "start": "2015-02-11",
       "end": "2020-12-18",
       "cagr": 0.131997,
       "sharpe": 0.868818,
       "mdd": -0.282177,
       "total_return": 1.065556
      },
      "win": true
     },
     {
      "strategy": {
       "start": "2020-12-21",
       "end": "2026-10-30",
       "cagr": 0.497535,
       "sharpe": 1.464419,
       "mdd": -0.307831,
       "total_return": 9.642735
      },
      "bench": {
       "start": "2020-12-21",
       "end": "2026-10-30",
       "cagr": 0.27544,
       "sharpe": 1.223312,
       "mdd": -0.33957,
       "total_return": 3.156933
      },
      "win": true
     }
    ]
   }
  },
  "s2": {
   "title": "標準化營收驚喜",
   "param_name": "回看月數",
   "params": [
    12,
    24,
    36
   ],
   "holdings": [
    20,
    30,
    50
   ],
   "original": [
    24,
    30
   ],
   "grid": [
    {
     "param": 12,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.332534,
      "sharpe": 1.286265,
      "mdd": -0.420844,
      "total_return": 27.882812
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.312357,
      "sharpe": 1.251806,
      "mdd": -0.391678,
      "total_return": 23.155144
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.294279,
      "sharpe": 1.22319,
      "mdd": -0.348999,
      "total_return": 19.532201
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 24,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.348875,
      "sharpe": 1.261088,
      "mdd": -0.415624,
      "total_return": 32.31601
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 24,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.324034,
      "sharpe": 1.227341,
      "mdd": -0.350708,
      "total_return": 25.796745
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 24,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.291601,
      "sharpe": 1.170097,
      "mdd": -0.381612,
      "total_return": 19.039988
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 36,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.382512,
      "sharpe": 1.351853,
      "mdd": -0.355757,
      "total_return": 43.460373
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 36,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.344674,
      "sharpe": 1.287269,
      "mdd": -0.36333,
      "total_return": 31.120609
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 36,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.304763,
      "sharpe": 1.211442,
      "mdd": -0.356591,
      "total_return": 21.567566
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    }
   ],
   "grid_wins": 9,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.268661,
      "sharpe": 1.160018,
      "mdd": -0.350708,
      "total_return": 3.023958
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": true
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.382032,
      "sharpe": 1.294493,
      "mdd": -0.341741,
      "total_return": 5.651355
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": true
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.380302,
     "sharpe": 1.395194,
     "mdd": -0.33835,
     "total_return": 42.596321
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": true
   },
   "pass": {
    "neighbors": true,
    "halves": true,
    "cost": true,
    "all": true
   }
  },
  "s2c": {
   "title": "月營收動能＋標準化營收驚喜",
   "param_name": "回看月數",
   "params": [
    12,
    24,
    36
   ],
   "holdings": [
    8,
    10,
    12
   ],
   "original": [
    24,
    10
   ],
   "grid": [
    {
     "param": 12,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.476843,
      "sharpe": 1.418283,
      "mdd": -0.445627,
      "total_return": 95.3378
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.434634,
      "sharpe": 1.395116,
      "mdd": -0.325887,
      "total_return": 67.590258
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.455521,
      "sharpe": 1.505868,
      "mdd": -0.352375,
      "total_return": 80.246595
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 24,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.486485,
      "sharpe": 1.418539,
      "mdd": -0.378817,
      "total_return": 102.96975
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 24,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.447832,
      "sharpe": 1.410424,
      "mdd": -0.362263,
      "total_return": 75.358186
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 24,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.459818,
      "sharpe": 1.489227,
      "mdd": -0.353962,
      "total_return": 83.101059
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 36,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.539383,
      "sharpe": 1.517259,
      "mdd": -0.425165,
      "total_return": 155.608879
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 36,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.412093,
      "sharpe": 1.32024,
      "mdd": -0.39278,
      "total_return": 55.975646
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 36,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.465889,
      "sharpe": 1.505551,
      "mdd": -0.354743,
      "total_return": 87.290969
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    }
   ],
   "grid_wins": 9,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.430155,
      "sharpe": 1.510314,
      "mdd": -0.362263,
      "total_return": 7.11173
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": true
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.473948,
      "sharpe": 1.363925,
      "mdd": -0.342832,
      "total_return": 8.69785
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": true
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.548169,
     "sharpe": 1.64479,
     "mdd": -0.347117,
     "total_return": 166.205841
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": true
   },
   "pass": {
    "neighbors": true,
    "halves": true,
    "cost": true,
    "all": true,
    "new_strategy": false
   },
   "above_base": 6
  },
  "s3": {
   "title": "營收年增率加速",
   "param_name": "對照前 k 月",
   "params": [
    1,
    3,
    6
   ],
   "holdings": [
    20,
    30,
    50
   ],
   "original": [
    3,
    30
   ],
   "grid": [
    {
     "param": 1,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.071372,
      "sharpe": 0.415218,
      "mdd": -0.478831,
      "total_return": 1.242626
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 1,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.081604,
      "sharpe": 0.461035,
      "mdd": -0.480317,
      "total_return": 1.506789
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 1,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.11156,
      "sharpe": 0.591357,
      "mdd": -0.390625,
      "total_return": 2.452379
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.096829,
      "sharpe": 0.506062,
      "mdd": -0.439889,
      "total_return": 1.952829
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.12676,
      "sharpe": 0.623932,
      "mdd": -0.413318,
      "total_return": 3.047816
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.143852,
      "sharpe": 0.700097,
      "mdd": -0.395831,
      "total_return": 3.828563
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 6,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.153106,
      "sharpe": 0.700384,
      "mdd": -0.419536,
      "total_return": 4.306561
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 6,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.136547,
      "sharpe": 0.650308,
      "mdd": -0.429107,
      "total_return": 3.47943
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 6,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.161079,
      "sharpe": 0.754013,
      "mdd": -0.40397,
      "total_return": 4.752699
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    }
   ],
   "grid_wins": 0,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.134555,
      "sharpe": 0.686446,
      "mdd": -0.413318,
      "total_return": 1.093022
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": false
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.120091,
      "sharpe": 0.576725,
      "mdd": -0.396316,
      "total_return": 0.942853
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": false
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.182507,
     "sharpe": 0.829618,
     "mdd": -0.374825,
     "total_return": 6.123846
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": false
   },
   "pass": {
    "neighbors": false,
    "halves": false,
    "cost": false,
    "all": false
   }
  },
  "s3c": {
   "title": "月營收動能＋營收年增率加速",
   "param_name": "對照前 k 月",
   "params": [
    1,
    3,
    6
   ],
   "holdings": [
    8,
    10,
    12
   ],
   "original": [
    3,
    10
   ],
   "grid": [
    {
     "param": 1,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.369149,
      "sharpe": 1.202104,
      "mdd": -0.379283,
      "total_return": 38.678435
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 1,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.432251,
      "sharpe": 1.408223,
      "mdd": -0.369745,
      "total_return": 66.267636
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 1,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.405645,
      "sharpe": 1.412353,
      "mdd": -0.359471,
      "total_return": 53.000841
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 3,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.471171,
      "sharpe": 1.402452,
      "mdd": -0.38795,
      "total_return": 91.091537
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 3,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.517462,
      "sharpe": 1.580156,
      "mdd": -0.382919,
      "total_return": 131.386132
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 3,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.491634,
      "sharpe": 1.577667,
      "mdd": -0.376444,
      "total_return": 107.267819
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 6,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.486829,
      "sharpe": 1.443109,
      "mdd": -0.342041,
      "total_return": 103.251927
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 6,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.530191,
      "sharpe": 1.618308,
      "mdd": -0.374305,
      "total_return": 144.997251
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 6,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.520541,
      "sharpe": 1.658105,
      "mdd": -0.348879,
      "total_return": 134.567415
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    }
   ],
   "grid_wins": 9,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.517145,
      "sharpe": 1.726934,
      "mdd": -0.329165,
      "total_return": 10.459121
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": true
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.526797,
      "sharpe": 1.492886,
      "mdd": -0.382919,
      "total_return": 10.919878
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": true
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.622018,
     "sharpe": 1.815781,
     "mdd": -0.364814,
     "total_return": 287.58995
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": true
   },
   "pass": {
    "neighbors": true,
    "halves": true,
    "cost": true,
    "all": true,
    "new_strategy": false
   },
   "above_base": 6
  },
  "s4": {
   "title": "累計營收年增率",
   "param_name": "累計區間",
   "params": [
    3,
    "ytd",
    12
   ],
   "holdings": [
    20,
    30,
    50
   ],
   "original": [
    "ytd",
    30
   ],
   "grid": [
    {
     "param": 3,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.067788,
      "sharpe": 0.393641,
      "mdd": -0.464589,
      "total_return": 1.156303
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.090635,
      "sharpe": 0.48365,
      "mdd": -0.46048,
      "total_return": 1.763267
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.154959,
      "sharpe": 0.721666,
      "mdd": -0.453304,
      "total_return": 4.407317
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": "ytd",
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.062118,
      "sharpe": 0.375385,
      "mdd": -0.498053,
      "total_return": 1.02591
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": "ytd",
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.091092,
      "sharpe": 0.487377,
      "mdd": -0.459773,
      "total_return": 1.776882
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": "ytd",
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.119807,
      "sharpe": 0.596665,
      "mdd": -0.439235,
      "total_return": 2.764661
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 12,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.021315,
      "sharpe": 0.213191,
      "mdd": -0.492446,
      "total_return": 0.280291
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 12,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.03308,
      "sharpe": 0.261101,
      "mdd": -0.518875,
      "total_return": 0.464139
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 12,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.039182,
      "sharpe": 0.286323,
      "mdd": -0.516396,
      "total_return": 0.568728
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    }
   ],
   "grid_wins": 0,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.05832,
      "sharpe": 0.368855,
      "mdd": -0.459474,
      "total_return": 0.393247
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": false
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.124542,
      "sharpe": 0.592121,
      "mdd": -0.459773,
      "total_return": 0.988507
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": false
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.113938,
     "sharpe": 0.5741,
     "mdd": -0.450651,
     "total_return": 2.538832
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": false
   },
   "pass": {
    "neighbors": false,
    "halves": false,
    "cost": false,
    "all": false
   }
  },
  "s4c": {
   "title": "月營收動能＋累計營收年增率",
   "param_name": "累計區間",
   "params": [
    3,
    "ytd",
    12
   ],
   "holdings": [
    8,
    10,
    12
   ],
   "original": [
    "ytd",
    10
   ],
   "grid": [
    {
     "param": 3,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.408382,
      "sharpe": 1.258073,
      "mdd": -0.518665,
      "total_return": 54.2458
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 3,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.38521,
      "sharpe": 1.250976,
      "mdd": -0.505999,
      "total_return": 44.487573
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 3,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.369955,
      "sharpe": 1.267276,
      "mdd": -0.426448,
      "total_return": 38.953016
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": "ytd",
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.387601,
      "sharpe": 1.221612,
      "mdd": -0.459409,
      "total_return": 45.415821
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": "ytd",
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.349717,
      "sharpe": 1.18326,
      "mdd": -0.421915,
      "total_return": 32.560571
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": "ytd",
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.367165,
      "sharpe": 1.274342,
      "mdd": -0.371655,
      "total_return": 38.010219
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.454068,
      "sharpe": 1.381,
      "mdd": -0.42636,
      "total_return": 79.301194
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.437983,
      "sharpe": 1.415255,
      "mdd": -0.447384,
      "total_return": 69.489739
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.445295,
      "sharpe": 1.488757,
      "mdd": -0.408603,
      "total_return": 73.805292
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    }
   ],
   "grid_wins": 9,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.382627,
      "sharpe": 1.353007,
      "mdd": -0.379261,
      "total_return": 5.656331
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": true
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.321028,
      "sharpe": 1.053463,
      "mdd": -0.421915,
      "total_return": 4.106137
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": false
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.443284,
     "sharpe": 1.419587,
     "mdd": -0.404739,
     "total_return": 72.520887
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": true
   },
   "pass": {
    "neighbors": true,
    "halves": false,
    "cost": true,
    "all": false,
    "new_strategy": false
   },
   "above_base": 2
  },
  "s5": {
   "title": "營收年增由負轉正",
   "param_name": "先前負成長月數",
   "params": [
    1,
    3,
    6
   ],
   "holdings": [
    20,
    30,
    50
   ],
   "original": [
    3,
    30
   ],
   "grid": [
    {
     "param": 1,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.057034,
      "sharpe": 0.368947,
      "mdd": -0.375876,
      "total_return": 0.915175
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 1,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.06306,
      "sharpe": 0.399377,
      "mdd": -0.387189,
      "total_return": 1.047071
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 1,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.073148,
      "sharpe": 0.451793,
      "mdd": -0.367138,
      "total_return": 1.286576
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.051305,
      "sharpe": 0.339673,
      "mdd": -0.431759,
      "total_return": 0.797045
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.065478,
      "sharpe": 0.402859,
      "mdd": -0.403664,
      "total_return": 1.102285
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.070855,
      "sharpe": 0.427443,
      "mdd": -0.396929,
      "total_return": 1.229988
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 6,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.093388,
      "sharpe": 0.490811,
      "mdd": -0.426167,
      "total_return": 1.846108
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 6,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.096793,
      "sharpe": 0.504439,
      "mdd": -0.426167,
      "total_return": 1.951692
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 6,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.092775,
      "sharpe": 0.489844,
      "mdd": -0.426167,
      "total_return": 1.827456
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    }
   ],
   "grid_wins": 0,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.082586,
      "sharpe": 0.495614,
      "mdd": -0.403664,
      "total_return": 0.590862
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": false
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.04618,
      "sharpe": 0.314986,
      "mdd": -0.396929,
      "total_return": 0.302626
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": false
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.130952,
     "sharpe": 0.676803,
     "mdd": -0.371947,
     "total_return": 3.226338
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": false
   },
   "pass": {
    "neighbors": false,
    "halves": false,
    "cost": false,
    "all": false
   }
  },
  "s5c": {
   "title": "月營收動能＋營收年增由負轉正",
   "param_name": "先前負成長月數",
   "params": [
    1,
    3,
    6
   ],
   "holdings": [
    8,
    10,
    12
   ],
   "original": [
    3,
    10
   ],
   "grid": [
    {
     "param": 1,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.385743,
      "sharpe": 1.485603,
      "mdd": -0.254689,
      "total_return": 44.693097
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 1,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.348517,
      "sharpe": 1.462383,
      "mdd": -0.24052,
      "total_return": 32.212689
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 1,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.320512,
      "sharpe": 1.438327,
      "mdd": -0.247904,
      "total_return": 24.973433
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 3,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.276534,
      "sharpe": 1.190748,
      "mdd": -0.362356,
      "total_return": 16.466137
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 3,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.28953,
      "sharpe": 1.268787,
      "mdd": -0.32463,
      "total_return": 18.666712
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 3,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.308477,
      "sharpe": 1.362393,
      "mdd": -0.320858,
      "total_return": 22.331558
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 6,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.294303,
      "sharpe": 1.167279,
      "mdd": -0.372275,
      "total_return": 19.536683
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 6,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.325764,
      "sharpe": 1.290194,
      "mdd": -0.310909,
      "total_return": 26.209633
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 6,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.332911,
      "sharpe": 1.329382,
      "mdd": -0.310363,
      "total_return": 27.978721
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    }
   ],
   "grid_wins": 9,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.355844,
      "sharpe": 1.645266,
      "mdd": -0.297709,
      "total_return": 4.936504
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": true
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.226834,
      "sharpe": 0.973504,
      "mdd": -0.32463,
      "total_return": 2.310961
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": false
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.376741,
     "sharpe": 1.57267,
     "mdd": -0.314458,
     "total_return": 41.296963
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": true
   },
   "pass": {
    "neighbors": true,
    "halves": false,
    "cost": true,
    "all": false,
    "new_strategy": false
   },
   "above_base": 2
  },
  "s6": {
   "title": "營收連續 N 月年增",
   "param_name": "連續月數",
   "params": [
    3,
    6,
    12
   ],
   "holdings": [
    20,
    30,
    50
   ],
   "original": [
    6,
    30
   ],
   "grid": [
    {
     "param": 3,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.122861,
      "sharpe": 0.584063,
      "mdd": -0.424081,
      "total_return": 2.886726
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.157856,
      "sharpe": 0.707584,
      "mdd": -0.427642,
      "total_return": 4.568366
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.209989,
      "sharpe": 0.891681,
      "mdd": -0.414658,
      "total_return": 8.328419
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 6,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.155531,
      "sharpe": 0.67961,
      "mdd": -0.478625,
      "total_return": 4.438813
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 6,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.188691,
      "sharpe": 0.79362,
      "mdd": -0.437696,
      "total_return": 6.576215
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 6,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.212706,
      "sharpe": 0.892618,
      "mdd": -0.433082,
      "total_return": 8.576784
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 12,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.193388,
      "sharpe": 0.785662,
      "mdd": -0.475045,
      "total_return": 6.934432
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 12,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.220923,
      "sharpe": 0.894905,
      "mdd": -0.430506,
      "total_return": 9.365207
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 12,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.222092,
      "sharpe": 0.944302,
      "mdd": -0.412715,
      "total_return": 9.481989
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    }
   ],
   "grid_wins": 0,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.156616,
      "sharpe": 0.733819,
      "mdd": -0.401788,
      "total_return": 1.342644
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": false
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.221959,
      "sharpe": 0.850144,
      "mdd": -0.437696,
      "total_return": 2.234643
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": false
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.222691,
     "sharpe": 0.902695,
     "mdd": -0.425747,
     "total_return": 9.536572
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": false
   },
   "pass": {
    "neighbors": false,
    "halves": false,
    "cost": false,
    "all": false
   }
  },
  "s6c": {
   "title": "月營收動能＋營收連續 N 月年增",
   "param_name": "連續月數",
   "params": [
    3,
    6,
    12
   ],
   "holdings": [
    8,
    10,
    12
   ],
   "original": [
    6,
    10
   ],
   "grid": [
    {
     "param": 3,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.428444,
      "sharpe": 1.309621,
      "mdd": -0.383651,
      "total_return": 64.202629
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 3,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.415297,
      "sharpe": 1.346017,
      "mdd": -0.389792,
      "total_return": 57.50876
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 3,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.411056,
      "sharpe": 1.386008,
      "mdd": -0.363728,
      "total_return": 55.487157
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 6,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.392961,
      "sharpe": 1.262403,
      "mdd": -0.407437,
      "total_return": 47.560606
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 6,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.404477,
      "sharpe": 1.34861,
      "mdd": -0.313654,
      "total_return": 52.477899
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 6,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.416394,
      "sharpe": 1.427354,
      "mdd": -0.305232,
      "total_return": 58.04191
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.362558,
      "sharpe": 1.250435,
      "mdd": -0.351868,
      "total_return": 36.497574
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.350845,
      "sharpe": 1.283312,
      "mdd": -0.347654,
      "total_return": 32.890384
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.349526,
      "sharpe": 1.340297,
      "mdd": -0.336774,
      "total_return": 32.504771
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    }
   ],
   "grid_wins": 9,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.375155,
      "sharpe": 1.400949,
      "mdd": -0.309893,
      "total_return": 5.448617
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": true
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.434892,
      "sharpe": 1.321591,
      "mdd": -0.313654,
      "total_return": 7.28658
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": true
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.499522,
     "sharpe": 1.586331,
     "mdd": -0.306575,
     "total_return": 114.040588
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": true
   },
   "pass": {
    "neighbors": true,
    "halves": true,
    "cost": true,
    "all": true,
    "new_strategy": false
   },
   "above_base": 2
  },
  "s7": {
   "title": "產業營收擴散",
   "param_name": "前 K 個產業",
   "params": [
    3,
    5,
    8
   ],
   "holdings": [
    20,
    30,
    50
   ],
   "original": [
    5,
    30
   ],
   "grid": [
    {
     "param": 3,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.094037,
      "sharpe": 0.491782,
      "mdd": -0.437144,
      "total_return": 1.865974
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.077776,
      "sharpe": 0.441223,
      "mdd": -0.471722,
      "total_return": 1.404796
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.074971,
      "sharpe": 0.435371,
      "mdd": -0.470007,
      "total_return": 1.332488
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 5,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.204058,
      "sharpe": 0.837704,
      "mdd": -0.381795,
      "total_return": 7.806586
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 5,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.209041,
      "sharpe": 0.89633,
      "mdd": -0.370954,
      "total_return": 8.243091
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 5,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.152503,
      "sharpe": 0.727317,
      "mdd": -0.376903,
      "total_return": 4.274178
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 8,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.17922,
      "sharpe": 0.754161,
      "mdd": -0.410207,
      "total_return": 5.898482
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 8,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.209804,
      "sharpe": 0.880456,
      "mdd": -0.368615,
      "total_return": 8.311678
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 8,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.182464,
      "sharpe": 0.823722,
      "mdd": -0.356031,
      "total_return": 6.124078
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    }
   ],
   "grid_wins": 0,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.216328,
      "sharpe": 1.080491,
      "mdd": -0.334816,
      "total_return": 2.144953
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": true
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.202491,
      "sharpe": 0.793359,
      "mdd": -0.370954,
      "total_return": 1.944291
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": false
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.258439,
     "sharpe": 1.062313,
     "mdd": -0.365558,
     "total_return": 13.766857
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": false
   },
   "pass": {
    "neighbors": false,
    "halves": false,
    "cost": false,
    "all": false
   }
  },
  "s7c": {
   "title": "月營收動能＋產業營收擴散",
   "param_name": "前 K 個產業",
   "params": [
    3,
    5,
    8
   ],
   "holdings": [
    8,
    10,
    12
   ],
   "original": [
    5,
    10
   ],
   "grid": [
    {
     "param": 3,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.154856,
      "sharpe": 0.719589,
      "mdd": -0.419609,
      "total_return": 4.401713
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.178525,
      "sharpe": 0.838142,
      "mdd": -0.32441,
      "total_return": 5.850997
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 3,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.170472,
      "sharpe": 0.829833,
      "mdd": -0.364124,
      "total_return": 5.322193
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 5,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.194824,
      "sharpe": 0.815428,
      "mdd": -0.351245,
      "total_return": 7.047054
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 5,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.200183,
      "sharpe": 0.875783,
      "mdd": -0.33765,
      "total_return": 7.480146
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 5,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.23658,
      "sharpe": 1.030023,
      "mdd": -0.334261,
      "total_return": 11.033896
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 8,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.330911,
      "sharpe": 1.178859,
      "mdd": -0.403491,
      "total_return": 27.473336
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 8,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.305001,
      "sharpe": 1.160188,
      "mdd": -0.351077,
      "total_return": 21.615767
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 8,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.285683,
      "sharpe": 1.149942,
      "mdd": -0.33596,
      "total_return": 17.990383
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    }
   ],
   "grid_wins": 3,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.219956,
      "sharpe": 1.057737,
      "mdd": -0.273588,
      "total_return": 2.200231
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": true
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.185736,
      "sharpe": 0.765891,
      "mdd": -0.33765,
      "total_return": 1.712025
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": false
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.281615,
     "sharpe": 1.151231,
     "mdd": -0.327115,
     "total_return": 17.285742
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": true
   },
   "pass": {
    "neighbors": false,
    "halves": false,
    "cost": false,
    "all": false,
    "new_strategy": false
   },
   "above_base": 0
  },
  "s8": {
   "title": "單月營收創 N 月新高",
   "param_name": "N 個月",
   "params": [
    6,
    12,
    24
   ],
   "holdings": [
    20,
    30,
    50
   ],
   "original": [
    12,
    30
   ],
   "grid": [
    {
     "param": 6,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202079,
      "sharpe": 0.817729,
      "mdd": -0.388409,
      "total_return": 7.6385
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 6,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.23164,
      "sharpe": 0.932265,
      "mdd": -0.388791,
      "total_return": 10.482583
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 6,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.248694,
      "sharpe": 1.015826,
      "mdd": -0.351151,
      "total_return": 12.489876
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 12,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.207849,
      "sharpe": 0.823402,
      "mdd": -0.449482,
      "total_return": 8.136876
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 12,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.283727,
      "sharpe": 1.073835,
      "mdd": -0.408922,
      "total_return": 17.654651
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.297093,
      "sharpe": 1.154511,
      "mdd": -0.35915,
      "total_return": 20.061444
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 24,
     "holdings": 20,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.258514,
      "sharpe": 0.960394,
      "mdd": -0.409291,
      "total_return": 13.786422
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": false
    },
    {
     "param": 24,
     "holdings": 30,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.321342,
      "sharpe": 1.169443,
      "mdd": -0.388585,
      "total_return": 25.16529
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 24,
     "holdings": 50,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.310959,
      "sharpe": 1.183707,
      "mdd": -0.364934,
      "total_return": 22.855511
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    }
   ],
   "grid_wins": 4,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.21248,
      "sharpe": 0.927021,
      "mdd": -0.408922,
      "total_return": 2.087185
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": true
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.359937,
      "sharpe": 1.205756,
      "mdd": -0.319246,
      "total_return": 5.052305
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": false
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.339558,
     "sharpe": 1.237747,
     "mdd": -0.39833,
     "total_return": 29.692935
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": true
   },
   "pass": {
    "neighbors": false,
    "halves": false,
    "cost": true,
    "all": false
   }
  },
  "s8c": {
   "title": "月營收動能＋單月營收創 N 月新高",
   "param_name": "N 個月",
   "params": [
    6,
    12,
    24
   ],
   "holdings": [
    8,
    10,
    12
   ],
   "original": [
    12,
    10
   ],
   "grid": [
    {
     "param": 6,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.493671,
      "sharpe": 1.456468,
      "mdd": -0.340762,
      "total_return": 109.012683
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 6,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.467949,
      "sharpe": 1.47087,
      "mdd": -0.304584,
      "total_return": 88.755989
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 6,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.462484,
      "sharpe": 1.529207,
      "mdd": -0.29214,
      "total_return": 84.918568
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.56283,
      "sharpe": 1.60099,
      "mdd": -0.361464,
      "total_return": 185.950685
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.524346,
      "sharpe": 1.616853,
      "mdd": -0.320064,
      "total_return": 138.595546
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 12,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.516842,
      "sharpe": 1.68279,
      "mdd": -0.291615,
      "total_return": 130.753761
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 24,
     "holdings": 8,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.519194,
      "sharpe": 1.532075,
      "mdd": -0.346814,
      "total_return": 133.166921
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 24,
     "holdings": 10,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.500642,
      "sharpe": 1.582337,
      "mdd": -0.306903,
      "total_return": 115.180075
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    },
    {
     "param": 24,
     "holdings": 12,
     "strategy": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.490383,
      "sharpe": 1.628178,
      "mdd": -0.292987,
      "total_return": 106.208421
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2026-10-30",
      "cagr": 0.202452,
      "sharpe": 1.063985,
      "mdd": -0.33957,
      "total_return": 7.669916
     },
     "win": true
    }
   ],
   "grid_wins": 9,
   "halves": [
    {
     "strategy": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.59177,
      "sharpe": 1.936897,
      "mdd": -0.320064,
      "total_return": 14.176072
     },
     "bench": {
      "start": "2015-02-11",
      "end": "2020-12-18",
      "cagr": 0.131997,
      "sharpe": 0.868818,
      "mdd": -0.282177,
      "total_return": 1.065556
     },
     "win": true
    },
    {
     "strategy": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.467824,
      "sharpe": 1.386365,
      "mdd": -0.273608,
      "total_return": 8.464254
     },
     "bench": {
      "start": "2020-12-21",
      "end": "2026-10-30",
      "cagr": 0.27544,
      "sharpe": 1.223312,
      "mdd": -0.33957,
      "total_return": 3.156933
     },
     "win": true
    }
   ],
   "zero_cost": {
    "strategy": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.628142,
     "sharpe": 1.854159,
     "mdd": -0.304694,
     "total_return": 300.614356
    },
    "bench": {
     "start": "2015-02-12",
     "end": "2026-10-30",
     "cagr": 0.202504,
     "sharpe": 1.064172,
     "mdd": -0.33957,
     "total_return": 7.669916
    },
    "win": true
   },
   "pass": {
    "neighbors": true,
    "halves": true,
    "cost": true,
    "all": true,
    "new_strategy": true
   },
   "above_base": 9
  }
 },
 "extra": {
  "base_turnover": 0.9645,
  "surge": {
   "holdings_overlap": 0.1451,
   "daily_return_corr": 0.6283,
   "turnover": 0.5845
  },
  "new_high_combo": {
   "holdings_overlap": 0.4148,
   "daily_return_corr": 0.7748,
   "turnover": 0.9348
  },
  "risk": {
   "surge": {
    "annual_vol": 0.2659,
    "sharpe_last_3y": 1.293546,
    "sharpe_last_5y": 1.165478
   },
   "new_high_combo": {
    "annual_vol": 0.2976,
    "sharpe_last_3y": 1.539003,
    "sharpe_last_5y": 1.3153
   },
   "base": {
    "annual_vol": 0.3086,
    "sharpe_last_3y": 1.867708,
    "sharpe_last_5y": 1.536174
   },
   "0050": {
    "annual_vol": 0.1982,
    "sharpe_last_3y": 1.869997,
    "sharpe_last_5y": 1.242955
   }
  },
  "surge_quintiles": {
   "Q1": {
    "start": "2015-02-11",
    "end": "2026-10-30",
    "cagr": -0.038642,
    "sharpe": -0.096704,
    "mdd": -0.636074,
    "total_return": -0.369773
   },
   "Q2": {
    "start": "2015-02-11",
    "end": "2026-10-30",
    "cagr": 0.019108,
    "sharpe": 0.199104,
    "mdd": -0.442564,
    "total_return": 0.248256
   },
   "Q3": {
    "start": "2015-02-11",
    "end": "2026-10-30",
    "cagr": 0.065951,
    "sharpe": 0.423089,
    "mdd": -0.389292,
    "total_return": 1.113242
   },
   "Q4": {
    "start": "2015-02-11",
    "end": "2026-10-30",
    "cagr": 0.139861,
    "sharpe": 0.729775,
    "mdd": -0.366957,
    "total_return": 3.634862
   },
   "Q5": {
    "start": "2015-02-11",
    "end": "2026-10-30",
    "cagr": 0.256851,
    "sharpe": 1.11695,
    "mdd": -0.365569,
    "total_return": 13.559122
   }
  },
  "base_trades_by_new_high": {
   "False": {
    "n": 824,
    "mean": 0.030852,
    "median": -0.032695,
    "win_rate": 0.4223
   },
   "True": {
    "n": 579,
    "mean": 0.044379,
    "median": -0.019737,
    "win_rate": 0.4404
   }
  }
 }
}