[
  {
    "signal_date": "20181228",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20190131",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20190228",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159928.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159928.SZ",
        "fund": "汇添富中证主要消费ETF",
        "group": "消费",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20190329",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159928.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159928.SZ",
        "fund": "汇添富中证主要消费ETF",
        "group": "消费",
        "target_pct": 81.9321581819795
      }
    ]
  },
  {
    "signal_date": "20190430",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159928.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159928.SZ",
        "fund": "汇添富中证主要消费ETF",
        "group": "消费",
        "target_pct": 79.28547179865978
      }
    ]
  },
  {
    "signal_date": "20190531",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159928.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159928.SZ",
        "fund": "汇添富中证主要消费ETF",
        "group": "消费",
        "target_pct": 69.70492217186772
      }
    ]
  },
  {
    "signal_date": "20190628",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512400.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512400.SH",
        "fund": "南方中证申万有色金属ETF",
        "group": "材料",
        "target_pct": 72.33737075375942
      }
    ]
  },
  {
    "signal_date": "20190708",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "512400.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "512400.SH",
        "fund": "南方中证申万有色金属ETF",
        "group": "材料",
        "target_pct": 36.16868537687971
      }
    ]
  },
  {
    "signal_date": "20190731",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512660.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512660.SH",
        "fund": "国泰中证军工ETF",
        "group": "军工航天",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20190802",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "512660.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "512660.SH",
        "fund": "国泰中证军工ETF",
        "group": "军工航天",
        "target_pct": 50.0
      }
    ]
  },
  {
    "signal_date": "20190830",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512400.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512400.SH",
        "fund": "南方中证申万有色金属ETF",
        "group": "材料",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20190926",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "512400.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "512400.SH",
        "fund": "南方中证申万有色金属ETF",
        "group": "材料",
        "target_pct": 50.0
      }
    ]
  },
  {
    "signal_date": "20190930",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512980.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512980.SH",
        "fund": "广发中证传媒ETF",
        "group": "传媒游戏",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20191008",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "512980.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "512980.SH",
        "fund": "广发中证传媒ETF",
        "group": "传媒游戏",
        "target_pct": 50.0
      }
    ]
  },
  {
    "signal_date": "20191031",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512800.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512800.SH",
        "fund": "华宝中证银行ETF",
        "group": "金融",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20191129",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20191231",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512400.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512400.SH",
        "fund": "南方中证申万有色金属ETF",
        "group": "材料",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20200123",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512400.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512400.SH",
        "fund": "南方中证申万有色金属ETF",
        "group": "材料",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20200203",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "512400.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "512400.SH",
        "fund": "南方中证申万有色金属ETF",
        "group": "材料",
        "target_pct": 50.0
      }
    ]
  },
  {
    "signal_date": "20200228",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20200331",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20200430",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20200529",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20200630",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512290.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512290.SH",
        "fund": "国泰中证生物医药ETF",
        "group": "医药",
        "target_pct": 93.94624828527027
      }
    ]
  },
  {
    "signal_date": "20200731",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512710.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512710.SH",
        "fund": "富国中证军工龙头ETF",
        "group": "军工航天",
        "target_pct": 62.9234789566968
      }
    ]
  },
  {
    "signal_date": "20200831",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512710.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512710.SH",
        "fund": "富国中证军工龙头ETF",
        "group": "军工航天",
        "target_pct": 52.14605882361253
      }
    ]
  },
  {
    "signal_date": "20200930",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512690.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512690.SH",
        "fund": "鹏华中证酒ETF",
        "group": "消费",
        "target_pct": 69.16244105128251
      }
    ]
  },
  {
    "signal_date": "20201030",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512690.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512690.SH",
        "fund": "鹏华中证酒ETF",
        "group": "消费",
        "target_pct": 82.78459771777928
      }
    ]
  },
  {
    "signal_date": "20201130",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512690.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512690.SH",
        "fund": "鹏华中证酒ETF",
        "group": "消费",
        "target_pct": 78.58102581010048
      }
    ]
  },
  {
    "signal_date": "20201231",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512690.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512690.SH",
        "fund": "鹏华中证酒ETF",
        "group": "消费",
        "target_pct": 79.17402939443531
      }
    ]
  },
  {
    "signal_date": "20210129",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "515700.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "515700.SH",
        "fund": "平安中证新能源汽车产业ETF",
        "group": "新能源",
        "target_pct": 59.31529900028275
      }
    ]
  },
  {
    "signal_date": "20210226",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512730.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512730.SH",
        "fund": "鹏华中证银行ETF",
        "group": "金融",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20210309",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "512730.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "512730.SH",
        "fund": "鹏华中证银行ETF",
        "group": "金融",
        "target_pct": 50.0
      }
    ]
  },
  {
    "signal_date": "20210331",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20210430",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20210531",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159806.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159806.SZ",
        "fund": "国泰中证新能源汽车ETF",
        "group": "新能源",
        "target_pct": 66.69167477587854
      }
    ]
  },
  {
    "signal_date": "20210615",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "159806.SZ"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "159806.SZ",
        "fund": "国泰中证新能源汽车ETF",
        "group": "新能源",
        "target_pct": 33.34583738793927
      }
    ]
  },
  {
    "signal_date": "20210630",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512480.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512480.SH",
        "fund": "国联安中证全指半导体产品与设备ETF",
        "group": "半导体",
        "target_pct": 74.31470037697024
      }
    ]
  },
  {
    "signal_date": "20210702",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "512480.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "512480.SH",
        "fund": "国联安中证全指半导体产品与设备ETF",
        "group": "半导体",
        "target_pct": 37.15735018848512
      }
    ]
  },
  {
    "signal_date": "20210730",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20210831",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20210930",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20211029",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20211130",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20211231",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159855.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159855.SZ",
        "fund": "银华中证影视主题ETF",
        "group": "传媒游戏",
        "target_pct": 89.3231781987857
      }
    ]
  },
  {
    "signal_date": "20220104",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "159855.SZ"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "159855.SZ",
        "fund": "银华中证影视主题ETF",
        "group": "传媒游戏",
        "target_pct": 44.66158909939285
      }
    ]
  },
  {
    "signal_date": "20220128",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20220228",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20220331",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20220429",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20220531",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20220630",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159767.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159767.SZ",
        "fund": "兴银国证新能源车电池ETF",
        "group": "新能源",
        "target_pct": 56.363295603281216
      }
    ]
  },
  {
    "signal_date": "20220715",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "159767.SZ"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "159767.SZ",
        "fund": "兴银国证新能源车电池ETF",
        "group": "新能源",
        "target_pct": 28.181647801640608
      }
    ]
  },
  {
    "signal_date": "20220729",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20220831",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20220930",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20221031",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20221130",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20221230",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20230131",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512690.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512690.SH",
        "fund": "鹏华中证酒ETF",
        "group": "消费",
        "target_pct": 77.23521602344915
      }
    ]
  },
  {
    "signal_date": "20230228",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159869.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159869.SZ",
        "fund": "华夏中证动漫游戏ETF",
        "group": "传媒游戏",
        "target_pct": 97.64981829226276
      }
    ]
  },
  {
    "signal_date": "20230331",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159869.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159869.SZ",
        "fund": "华夏中证动漫游戏ETF",
        "group": "传媒游戏",
        "target_pct": 67.96416568911057
      }
    ]
  },
  {
    "signal_date": "20230425",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "159869.SZ"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "159869.SZ",
        "fund": "华夏中证动漫游戏ETF",
        "group": "传媒游戏",
        "target_pct": 33.982082844555286
      }
    ]
  },
  {
    "signal_date": "20230428",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159869.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159869.SZ",
        "fund": "华夏中证动漫游戏ETF",
        "group": "传媒游戏",
        "target_pct": 44.63213029357516
      }
    ]
  },
  {
    "signal_date": "20230510",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "159869.SZ"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "159869.SZ",
        "fund": "华夏中证动漫游戏ETF",
        "group": "传媒游戏",
        "target_pct": 22.31606514678758
      }
    ]
  },
  {
    "signal_date": "20230531",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20230630",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20230731",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "516110.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "516110.SH",
        "fund": "国泰中证800汽车与零部件ETF",
        "group": "汽车",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20230811",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "516110.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "516110.SH",
        "fund": "国泰中证800汽车与零部件ETF",
        "group": "汽车",
        "target_pct": 50.0
      }
    ]
  },
  {
    "signal_date": "20230831",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20230928",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20231031",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20231130",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20231229",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20240131",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20240229",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159887.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159887.SZ",
        "fund": "富国中证800银行ETF",
        "group": "金融",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20240329",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "515880.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "515880.SH",
        "fund": "国泰中证全指通信设备ETF",
        "group": "通信",
        "target_pct": 53.11340559636388
      }
    ]
  },
  {
    "signal_date": "20240430",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "516650.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "516650.SH",
        "fund": "华夏中证细分有色金属产业主题ETF",
        "group": "材料",
        "target_pct": 84.30735336343605
      }
    ]
  },
  {
    "signal_date": "20240515",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "516650.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "516650.SH",
        "fund": "华夏中证细分有色金属产业主题ETF",
        "group": "材料",
        "target_pct": 42.153676681718025
      }
    ]
  },
  {
    "signal_date": "20240531",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "516910.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "516910.SH",
        "fund": "富国中证现代物流ETF",
        "group": "地产基建",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20240625",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "516910.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "516910.SH",
        "fund": "富国中证现代物流ETF",
        "group": "地产基建",
        "target_pct": 50.0
      }
    ]
  },
  {
    "signal_date": "20240628",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20240731",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20240830",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20240930",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "512070.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "512070.SH",
        "fund": "易方达沪深300非银行金融ETF",
        "group": "金融",
        "target_pct": 72.34578384029935
      }
    ]
  },
  {
    "signal_date": "20241031",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "516860.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "516860.SH",
        "fund": "博时中证金融科技主题ETF",
        "group": "金融",
        "target_pct": 43.84926899601457
      }
    ]
  },
  {
    "signal_date": "20241129",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "516860.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "516860.SH",
        "fund": "博时中证金融科技主题ETF",
        "group": "金融",
        "target_pct": 37.539954011058654
      }
    ]
  },
  {
    "signal_date": "20241231",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "516310.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "516310.SH",
        "fund": "易方达中证银行ETF",
        "group": "金融",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20250127",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "516310.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "516310.SH",
        "fund": "易方达中证银行ETF",
        "group": "金融",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20250228",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "562500.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "562500.SH",
        "fund": "华夏中证机器人ETF",
        "group": "高端制造",
        "target_pct": 60.95663797292311
      }
    ]
  },
  {
    "signal_date": "20250328",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "562500.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "562500.SH",
        "fund": "华夏中证机器人ETF",
        "group": "高端制造",
        "target_pct": 30.478318986461556
      }
    ]
  },
  {
    "signal_date": "20250331",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20250430",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20250530",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20250630",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "515880.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "515880.SH",
        "fund": "国泰中证全指通信设备ETF",
        "group": "通信",
        "target_pct": 69.58835313047578
      }
    ]
  },
  {
    "signal_date": "20250731",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "515880.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "515880.SH",
        "fund": "国泰中证全指通信设备ETF",
        "group": "通信",
        "target_pct": 88.9365216717216
      }
    ]
  },
  {
    "signal_date": "20250829",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "515880.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "515880.SH",
        "fund": "国泰中证全指通信设备ETF",
        "group": "通信",
        "target_pct": 66.82164230406066
      }
    ]
  },
  {
    "signal_date": "20250930",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "561910.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "561910.SH",
        "fund": "招商中证电池主题ETF",
        "group": "新能源",
        "target_pct": 74.4688052683162
      }
    ]
  },
  {
    "signal_date": "20251031",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159558.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159558.SZ",
        "fund": "易方达中证半导体材料设备主题ETF",
        "group": "半导体",
        "target_pct": 54.80588825830418
      }
    ]
  },
  {
    "signal_date": "20251128",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "562510.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "562510.SH",
        "fund": "华夏中证旅游主题ETF",
        "group": "消费",
        "target_pct": 100.0
      }
    ]
  },
  {
    "signal_date": "20251231",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159583.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159583.SZ",
        "fund": "富国中证通信设备主题ETF",
        "group": "通信",
        "target_pct": 59.043712366628284
      }
    ]
  },
  {
    "signal_date": "20260130",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159206.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159206.SZ",
        "fund": "永赢国证商用卫星通信产业ETF",
        "group": "通信",
        "target_pct": 47.58074589451854
      }
    ]
  },
  {
    "signal_date": "20260227",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "159697.SZ"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "159697.SZ",
        "fund": "鹏华国证石油天然气ETF",
        "group": "能源",
        "target_pct": 94.2036730599804
      }
    ]
  },
  {
    "signal_date": "20260304",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "159697.SZ"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "159697.SZ",
        "fund": "鹏华国证石油天然气ETF",
        "group": "能源",
        "target_pct": 47.1018365299902
      }
    ]
  },
  {
    "signal_date": "20260331",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  },
  {
    "signal_date": "20260430",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "515880.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "515880.SH",
        "fund": "国泰中证全指通信设备ETF",
        "group": "通信",
        "target_pct": 59.3941479485241
      }
    ]
  },
  {
    "signal_date": "20260529",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "588710.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "588710.SH",
        "fund": "华泰柏瑞上证科创板半导体材料设备主题ETF",
        "group": "半导体",
        "target_pct": 52.62503304745512
      }
    ]
  },
  {
    "signal_date": "20260630",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [
      "588710.SH"
    ],
    "exit_fraction": 0.0,
    "holdings": [
      {
        "code": "588710.SH",
        "fund": "华泰柏瑞上证科创板半导体材料设备主题ETF",
        "group": "半导体",
        "target_pct": 44.58244792491377
      }
    ]
  },
  {
    "signal_date": "20260713",
    "reason": [
      "exit_preserving_signal_identity"
    ],
    "retained_signal_codes": [
      "588710.SH"
    ],
    "exit_fraction": 0.5,
    "holdings": [
      {
        "code": "588710.SH",
        "fund": "华泰柏瑞上证科创板半导体材料设备主题ETF",
        "group": "半导体",
        "target_pct": 22.291223962456886
      }
    ]
  },
  {
    "signal_date": "20260731",
    "reason": [
      "calendar_update"
    ],
    "retained_signal_codes": [],
    "exit_fraction": 0.0,
    "holdings": []
  }
]