✨ feat(tsl-api-reference): add class and framework API lookup
This commit is contained in:
@@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user