package com.smppw.analysis.client; import com.smppw.analysis.application.dto.position.stock.*; import com.smppw.analysis.application.dto.position.synthesize.*; import com.smppw.analysis.application.service.StockPositionAnalysis; import com.smppw.analysis.application.service.SynthesizePositionAnalysis; import com.smppw.common.pojo.ResultVo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.Map; /** * @author wangzaijun * @date 2023/6/6 11:23 * @description 基金 持仓分析,包括公募、私募基金,区分综合、股票、债券和期货tab组件 */ @RestController @RequestMapping("/v2/fund/position-analysis") public class FundPositionApi { // private final BondPositionAnalysis bond; // private final FuturePositionAnalysis future; private final SynthesizePositionAnalysis synthesize; private final StockPositionAnalysis stock; public FundPositionApi(StockPositionAnalysis stock, SynthesizePositionAnalysis synthesize) { this.stock = stock; this.synthesize = synthesize; } /** * 公募私募,综合-资产大类配置 * * @param params / * @return / */ @GetMapping("asset-allocation") public ResultVo> getAssetAllocation(AssetAllocationParams params) { return ResultVo.ok(this.synthesize.getAssetAllocation(params)); } /** * 公募私募,综合-杠杆变化 * * @param params / * @return / */ @GetMapping("leverage-change") public ResultVo> getLeverageChange(LeverageChangeParams params) { return ResultVo.ok(this.synthesize.getLeverageChange(params)); } /** * 公募私募,综合-持仓列表的请求参数 * * @param params / * @return / */ @GetMapping("position-param") public ResultVo getPositionParams(PositionInfoParams params) { return ResultVo.ok(this.synthesize.getPositionParams(params)); } /** * 公募私募,综合-持仓列表 * * @param params / * @return / */ @GetMapping("position-list") public ResultVo> getPosition(PositionListParams params) { return ResultVo.ok(this.synthesize.getPosition(params)); } /** * 公募,综合-持有人结构 * * @param params / * @return / */ @GetMapping("holder-info") public ResultVo> getHolderInfo(HolderInfoParams params) { return ResultVo.ok(this.synthesize.getHolderInfo(params)); } /** * 公募,股票-持仓股票重大变动 * * @param params / * @return / */ @GetMapping("stock/major-change") public ResultVo> getMajorChange(MajorChangeParams params) { return ResultVo.ok(this.stock.getMajorChangeList(params)); } /** * 公募私募,股票-集中度 * * @param params / * @return / */ @GetMapping("stock/crn") public ResultVo> getStockConcentration(ConcentrationParams params) { return ResultVo.ok(this.stock.getConcentration(params)); } /** * 公募私募,股票-持股数量变动时序 * * @param params / * @return / */ @GetMapping("stock/change-num") public ResultVo> getStockChangeNumber(ChangeNumberParams params) { return ResultVo.ok(this.stock.getChangeNumber(params)); } /** * 公募私募,股票-行业配置 * * @param params / * @return / */ @GetMapping("stock/industry-allocation") public ResultVo> getStockIndustryAllocation(StockAllocationParams params) { return ResultVo.ok(this.stock.getIndustryAllocation(params)); } /** * 公募私募,股票-行业配置偏好时序 * * @param params / * @return / */ @GetMapping("stock/industry-allocation-preference") public ResultVo> getStockIndustryAllocationPreference(StockAllocationParams params) { return ResultVo.ok(this.stock.getIndustryAllocationPreference(params)); } /** * 公募私募,股票-风格配置 * * @param params / * @return / */ @GetMapping("stock/style-allocation") public ResultVo> getStockStyleAllocation(StockAllocationParams params) { return ResultVo.ok(this.stock.getStyleAllocation(params)); } /** * 公募私募,股票-流动性分析 * * @param params / * @return / */ @GetMapping("stock/liquidity-allocation") public ResultVo> getStockLiquidityAllocation(StockAllocationParams params) { return ResultVo.ok(this.stock.getLiquidityAllocation(params)); } /** * 公募私募,股票-业绩归因 * * @param params / * @return / */ @GetMapping("stock/performance-attribution") public ResultVo> getStockPerformanceAttribution(StockPerformanceAttributionParams params) { return ResultVo.ok(this.stock.getPerformanceAttribution(params)); } /** * 公募私募,股票-Barra敏感度分析 * * @param params / * @return / */ @GetMapping("stock/barra-sensitivity") public ResultVo> getStockBarraSensitivity(BarraSensitivityParams params) { return ResultVo.ok(this.stock.getBarraSensitivity(params)); } /** * 私募,股票-股票风险敞口走势 * * @param params / * @return / */ @GetMapping("stock/risk-exposure") public ResultVo> getStockRiskExposure(RiskExposureParams params) { return ResultVo.ok(this.stock.getRiskExposure(params)); } // /** // * 公募私募,债券-久期分析 // * // * @param params / // * @return / // */ // @GetMapping("bond/duration-analysis") // public ResultVo> getBondDurationAnalysis(DurationAnalysisParams params) { // return null; // } // // /** // * 公募私募,债券-收益风险 // * // * @param params / // * @return / // */ // @GetMapping("bond/profit-risk") // public ResultVo> getBondProfitRisk(ProfitRiskParams params) { // return null; // } // // /** // * 公募私募,债券-业绩归因 // * // * @param params / // * @return / // */ // @GetMapping("bond/performance-attribution") // public ResultVo> getBondPerformanceAttribution(BondPerformanceAttributionParams params) { // return null; // } // // /** // * 公募私募,债券-债券分类配置及明细 // * // * @param params / // * @return / // */ // @GetMapping("bond/asset-allocation") // public ResultVo> getBondAssetAllocation(BondAssetAllocationParams params) { // return null; // } // // /** // * 公募私募,债券-集中度 // * // * @param params / // * @return / // */ // @GetMapping("bond/crn") // public ResultVo> getBondConcentration(ConcentrationParams params) { // return null; // } // // @GetMapping("future/risk-cont") // public ResultVo> getFutureRiskCont(MarginalRiskContributionParams params) { // return ResultVo.ok(this.future.riskCont(params)); // } }