bloomberg.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package pcsg
  2. import (
  3. "strings"
  4. "time"
  5. )
  6. // PythonBloombergDailyPriceData 日度-价格数据
  7. type PythonBloombergDailyPriceData struct {
  8. IDENTIFIER string `json:"IDENTIFIER" description:"指标编码"`
  9. PX_YEST_CLOSE float64 `json:"PX_YEST_CLOSE" description:"数据值"`
  10. PX_CLOSE_DT string `json:"PX_CLOSE_DT" description:"数据日期"`
  11. NAME string `json:"NAME" description:"指标名称"`
  12. }
  13. // PythonBloombergGeneralData 通用数据
  14. type PythonBloombergGeneralData struct {
  15. IDENTIFIER string `json:"IDENTIFIER" description:"指标编码"`
  16. NAME string `json:"NAME" description:"指标名称"`
  17. PX_LAST float64 `json:"PX_LAST" description:"数据值"`
  18. LAST_UPDATE_DT string `json:"LAST_UPDATE_DT" description:"数据日期"`
  19. }
  20. // PythonBloombergDailyResult 日度指标API响应体
  21. type PythonBloombergDailyResult struct {
  22. Code int `json:"code"`
  23. Msg string `json:"msg"`
  24. Data PythonBloombergDailyResultData `json:"data"`
  25. }
  26. // PythonBloombergDailyResultData 日度指标API响应数据
  27. type PythonBloombergDailyResultData struct {
  28. PriceData []PythonBloombergDailyPriceData `json:"price_data" description:"价格数据"`
  29. GeneralData []PythonBloombergGeneralData `json:"general_data" description:"一般数据"`
  30. }
  31. // PythonBloombergWeeklyResult 周度指标API响应体
  32. type PythonBloombergWeeklyResult struct {
  33. Code int `json:"code"`
  34. Msg string `json:"msg"`
  35. Data []PythonBloombergGeneralData `json:"data"`
  36. }
  37. // PythonBloombergMonthlyResult 月度指标API响应体
  38. type PythonBloombergMonthlyResult struct {
  39. Code int `json:"code"`
  40. Msg string `json:"msg"`
  41. Data []PythonBloombergGeneralData `json:"data"`
  42. }
  43. // BaseFromBloombergApiIndexAndData Bloomberg原始指标及数据
  44. type BaseFromBloombergApiIndexAndData struct {
  45. BaseFromBloombergIndexId int `description:"指标ID"`
  46. IndexCode string `description:"指标编码"`
  47. IndexName string `description:"指标名称"`
  48. Unit string `description:"单位"`
  49. Source string `description:"来源"`
  50. Frequency string `description:"频度"`
  51. CreateTime time.Time `description:"创建时间"`
  52. ModifyTime time.Time `description:"修改时间"`
  53. Data []BaseFromBloombergApiIndexData `description:"数据列表"`
  54. }
  55. // BaseFromBloombergApiIndexData Bloomberg原始指标数据
  56. type BaseFromBloombergApiIndexData struct {
  57. DataTime time.Time `description:"数据日期"`
  58. Value float64 `description:"数据值"`
  59. }
  60. func FormatPythonBloombergDailyPriceData2Base(origin PythonBloombergDailyPriceData) (item BaseFromBloombergApiIndexAndData) {
  61. if origin.IDENTIFIER == "" {
  62. return
  63. }
  64. item.IndexCode = strings.TrimSpace(origin.IDENTIFIER)
  65. item.IndexName = strings.TrimSpace(origin.NAME)
  66. item.Frequency = "日度"
  67. item.Unit = "无"
  68. item.Data = make([]BaseFromBloombergApiIndexData, 0)
  69. t, _ := time.ParseInLocation(time.DateOnly, origin.PX_CLOSE_DT, time.Local)
  70. item.Data = append(item.Data, BaseFromBloombergApiIndexData{
  71. DataTime: t,
  72. Value: origin.PX_YEST_CLOSE,
  73. })
  74. return
  75. }
  76. func FormatPythonBloombergGeneralData2Base(origin PythonBloombergGeneralData, frequency string) (item BaseFromBloombergApiIndexAndData) {
  77. if origin.IDENTIFIER == "" {
  78. return
  79. }
  80. item.IndexCode = strings.TrimSpace(origin.IDENTIFIER)
  81. item.IndexName = strings.TrimSpace(origin.NAME)
  82. item.Frequency = frequency
  83. item.Unit = "无"
  84. item.Data = make([]BaseFromBloombergApiIndexData, 0)
  85. t, _ := time.ParseInLocation(time.DateOnly, origin.LAST_UPDATE_DT, time.Local)
  86. item.Data = append(item.Data, BaseFromBloombergApiIndexData{
  87. DataTime: t,
  88. Value: origin.PX_LAST,
  89. })
  90. return
  91. }