@@ -0,0 +1,975 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"frameworks": [
|
||||
{
|
||||
"qualified_name": "tsBackTesting",
|
||||
"scope": "module",
|
||||
"module": "ts-backtesting",
|
||||
"kind": "framework",
|
||||
"summary": "Strategy backtesting lifecycle with configurable callbacks and portfolio state queries.",
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#tsbacktesting"
|
||||
],
|
||||
"lifecycle": [
|
||||
{
|
||||
"phase": "construct",
|
||||
"members": [
|
||||
"tsBackTesting"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#tsbacktesting"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "configure",
|
||||
"members": [
|
||||
"tsBackTesting.FBegT",
|
||||
"tsBackTesting.FEndT",
|
||||
"tsBackTesting.FCycle",
|
||||
"tsBackTesting.FGroupType"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#tsbacktesting"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "schedule",
|
||||
"required": false,
|
||||
"members": [
|
||||
"tsBackTesting.GetTimeSeries"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#gettimeseries"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "callback",
|
||||
"members": [
|
||||
"tsBackTesting.GetTradeOrder"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#gettradeorderv_end_t"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "execute",
|
||||
"members": [
|
||||
"tsBackTesting.BackTest"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#backtest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "inspect",
|
||||
"members": [
|
||||
"tsBackTesting.GetTradeData",
|
||||
"tsBackTesting.GetPortfolioReturn",
|
||||
"tsBackTesting.GetGainandLoss"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#gettradedatav_beg_tv_end_t",
|
||||
"module/ts-backtesting.md#getportfolioreturn",
|
||||
"module/ts-backtesting.md#getgainandlossv_beg_tv_end_t"
|
||||
]
|
||||
}
|
||||
],
|
||||
"configuration": [
|
||||
{
|
||||
"api": "tsBackTesting.FBegT",
|
||||
"role": "backtest_start",
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#fbegt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsBackTesting.FEndT",
|
||||
"role": "backtest_end",
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#fendt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsBackTesting.FCycle",
|
||||
"role": "rebalance_cycle",
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#fcycle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsBackTesting.FGroupType",
|
||||
"role": "candidate_mode_discriminator",
|
||||
"contract_evidence_required": true,
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#fgrouptype"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hooks": [
|
||||
{
|
||||
"api": "tsBackTesting.GetTimeSeries",
|
||||
"required": false,
|
||||
"override": true,
|
||||
"role": "schedule_provider",
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#gettimeseries"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsBackTesting.GetTradeOrder",
|
||||
"required": true,
|
||||
"override": true,
|
||||
"role": "trade_or_target_callback",
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#gettradeorderv_end_t"
|
||||
]
|
||||
}
|
||||
],
|
||||
"state_apis": [
|
||||
{
|
||||
"api": "tsBackTesting.GetHoldData",
|
||||
"concept": "current_or_historical_holdings",
|
||||
"observation_point": "framework_defined; exact callback timing requires contract evidence",
|
||||
"replacement_allowed": false,
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#getholddata"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsBackTesting.GetSurplusFund",
|
||||
"concept": "available_funds_before_trade",
|
||||
"observation_point": "before_current_trade",
|
||||
"replacement_allowed": false,
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#getsurplusfund"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsBackTesting.GetNetAssetValue",
|
||||
"concept": "net_asset_value_before_trade",
|
||||
"observation_point": "before_current_trade",
|
||||
"replacement_allowed": false,
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#getnetassetvalue"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsBackTesting.GetSellpool",
|
||||
"concept": "sellable_security_quantity",
|
||||
"observation_point": "framework_defined; exact callback timing requires contract evidence",
|
||||
"replacement_allowed": false,
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#getsellpool"
|
||||
]
|
||||
}
|
||||
],
|
||||
"execution": [
|
||||
{
|
||||
"api": "tsBackTesting.BackTest",
|
||||
"role": "backtest_entrypoint",
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#backtest"
|
||||
]
|
||||
}
|
||||
],
|
||||
"result_apis": [
|
||||
{
|
||||
"api": "tsBackTesting.GetTradeData",
|
||||
"role": "trade_results",
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#gettradedatav_beg_tv_end_t"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsBackTesting.GetPortfolioReturn",
|
||||
"role": "portfolio_return",
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#getportfolioreturn"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsBackTesting.GetGainandLoss",
|
||||
"role": "profit_and_loss",
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#getgainandlossv_beg_tv_end_t"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contracts": [
|
||||
{
|
||||
"id": "ts-backtesting-trade-order",
|
||||
"status": "incomplete",
|
||||
"callback": "tsBackTesting.GetTradeOrder",
|
||||
"reason": "The reference states target holdings or trade details but does not yet define the mode-specific record fields.",
|
||||
"required_next_step": "Resolve the configuration-to-return-schema mapping before generating callback fields.",
|
||||
"evidence": [
|
||||
"module/ts-backtesting.md#gettradeorderv_end_t"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"qualified_name": "tsbf_ReturnAttribution",
|
||||
"scope": "module",
|
||||
"module": "tsbf-return-attribution",
|
||||
"kind": "framework",
|
||||
"summary": "Return-attribution framework with required portfolio and factor return providers.",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#tsbf_returnattribution"
|
||||
],
|
||||
"lifecycle": [
|
||||
{
|
||||
"phase": "construct",
|
||||
"members": [
|
||||
"tsbf_ReturnAttribution"
|
||||
],
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#tsbf_returnattribution"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "configure",
|
||||
"members": [
|
||||
"tsbf_ReturnAttribution.FEndT",
|
||||
"tsbf_ReturnAttribution.FCycle",
|
||||
"tsbf_ReturnAttribution.FRegMode",
|
||||
"tsbf_ReturnAttribution.FRegCycle",
|
||||
"tsbf_ReturnAttribution.FRegN"
|
||||
],
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#tsbf_returnattribution"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "schedule",
|
||||
"members": [
|
||||
"tsbf_ReturnAttribution.GetTimeSeries"
|
||||
],
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#gettimeseries"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "callback",
|
||||
"members": [
|
||||
"tsbf_ReturnAttribution.GetPortfolioReturn",
|
||||
"tsbf_ReturnAttribution.GetFactorReturn",
|
||||
"tsbf_ReturnAttribution.GetFactorConfig"
|
||||
],
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#getportfolioreturnv_beg_tv_end_tcy",
|
||||
"module/tsbf-return-attribution.md#getfactorreturnv_beg_tv_end_tcy",
|
||||
"module/tsbf-return-attribution.md#getfactorconfig"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "inspect",
|
||||
"members": [
|
||||
"tsbf_ReturnAttribution.RaRegressCoeff",
|
||||
"tsbf_ReturnAttribution.RaRegressTTest",
|
||||
"tsbf_ReturnAttribution.RaRegressRSquare",
|
||||
"tsbf_ReturnAttribution.RaRegressVIF"
|
||||
],
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#raregresscoeff",
|
||||
"module/tsbf-return-attribution.md#raregressttestr_type",
|
||||
"module/tsbf-return-attribution.md#raregressrsquare",
|
||||
"module/tsbf-return-attribution.md#raregressvif"
|
||||
]
|
||||
}
|
||||
],
|
||||
"configuration": [
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.FEndT",
|
||||
"role": "attribution_end",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#fendt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.FCycle",
|
||||
"role": "attribution_cycle",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#fcycle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.FRegMode",
|
||||
"role": "regression_mode",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#fregmode"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.FRegCycle",
|
||||
"role": "regression_cycle",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#fregcycle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.FRegN",
|
||||
"role": "regression_periods",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#fregn"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hooks": [
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.GetPortfolioReturn",
|
||||
"required": true,
|
||||
"override": true,
|
||||
"role": "portfolio_return_provider",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#getportfolioreturnv_beg_tv_end_tcy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.GetFactorReturn",
|
||||
"required": true,
|
||||
"override": true,
|
||||
"role": "factor_return_provider",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#getfactorreturnv_beg_tv_end_tcy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.GetFactorConfig",
|
||||
"required": false,
|
||||
"override": true,
|
||||
"role": "conditional_factor_config_provider",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#getfactorconfig"
|
||||
]
|
||||
}
|
||||
],
|
||||
"state_apis": [],
|
||||
"execution": [],
|
||||
"result_apis": [
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.RaRegressCoeff",
|
||||
"role": "regression_coefficients",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#raregresscoeff"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.RaRegressTTest",
|
||||
"role": "regression_t_test",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#raregressttestr_type"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.RaRegressRSquare",
|
||||
"role": "regression_r_square",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#raregressrsquare"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "tsbf_ReturnAttribution.RaRegressVIF",
|
||||
"role": "regression_vif",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#raregressvif"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contracts": [
|
||||
{
|
||||
"id": "tsbf-return-attribution-portfolio-return",
|
||||
"status": "incomplete",
|
||||
"callback": "tsbf_ReturnAttribution.GetPortfolioReturn",
|
||||
"reason": "The reference names required fields but does not yet provide a complete typed record schema.",
|
||||
"required_next_step": "Record the exact array shape and field types before generating callback records.",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#getportfolioreturnv_beg_tv_end_tcy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "tsbf-return-attribution-factor-return",
|
||||
"status": "incomplete",
|
||||
"callback": "tsbf_ReturnAttribution.GetFactorReturn",
|
||||
"reason": "The reference names dynamic factor fields but does not yet provide a complete typed record schema.",
|
||||
"required_next_step": "Record the exact array shape and dynamic factor-field contract before generating callback records.",
|
||||
"evidence": [
|
||||
"module/tsbf-return-attribution.md#getfactorreturnv_beg_tv_end_tcy"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"qualified_name": "ts_EvaluationOfRotationSkill",
|
||||
"scope": "module",
|
||||
"module": "ts-evaluation-of-rotation-skill",
|
||||
"kind": "framework",
|
||||
"summary": "Rotation-skill evaluation workflow with one documented entrypoint and result queries.",
|
||||
"evidence": [
|
||||
"module/ts-evaluation-of-rotation-skill.md#ts_evaluationofrotationskill"
|
||||
],
|
||||
"lifecycle": [
|
||||
{
|
||||
"phase": "construct",
|
||||
"members": [
|
||||
"ts_EvaluationOfRotationSkill"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-evaluation-of-rotation-skill.md#ts_evaluationofrotationskill"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "execute",
|
||||
"members": [
|
||||
"ts_EvaluationOfRotationSkill.Measure"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-evaluation-of-rotation-skill.md#measure"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "inspect",
|
||||
"members": [
|
||||
"ts_EvaluationOfRotationSkill.Get_Ret_CfgDescriptionQK",
|
||||
"ts_EvaluationOfRotationSkill.Get_Ret_RotationConductQK",
|
||||
"ts_EvaluationOfRotationSkill.Get_Ret_RotationDescriptionQK",
|
||||
"ts_EvaluationOfRotationSkill.Get_Ret_RotationSkillQK",
|
||||
"ts_EvaluationOfRotationSkill.Get_Ret_CfgSkillQK"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-evaluation-of-rotation-skill.md#get_ret_cfgdescriptionqkvbegtvendt",
|
||||
"module/ts-evaluation-of-rotation-skill.md#get_ret_rotationconductqkvbegtvendt",
|
||||
"module/ts-evaluation-of-rotation-skill.md#get_ret_rotationdescriptionqkvbegtvendt",
|
||||
"module/ts-evaluation-of-rotation-skill.md#get_ret_rotationskillqkvbegtvendt",
|
||||
"module/ts-evaluation-of-rotation-skill.md#get_ret_cfgskillqkvbegtvendt"
|
||||
]
|
||||
}
|
||||
],
|
||||
"configuration": [],
|
||||
"hooks": [],
|
||||
"state_apis": [],
|
||||
"execution": [
|
||||
{
|
||||
"api": "ts_EvaluationOfRotationSkill.Measure",
|
||||
"role": "workflow_entrypoint",
|
||||
"evidence": [
|
||||
"module/ts-evaluation-of-rotation-skill.md#measure"
|
||||
]
|
||||
}
|
||||
],
|
||||
"result_apis": [
|
||||
{
|
||||
"api": "ts_EvaluationOfRotationSkill.Get_Ret_CfgDescriptionQK",
|
||||
"role": "configuration_description_results",
|
||||
"evidence": [
|
||||
"module/ts-evaluation-of-rotation-skill.md#get_ret_cfgdescriptionqkvbegtvendt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_EvaluationOfRotationSkill.Get_Ret_RotationConductQK",
|
||||
"role": "rotation_conduct_results",
|
||||
"evidence": [
|
||||
"module/ts-evaluation-of-rotation-skill.md#get_ret_rotationconductqkvbegtvendt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_EvaluationOfRotationSkill.Get_Ret_RotationDescriptionQK",
|
||||
"role": "rotation_description_results",
|
||||
"evidence": [
|
||||
"module/ts-evaluation-of-rotation-skill.md#get_ret_rotationdescriptionqkvbegtvendt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_EvaluationOfRotationSkill.Get_Ret_RotationSkillQK",
|
||||
"role": "rotation_skill_results",
|
||||
"evidence": [
|
||||
"module/ts-evaluation-of-rotation-skill.md#get_ret_rotationskillqkvbegtvendt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_EvaluationOfRotationSkill.Get_Ret_CfgSkillQK",
|
||||
"role": "configuration_skill_results",
|
||||
"evidence": [
|
||||
"module/ts-evaluation-of-rotation-skill.md#get_ret_cfgskillqkvbegtvendt"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contracts": []
|
||||
},
|
||||
{
|
||||
"qualified_name": "ts_IndustryAllocationOfFund",
|
||||
"scope": "module",
|
||||
"module": "ts-industry-allocation-of-fund",
|
||||
"kind": "framework",
|
||||
"summary": "Fund-industry allocation workflow with configuration fields and one documented entrypoint.",
|
||||
"evidence": [
|
||||
"module/ts-industry-allocation-of-fund.md#ts_industryallocationoffund"
|
||||
],
|
||||
"lifecycle": [
|
||||
{
|
||||
"phase": "construct",
|
||||
"members": [
|
||||
"ts_IndustryAllocationOfFund"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-industry-allocation-of-fund.md#ts_industryallocationoffund"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "configure",
|
||||
"members": [
|
||||
"ts_IndustryAllocationOfFund.FFundsArr",
|
||||
"ts_IndustryAllocationOfFund.FrDate",
|
||||
"ts_IndustryAllocationOfFund.FhyType"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-industry-allocation-of-fund.md#ts_industryallocationoffund"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "execute",
|
||||
"members": [
|
||||
"ts_IndustryAllocationOfFund.Allocation"
|
||||
],
|
||||
"evidence": [
|
||||
"module/ts-industry-allocation-of-fund.md#allocation"
|
||||
]
|
||||
}
|
||||
],
|
||||
"configuration": [
|
||||
{
|
||||
"api": "ts_IndustryAllocationOfFund.FFundsArr",
|
||||
"role": "fund_universe",
|
||||
"evidence": [
|
||||
"module/ts-industry-allocation-of-fund.md#ffundsarr"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_IndustryAllocationOfFund.FrDate",
|
||||
"role": "report_date",
|
||||
"evidence": [
|
||||
"module/ts-industry-allocation-of-fund.md#frdate"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_IndustryAllocationOfFund.FhyType",
|
||||
"role": "industry_classification",
|
||||
"evidence": [
|
||||
"module/ts-industry-allocation-of-fund.md#fhytype"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hooks": [],
|
||||
"state_apis": [],
|
||||
"execution": [
|
||||
{
|
||||
"api": "ts_IndustryAllocationOfFund.Allocation",
|
||||
"role": "workflow_entrypoint",
|
||||
"evidence": [
|
||||
"module/ts-industry-allocation-of-fund.md#allocation"
|
||||
]
|
||||
}
|
||||
],
|
||||
"result_apis": [],
|
||||
"contracts": []
|
||||
},
|
||||
{
|
||||
"qualified_name": "ts_SameTypeFundEquityPercent",
|
||||
"scope": "module",
|
||||
"module": "fund-research",
|
||||
"kind": "framework",
|
||||
"summary": "Historical same-type fund position measurement with overridable schedules, fund selection, solver customization, caching, and result analysis.",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#ts_sametypefundequitypercent"
|
||||
],
|
||||
"lifecycle": [
|
||||
{
|
||||
"phase": "construct",
|
||||
"members": [
|
||||
"ts_SameTypeFundEquityPercent"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#ts_sametypefundequitypercent"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "configure",
|
||||
"members": [
|
||||
"ts_SameTypeFundEquityPercent.FBegT",
|
||||
"ts_SameTypeFundEquityPercent.FEndT",
|
||||
"ts_SameTypeFundEquityPercent.FCycle",
|
||||
"ts_SameTypeFundEquityPercent.FPMOBJ",
|
||||
"ts_SameTypeFundEquityPercent.FVersionId"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#ts_sametypefundequitypercent"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "schedule",
|
||||
"required": false,
|
||||
"members": [
|
||||
"ts_SameTypeFundEquityPercent.GetTimeSeries"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#gettimeseries"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "callback",
|
||||
"required": false,
|
||||
"members": [
|
||||
"ts_SameTypeFundEquityPercent.GetFundArr",
|
||||
"ts_SameTypeFundEquityPercent.GetStatfundData",
|
||||
"ts_SameTypeFundEquityPercent.GetPMOBJ"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#getfundarrvendt",
|
||||
"module/fund-research/position-estimation.md#getstatfunddataregmxarrdayday",
|
||||
"module/fund-research/position-estimation.md#getpmobjvendtfund"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "execute",
|
||||
"members": [
|
||||
"ts_SameTypeFundEquityPercent.BackMeasure"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#backmeasure"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "inspect",
|
||||
"members": [
|
||||
"ts_SameTypeFundEquityPercent.GetPMdetail",
|
||||
"ts_SameTypeFundEquityPercent.GetPMdistribution",
|
||||
"ts_SameTypeFundEquityPercent.GetOverAllPM",
|
||||
"ts_SameTypeFundEquityPercent.GetErrorDistribution",
|
||||
"ts_SameTypeFundEquityPercent.GetOverAllErrorAnalysis"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#getpmdetailvbegtvendt",
|
||||
"module/fund-research/position-estimation.md#getpmdistributionvbegtvendt",
|
||||
"module/fund-research/position-estimation.md#getoverallpmvbegtvendttype_",
|
||||
"module/fund-research/position-estimation.md#geterrordistributionvbegtvendt",
|
||||
"module/fund-research/position-estimation.md#getoverallerroranalysisvbegtvendt"
|
||||
]
|
||||
}
|
||||
],
|
||||
"configuration": [
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.FBegT",
|
||||
"role": "measurement_start",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#fbegt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.FEndT",
|
||||
"role": "measurement_end",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#fendt-1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.FCycle",
|
||||
"role": "measurement_cycle",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#fcycle-1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.FPMOBJ",
|
||||
"role": "position_solver",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#fpmobj"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.FVersionId",
|
||||
"role": "cache_mode",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#fversionid"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hooks": [
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.GetTimeSeries",
|
||||
"required": false,
|
||||
"override": true,
|
||||
"role": "measurement_schedule_provider",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#gettimeseries"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.GetFundArr",
|
||||
"required": false,
|
||||
"override": true,
|
||||
"role": "fund_universe_provider",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#getfundarrvendt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.GetStatfundData",
|
||||
"required": false,
|
||||
"override": true,
|
||||
"role": "statistical_sample_filter",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#getstatfunddataregmxarrdayday"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.GetPMOBJ",
|
||||
"required": false,
|
||||
"override": true,
|
||||
"role": "per_fund_solver_provider",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#getpmobjvendtfund"
|
||||
]
|
||||
}
|
||||
],
|
||||
"state_apis": [],
|
||||
"execution": [
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.BackMeasure",
|
||||
"role": "measurement_entrypoint",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#backmeasure"
|
||||
]
|
||||
}
|
||||
],
|
||||
"result_apis": [
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.GetPMdetail",
|
||||
"role": "position_measurement_details",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#getpmdetailvbegtvendt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.GetPMdistribution",
|
||||
"role": "position_distribution",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#getpmdistributionvbegtvendt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.GetOverAllPM",
|
||||
"role": "aggregate_position_measurement",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#getoverallpmvbegtvendttype_"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.GetErrorDistribution",
|
||||
"role": "measurement_error_distribution",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#geterrordistributionvbegtvendt"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_SameTypeFundEquityPercent.GetOverAllErrorAnalysis",
|
||||
"role": "aggregate_error_analysis",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#getoverallerroranalysisvbegtvendt"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contracts": [
|
||||
{
|
||||
"id": "same-type-fund-universe",
|
||||
"status": "incomplete",
|
||||
"callback": "ts_SameTypeFundEquityPercent.GetFundArr",
|
||||
"reason": "The callback may return either a one-dimensional code array or a two-dimensional table, but the full table schema is not documented.",
|
||||
"required_next_step": "Record the exact two-dimensional fund-universe record schema before generating callback rows.",
|
||||
"evidence": [
|
||||
"module/fund-research/position-estimation.md#getfundarrvendt"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"qualified_name": "ts_AIPBackTesting",
|
||||
"scope": "module",
|
||||
"module": "fund-research",
|
||||
"kind": "framework",
|
||||
"summary": "Fund periodic-investment backtesting lifecycle with strategy configuration, overridable purchase and redemption callbacks, execution, and return analysis.",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#ts_aipbacktesting"
|
||||
],
|
||||
"lifecycle": [
|
||||
{
|
||||
"phase": "construct",
|
||||
"members": [
|
||||
"ts_AIPBackTesting"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#ts_aipbacktesting"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "configure",
|
||||
"members": [
|
||||
"ts_AIPBackTesting.FAIPFund",
|
||||
"ts_AIPBackTesting.FAIPType",
|
||||
"ts_AIPBackTesting.FOriginalAmount",
|
||||
"ts_AIPBackTesting.FPurchaseRatio",
|
||||
"ts_AIPBackTesting.FDeductDay"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#ts_aipbacktesting"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "schedule",
|
||||
"required": false,
|
||||
"members": [
|
||||
"ts_AIPBackTesting.GetTimeSeries"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#gettimeseries"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "callback",
|
||||
"members": [
|
||||
"ts_AIPBackTesting.GetTradeOrder",
|
||||
"ts_AIPBackTesting.GetTA"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#gettradeorderv_end_t",
|
||||
"module/fund-research/fixed-amount-investment.md#gettav_end_t"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "execute",
|
||||
"members": [
|
||||
"ts_AIPBackTesting.BackTest"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#backtest"
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "inspect",
|
||||
"members": [
|
||||
"ts_AIPBackTesting.CumReturn",
|
||||
"ts_AIPBackTesting.IntervalReturn"
|
||||
],
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#cumreturnbeg_tend_trtypeannual",
|
||||
"module/fund-research/fixed-amount-investment.md#intervalreturnbegtendt"
|
||||
]
|
||||
}
|
||||
],
|
||||
"configuration": [
|
||||
{
|
||||
"api": "ts_AIPBackTesting.FAIPFund",
|
||||
"role": "investment_fund",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#faipfund"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_AIPBackTesting.FAIPType",
|
||||
"role": "investment_strategy",
|
||||
"contract_evidence_required": true,
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#faiptype"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_AIPBackTesting.FOriginalAmount",
|
||||
"role": "periodic_investment_amount",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#foriginalamount"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_AIPBackTesting.FPurchaseRatio",
|
||||
"role": "purchase_fee_ratio",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#fpurchaseratio"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_AIPBackTesting.FDeductDay",
|
||||
"role": "deduction_day",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#fdeductday"
|
||||
]
|
||||
}
|
||||
],
|
||||
"hooks": [
|
||||
{
|
||||
"api": "ts_AIPBackTesting.GetTimeSeries",
|
||||
"required": false,
|
||||
"override": true,
|
||||
"role": "investment_schedule_provider",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#gettimeseries"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_AIPBackTesting.GetTradeOrder",
|
||||
"required": true,
|
||||
"override": true,
|
||||
"role": "purchase_and_redemption_order_provider",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#gettradeorderv_end_t"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_AIPBackTesting.GetTA",
|
||||
"required": false,
|
||||
"override": true,
|
||||
"role": "subscription_and_redemption_cashflow_provider",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#gettav_end_t"
|
||||
]
|
||||
}
|
||||
],
|
||||
"state_apis": [],
|
||||
"execution": [
|
||||
{
|
||||
"api": "ts_AIPBackTesting.BackTest",
|
||||
"role": "backtest_entrypoint",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#backtest"
|
||||
]
|
||||
}
|
||||
],
|
||||
"result_apis": [
|
||||
{
|
||||
"api": "ts_AIPBackTesting.CumReturn",
|
||||
"role": "interval_return",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#cumreturnbeg_tend_trtypeannual"
|
||||
]
|
||||
},
|
||||
{
|
||||
"api": "ts_AIPBackTesting.IntervalReturn",
|
||||
"role": "periodic_investment_return_series",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#intervalreturnbegtendt"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contracts": [
|
||||
{
|
||||
"id": "aip-trade-order",
|
||||
"status": "incomplete",
|
||||
"callback": "ts_AIPBackTesting.GetTradeOrder",
|
||||
"reason": "The reference requires purchase and redemption details but does not define the complete typed order-record schema.",
|
||||
"required_next_step": "Record the exact purchase and redemption order fields before generating callback rows.",
|
||||
"evidence": [
|
||||
"module/fund-research/fixed-amount-investment.md#gettradeorderv_end_t"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,461 @@
|
||||
{
|
||||
"version": 1,
|
||||
"domains": [
|
||||
{
|
||||
"id": "market_board",
|
||||
"label": "市场和板块名称",
|
||||
"mode": "runtime_catalog",
|
||||
"complete": false,
|
||||
"bindings": [
|
||||
{
|
||||
"scope": "dotnet",
|
||||
"module": "datawarehouse",
|
||||
"api": "getBk",
|
||||
"parameter": "marketlist",
|
||||
"role": "current_components"
|
||||
}
|
||||
],
|
||||
"resolvers": [
|
||||
{
|
||||
"scope": "dotnet",
|
||||
"module": "datawarehouse",
|
||||
"api": "getBkList2",
|
||||
"parameter": "bktype",
|
||||
"catalog": "system",
|
||||
"source": "net_function:28964"
|
||||
},
|
||||
{
|
||||
"scope": "dotnet",
|
||||
"module": "datawarehouse",
|
||||
"api": "getUserBkList2",
|
||||
"parameter": "bktype",
|
||||
"catalog": "user",
|
||||
"source": "net_function:28963"
|
||||
}
|
||||
],
|
||||
"values": [],
|
||||
"related_tables": [],
|
||||
"sources": ["net_function:28960", "faq:37996"],
|
||||
"as_of": "2026-08-20"
|
||||
},
|
||||
{
|
||||
"id": "classification_code",
|
||||
"label": "分类属性代码",
|
||||
"mode": "versioned_catalog",
|
||||
"complete": false,
|
||||
"bindings": [
|
||||
{
|
||||
"scope": "dotnet",
|
||||
"module": "financial",
|
||||
"api": "getBkByDate",
|
||||
"parameter": "index_id",
|
||||
"role": "historical_components"
|
||||
}
|
||||
],
|
||||
"resolvers": [],
|
||||
"related_tables": [
|
||||
{
|
||||
"id": "138",
|
||||
"name": "股票.股票行业分类信息",
|
||||
"scope": "stock",
|
||||
"page": "references/data_dictionary/股票__股票行业分类信息.md"
|
||||
},
|
||||
{
|
||||
"id": "355",
|
||||
"name": "基金.基金分类信息",
|
||||
"scope": "fund",
|
||||
"page": "references/data_dictionary/基金__基金分类信息.md"
|
||||
}
|
||||
],
|
||||
"values": [
|
||||
{
|
||||
"value": "SWHY",
|
||||
"label": "申万行业",
|
||||
"aliases": ["申万行业分类"],
|
||||
"level": 0,
|
||||
"related_table": "138",
|
||||
"sources": ["faq:31492", "faq:31494"],
|
||||
"relations": [
|
||||
{
|
||||
"kind": "runtime_parameter",
|
||||
"domain": "classification_catalog_selector",
|
||||
"value": "申万行业",
|
||||
"verification": {
|
||||
"status": "documented",
|
||||
"scope": "dotnet",
|
||||
"module": "datawarehouse",
|
||||
"resolver": "getBkList2",
|
||||
"parameter": "bktype",
|
||||
"argument": "申万行业"
|
||||
},
|
||||
"sources": [
|
||||
"faq:31494",
|
||||
"net_function:28962",
|
||||
"net_function:28964"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"value": "SWHY740000",
|
||||
"label": "申万煤炭",
|
||||
"aliases": ["申万煤炭一级行业"],
|
||||
"parent": "SWHY",
|
||||
"parent_label": "申万行业",
|
||||
"level": 1,
|
||||
"valid_from": "20211213",
|
||||
"related_table": "138",
|
||||
"as_of": "2023-10-13",
|
||||
"sources": ["faq:31494", "faq:35791"],
|
||||
"relations": [
|
||||
{
|
||||
"kind": "runtime_parameter",
|
||||
"domain": "market_board",
|
||||
"value": "申万煤炭",
|
||||
"verification": {
|
||||
"status": "runtime_required",
|
||||
"scope": "dotnet",
|
||||
"module": "datawarehouse",
|
||||
"resolver": "getBkList2",
|
||||
"parameter": "bktype",
|
||||
"argument": "申万行业"
|
||||
},
|
||||
"sources": ["faq:31494", "net_function:28964"]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"value": "CAPCHY",
|
||||
"label": "中上协行业",
|
||||
"aliases": ["中国上市公司协会行业"],
|
||||
"level": 0,
|
||||
"related_table": "138",
|
||||
"sources": ["faq:31492"]
|
||||
},
|
||||
{
|
||||
"value": "CSRCHY",
|
||||
"label": "证监会行业",
|
||||
"aliases": [],
|
||||
"level": 0,
|
||||
"note": "2024-02-19 起不再维护",
|
||||
"related_table": "138",
|
||||
"sources": ["faq:31492"]
|
||||
},
|
||||
{
|
||||
"value": "YHFL",
|
||||
"label": "银河基金分类",
|
||||
"aliases": [],
|
||||
"level": 0,
|
||||
"related_table": "355",
|
||||
"sources": ["faq:31492"]
|
||||
},
|
||||
{
|
||||
"value": "TSJJ02",
|
||||
"label": "投资风格",
|
||||
"aliases": ["基金投资风格"],
|
||||
"level": 0,
|
||||
"related_table": "355",
|
||||
"sources": ["faq:31492"]
|
||||
},
|
||||
{
|
||||
"value": "TSJJ03",
|
||||
"label": "净值增长率计算方法",
|
||||
"aliases": [],
|
||||
"level": 0,
|
||||
"related_table": "355",
|
||||
"sources": ["faq:31492"]
|
||||
}
|
||||
],
|
||||
"sources": ["faq:31492"],
|
||||
"as_of": "2026-08-20"
|
||||
},
|
||||
{
|
||||
"id": "classification_catalog_selector",
|
||||
"label": "分类属性目录选择器",
|
||||
"mode": "catalog",
|
||||
"complete": false,
|
||||
"bindings": [
|
||||
{
|
||||
"scope": "dotnet",
|
||||
"module": "datawarehouse",
|
||||
"api": "getBk",
|
||||
"parameter": "marketlist",
|
||||
"role": "catalog_selector"
|
||||
}
|
||||
],
|
||||
"resolvers": [
|
||||
{
|
||||
"scope": "dotnet",
|
||||
"module": "datawarehouse",
|
||||
"api": "getBkList2",
|
||||
"parameter": "bktype",
|
||||
"catalog": "system",
|
||||
"source": "net_function:28964"
|
||||
}
|
||||
],
|
||||
"related_tables": [
|
||||
{
|
||||
"id": "138",
|
||||
"name": "股票.股票行业分类信息",
|
||||
"scope": "stock",
|
||||
"page": "references/data_dictionary/股票__股票行业分类信息.md"
|
||||
},
|
||||
{
|
||||
"id": "355",
|
||||
"name": "基金.基金分类信息",
|
||||
"scope": "fund",
|
||||
"page": "references/data_dictionary/基金__基金分类信息.md"
|
||||
}
|
||||
],
|
||||
"values": [
|
||||
{
|
||||
"value": "属性代码",
|
||||
"label": "全部股票与基金分类属性代码",
|
||||
"aliases": ["分类属性代码目录"],
|
||||
"sources": ["faq:31492"]
|
||||
}
|
||||
],
|
||||
"sources": ["faq:31492"],
|
||||
"as_of": "2026-08-20"
|
||||
},
|
||||
{
|
||||
"id": "classification_child_code",
|
||||
"label": "下级分类属性代码模式",
|
||||
"mode": "pattern",
|
||||
"complete": true,
|
||||
"bindings": [
|
||||
{
|
||||
"scope": "dotnet",
|
||||
"module": "financial",
|
||||
"api": "getBkByDate",
|
||||
"parameter": "index_id",
|
||||
"role": "child_codes"
|
||||
}
|
||||
],
|
||||
"resolvers": [],
|
||||
"related_tables": [
|
||||
{
|
||||
"id": "138",
|
||||
"name": "股票.股票行业分类信息",
|
||||
"scope": "stock",
|
||||
"page": "references/data_dictionary/股票__股票行业分类信息.md"
|
||||
},
|
||||
{
|
||||
"id": "355",
|
||||
"name": "基金.基金分类信息",
|
||||
"scope": "fund",
|
||||
"page": "references/data_dictionary/基金__基金分类信息.md"
|
||||
}
|
||||
],
|
||||
"values": [
|
||||
{
|
||||
"value": "<分类属性代码>.N",
|
||||
"label": "指定分类节点的下级分类属性代码",
|
||||
"aliases": [".N", "下级分类代码"],
|
||||
"sources": ["faq:31492"]
|
||||
}
|
||||
],
|
||||
"sources": ["faq:31492"],
|
||||
"as_of": "2026-08-20"
|
||||
},
|
||||
{
|
||||
"id": "market_board_type",
|
||||
"label": "板块类别",
|
||||
"mode": "enum",
|
||||
"complete": true,
|
||||
"bindings": [
|
||||
{
|
||||
"scope": "dotnet",
|
||||
"module": "financial",
|
||||
"api": "getbktypelist",
|
||||
"parameter": "bktype",
|
||||
"role": "category"
|
||||
},
|
||||
{
|
||||
"scope": "dotnet",
|
||||
"module": "financial",
|
||||
"api": "stocksbklist",
|
||||
"parameter": "bktype",
|
||||
"role": "category"
|
||||
}
|
||||
],
|
||||
"resolvers": [],
|
||||
"related_tables": [],
|
||||
"values": [
|
||||
{
|
||||
"value": "-1",
|
||||
"label": "自定义板块序列",
|
||||
"sources": ["net_function:22421", "net_function:22416"]
|
||||
},
|
||||
{
|
||||
"value": "0",
|
||||
"label": "概念板块",
|
||||
"sources": ["net_function:22421", "net_function:22416"]
|
||||
},
|
||||
{
|
||||
"value": "1",
|
||||
"label": "中证行业",
|
||||
"sources": ["net_function:22421", "net_function:22416"]
|
||||
},
|
||||
{
|
||||
"value": "2",
|
||||
"label": "中证证监会行业",
|
||||
"sources": ["net_function:22421", "net_function:22416"]
|
||||
},
|
||||
{
|
||||
"value": "3",
|
||||
"label": "股票地域",
|
||||
"sources": ["net_function:22421", "net_function:22416"]
|
||||
},
|
||||
{
|
||||
"value": "4",
|
||||
"label": "指数成份",
|
||||
"sources": ["net_function:22421", "net_function:22416"]
|
||||
},
|
||||
{
|
||||
"value": "5",
|
||||
"label": "申万行业(一级)",
|
||||
"aliases": ["申万一级行业"],
|
||||
"sources": ["net_function:22421", "net_function:22416"]
|
||||
},
|
||||
{
|
||||
"value": "6",
|
||||
"label": "申万二级行业",
|
||||
"sources": ["net_function:22421", "net_function:22416"]
|
||||
},
|
||||
{
|
||||
"value": "7",
|
||||
"label": "申万三级行业",
|
||||
"sources": ["net_function:22421", "net_function:22416"]
|
||||
}
|
||||
],
|
||||
"sources": ["net_function:22421", "net_function:22416"],
|
||||
"as_of": "2026-08-21"
|
||||
},
|
||||
{
|
||||
"id": "historical_market_board_code",
|
||||
"label": "常用股票市场板块历史代码",
|
||||
"mode": "enum",
|
||||
"complete": true,
|
||||
"bindings": [
|
||||
{
|
||||
"scope": "dotnet",
|
||||
"module": "financial",
|
||||
"api": "getBkByDate",
|
||||
"parameter": "index_id",
|
||||
"role": "historical_market_components"
|
||||
}
|
||||
],
|
||||
"resolvers": [],
|
||||
"related_tables": [],
|
||||
"values": [
|
||||
{
|
||||
"value": "TSI000001",
|
||||
"label": "A股板块",
|
||||
"aliases": ["A股历史成份股"],
|
||||
"sources": ["faq:34194", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "TSI000002",
|
||||
"label": "上证A股板块",
|
||||
"sources": ["faq:34194", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "TSI000003",
|
||||
"label": "科创板板块",
|
||||
"sources": ["faq:34194", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "TSI000004",
|
||||
"label": "深证A股板块",
|
||||
"sources": ["faq:34194", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "TSI000005",
|
||||
"label": "创业板板块",
|
||||
"sources": ["faq:34194", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "TSI000006",
|
||||
"label": "北证A股板块",
|
||||
"sources": ["faq:34194", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "TSI000007",
|
||||
"label": "B股板块",
|
||||
"sources": ["faq:34194", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "TSI000008",
|
||||
"label": "上证B股板块",
|
||||
"sources": ["faq:34194", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "TSI000009",
|
||||
"label": "深证B股板块",
|
||||
"sources": ["faq:34194", "faq:35788"]
|
||||
}
|
||||
],
|
||||
"sources": ["faq:34194", "faq:35788"],
|
||||
"as_of": "2023-10-19"
|
||||
},
|
||||
{
|
||||
"id": "historical_a_share_board_name",
|
||||
"label": "按名称查询的历史 A 股板块",
|
||||
"mode": "enum",
|
||||
"complete": true,
|
||||
"bindings": [
|
||||
{
|
||||
"scope": "dotnet",
|
||||
"module": "financial",
|
||||
"api": "getAbkbyDate",
|
||||
"parameter": "bk_name",
|
||||
"role": "historical_named_components"
|
||||
}
|
||||
],
|
||||
"resolvers": [],
|
||||
"related_tables": [],
|
||||
"values": [
|
||||
{
|
||||
"value": "A股",
|
||||
"label": "全部 A 股",
|
||||
"note": "包括上证A股、科创板、深证A股、创业板和北证A股,不含新三板",
|
||||
"sources": ["net_function:24767", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "上证A股",
|
||||
"label": "上证 A 股",
|
||||
"sources": ["net_function:24767", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "深证A股",
|
||||
"label": "深证 A 股",
|
||||
"sources": ["net_function:24767", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "北证A股",
|
||||
"label": "北证 A 股",
|
||||
"sources": ["net_function:24767", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "创业板",
|
||||
"label": "创业板",
|
||||
"sources": ["net_function:24767", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "科创板",
|
||||
"label": "科创板",
|
||||
"sources": ["net_function:24767", "faq:35788"]
|
||||
},
|
||||
{
|
||||
"value": "中小企业板",
|
||||
"label": "中小企业板(历史兼容)",
|
||||
"note": "仅用于历史兼容;该板块已于 2021-04-06 并入主板",
|
||||
"sources": ["net_function:24767", "faq:35788"]
|
||||
}
|
||||
],
|
||||
"sources": ["net_function:24767", "faq:35788"],
|
||||
"as_of": "2025-08-13"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user