FundPositionApi.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. package com.smppw.analysis.client;
  2. import com.smppw.analysis.application.dto.position.stock.*;
  3. import com.smppw.analysis.application.dto.position.synthesize.*;
  4. import com.smppw.analysis.application.service.StockPositionAnalysis;
  5. import com.smppw.analysis.application.service.SynthesizePositionAnalysis;
  6. import com.smppw.common.pojo.ResultVo;
  7. import org.springframework.web.bind.annotation.GetMapping;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import java.util.List;
  11. import java.util.Map;
  12. /**
  13. * @author wangzaijun
  14. * @date 2023/6/6 11:23
  15. * @description 基金 持仓分析,包括公募、私募基金,区分综合、股票、债券和期货tab组件
  16. */
  17. @RestController
  18. @RequestMapping("/v2/fund/position-analysis")
  19. public class FundPositionApi {
  20. // private final BondPositionAnalysis bond;
  21. // private final FuturePositionAnalysis future;
  22. private final SynthesizePositionAnalysis synthesize;
  23. private final StockPositionAnalysis stock;
  24. public FundPositionApi(StockPositionAnalysis stock, SynthesizePositionAnalysis synthesize) {
  25. this.stock = stock;
  26. this.synthesize = synthesize;
  27. }
  28. /**
  29. * 公募私募,综合-资产大类配置
  30. *
  31. * @param params /
  32. * @return /
  33. */
  34. @GetMapping("asset-allocation")
  35. public ResultVo<Map<String, Object>> getAssetAllocation(AssetAllocationParams params) {
  36. return ResultVo.ok(this.synthesize.getAssetAllocation(params));
  37. }
  38. /**
  39. * 公募私募,综合-杠杆变化
  40. *
  41. * @param params /
  42. * @return /
  43. */
  44. @GetMapping("leverage-change")
  45. public ResultVo<List<LeverageChangeVO>> getLeverageChange(LeverageChangeParams params) {
  46. return ResultVo.ok(this.synthesize.getLeverageChange(params));
  47. }
  48. /**
  49. * 公募私募,综合-持仓列表的请求参数
  50. *
  51. * @param params /
  52. * @return /
  53. */
  54. @GetMapping("position-param")
  55. public ResultVo<PositionInfoVO> getPositionParams(PositionInfoParams params) {
  56. return ResultVo.ok(this.synthesize.getPositionParams(params));
  57. }
  58. /**
  59. * 公募私募,综合-持仓列表
  60. *
  61. * @param params /
  62. * @return /
  63. */
  64. @GetMapping("position-list")
  65. public ResultVo<List<PositionListVO>> getPosition(PositionListParams params) {
  66. return ResultVo.ok(this.synthesize.getPosition(params));
  67. }
  68. /**
  69. * 公募,综合-持有人结构
  70. *
  71. * @param params /
  72. * @return /
  73. */
  74. @GetMapping("holder-info")
  75. public ResultVo<List<HolderInfoVO>> getHolderInfo(HolderInfoParams params) {
  76. return ResultVo.ok(this.synthesize.getHolderInfo(params));
  77. }
  78. /**
  79. * 公募,股票-持仓股票重大变动
  80. *
  81. * @param params /
  82. * @return /
  83. */
  84. @GetMapping("stock/major-change")
  85. public ResultVo<List<MajorChangeVO>> getMajorChange(MajorChangeParams params) {
  86. return ResultVo.ok(this.stock.getMajorChangeList(params));
  87. }
  88. /**
  89. * 公募私募,股票-集中度
  90. *
  91. * @param params /
  92. * @return /
  93. */
  94. @GetMapping("stock/crn")
  95. public ResultVo<Map<String, Object>> getStockConcentration(ConcentrationParams params) {
  96. return ResultVo.ok(this.stock.getConcentration(params));
  97. }
  98. /**
  99. * 公募私募,股票-持股数量变动时序
  100. *
  101. * @param params /
  102. * @return /
  103. */
  104. @GetMapping("stock/change-num")
  105. public ResultVo<List<ChangeNumberVO>> getStockChangeNumber(ChangeNumberParams params) {
  106. return ResultVo.ok(this.stock.getChangeNumber(params));
  107. }
  108. /**
  109. * 公募私募,股票-行业配置
  110. *
  111. * @param params /
  112. * @return /
  113. */
  114. @GetMapping("stock/industry-allocation")
  115. public ResultVo<Map<String, Object>> getStockIndustryAllocation(StockAllocationParams params) {
  116. return ResultVo.ok(this.stock.getIndustryAllocation(params));
  117. }
  118. /**
  119. * 公募私募,股票-行业配置偏好时序
  120. *
  121. * @param params /
  122. * @return /
  123. */
  124. @GetMapping("stock/industry-allocation-preference")
  125. public ResultVo<Map<String, Object>> getStockIndustryAllocationPreference(StockAllocationParams params) {
  126. return ResultVo.ok(this.stock.getIndustryAllocationPreference(params));
  127. }
  128. /**
  129. * 公募私募,股票-风格配置
  130. *
  131. * @param params /
  132. * @return /
  133. */
  134. @GetMapping("stock/style-allocation")
  135. public ResultVo<Map<String, Object>> getStockStyleAllocation(StockAllocationParams params) {
  136. return ResultVo.ok(this.stock.getStyleAllocation(params));
  137. }
  138. /**
  139. * 公募私募,股票-流动性分析
  140. *
  141. * @param params /
  142. * @return /
  143. */
  144. @GetMapping("stock/liquidity-allocation")
  145. public ResultVo<Map<String, Object>> getStockLiquidityAllocation(StockAllocationParams params) {
  146. return ResultVo.ok(this.stock.getLiquidityAllocation(params));
  147. }
  148. /**
  149. * 公募私募,股票-业绩归因
  150. *
  151. * @param params /
  152. * @return /
  153. */
  154. @GetMapping("stock/performance-attribution")
  155. public ResultVo<Map<String, Object>> getStockPerformanceAttribution(StockPerformanceAttributionParams params) {
  156. return ResultVo.ok(this.stock.getPerformanceAttribution(params));
  157. }
  158. /**
  159. * 公募私募,股票-Barra敏感度分析
  160. *
  161. * @param params /
  162. * @return /
  163. */
  164. @GetMapping("stock/barra-sensitivity")
  165. public ResultVo<Map<String, Object>> getStockBarraSensitivity(BarraSensitivityParams params) {
  166. return ResultVo.ok(this.stock.getBarraSensitivity(params));
  167. }
  168. /**
  169. * 私募,股票-股票风险敞口走势
  170. *
  171. * @param params /
  172. * @return /
  173. */
  174. @GetMapping("stock/risk-exposure")
  175. public ResultVo<Map<String, Object>> getStockRiskExposure(RiskExposureParams params) {
  176. return ResultVo.ok(this.stock.getRiskExposure(params));
  177. }
  178. // /**
  179. // * 公募私募,债券-久期分析
  180. // *
  181. // * @param params /
  182. // * @return /
  183. // */
  184. // @GetMapping("bond/duration-analysis")
  185. // public ResultVo<List<DurationAnalysisVO>> getBondDurationAnalysis(DurationAnalysisParams params) {
  186. // return null;
  187. // }
  188. //
  189. // /**
  190. // * 公募私募,债券-收益风险
  191. // *
  192. // * @param params /
  193. // * @return /
  194. // */
  195. // @GetMapping("bond/profit-risk")
  196. // public ResultVo<List<ProfitRiskVO>> getBondProfitRisk(ProfitRiskParams params) {
  197. // return null;
  198. // }
  199. //
  200. // /**
  201. // * 公募私募,债券-业绩归因
  202. // *
  203. // * @param params /
  204. // * @return /
  205. // */
  206. // @GetMapping("bond/performance-attribution")
  207. // public ResultVo<List<BondPerformanceAttributionVO>> getBondPerformanceAttribution(BondPerformanceAttributionParams params) {
  208. // return null;
  209. // }
  210. //
  211. // /**
  212. // * 公募私募,债券-债券分类配置及明细
  213. // *
  214. // * @param params /
  215. // * @return /
  216. // */
  217. // @GetMapping("bond/asset-allocation")
  218. // public ResultVo<List<BondAssetAllocationVO>> getBondAssetAllocation(BondAssetAllocationParams params) {
  219. // return null;
  220. // }
  221. //
  222. // /**
  223. // * 公募私募,债券-集中度
  224. // *
  225. // * @param params /
  226. // * @return /
  227. // */
  228. // @GetMapping("bond/crn")
  229. // public ResultVo<List<ConcentrationVO>> getBondConcentration(ConcentrationParams params) {
  230. // return null;
  231. // }
  232. //
  233. // @GetMapping("future/risk-cont")
  234. // public ResultVo<Map<String, Object>> getFutureRiskCont(MarginalRiskContributionParams params) {
  235. // return ResultVo.ok(this.future.riskCont(params));
  236. // }
  237. }